CSS @media 未显示列中的所有内容

问题描述 投票:0回答:1

我正在创建一个网站,但在将代码转换为@media 时遇到了困难。当我在桌面上加载网站时,我可以看到所有内容,但是当我在手机上打开它时,页面上并没有显示所有内容,而且我无法让它显示出来。

这是我使用的代码。我使用过 HTML 和 CSS。

html {
  box-sizing: border-box;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
}

img {
  max-width: 100%;
  height: auto;
}


/* Own CSS code */

* {
  margin: 0px;
  padding: 0px;
  font-family: sans-serif;
}

body {
  display: flex;
  justify-content: center;
  height: 100vh;
  align-items: center;
  background: whitesmoke;
}

.container {
  display: flex;
}

.card {
  height: 500px;
  margin: 50px;
  box-shadow: 5px 5px 20px black;
  overflow: hidden;
  border-radius: 10px;
  position: relative;
}

.card:hover {
  cursor: pointer;
}

img {
  height: 500px;
  width: 350px;
  border-radius: 10px;
  transition: filter 0.5s;
}


/* image turn ^ transform: scale(1.1) rotate(-3deg);^ */

.card:hover img {
  transform: scale(1.1);
  filter: blur(2px);
  transition: filter 0.5, transform 0.5s;
}

.intro {
  height: 70px;
  width: 350px;
  padding: 6px;
  box-sizing: border-box;
  position: absolute;
  background: rgb(27, 27, 27, .5);
  color: white;
  bottom: 0px;
  transition: height0.5s, background 0.5s;
}

.card:hover .intro {
  height: 220px;
  bottom: 0px;
  background: black;
}

h1 {
  margin: 20px;
  font-size: 30px;
  text-align: left;
}

p {
  margin: 20px;
  font-size: 15px;
  text-align: left;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.card:hover p {
  opacity: 1;
  visibility: visible;
}

span {
  font-weight: bold;
}

@media (min-width: 300px)and (max-width: 800px) {
  .container {
    flex-direction: column;
    display: flex;
    padding: 5px;
  }
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>WebSafari</title>
  <link rel="stylesheet" href="stylecopy.css">
</head>

<body>

  <div class="container">
    <div class="card">
      <img src="img/Phone.jpg" alt="Phone">
      <div class="intro">
        <h1>Phone</h1>
        <p> Lorem <strong>ipsum</strong> dolor sit amet, consectetuer adipiscing elit Aenean commodo ligula eget dolor. Aenean massa.
        </p>
      </div>
    </div>

    <div class="card">
      <img src="img/computer.jpg" alt="computer">
      <div class="intro">
        <h1>Computer</h1>
        <p> Lorem <strong>ipsum</strong> dolor sit amet, consectetuer adipiscing elit Aenean commodo ligula eget dolor. Aenean massa.
        </p>
      </div>
    </div>

    <div class="card">
      <img src="img/laptop.jpg" alt="wesbite">
      <div class="intro">
        <h1>Website</h1>
        <p> Lorem <span>ipsum</span> dolor sit amet, consectetuer adipiscing elit Aenean commodo ligula eget dolor. Aenean massa.
        </p>
      </div>
    </div>

</body>

</html>

javascript html css web frontend
1个回答
0
投票

为了确保您的布局在较小的屏幕(例如移动设备)上响应良好,您需要调整 Flexbox 属性并确保容器和卡片元素在移动设备上垂直堆叠。

这里有一个增强的解决方案,可将代码转换为@media,以便它在桌面和移动设备上都能正确显示:

html {
  box-sizing: border-box;
}
*, *:before, *:after {
  box-sizing: inherit;
}
body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
}
img {
  max-width: 100%;
  height: auto;
}

/* Main Styles */
body {
  display: flex;
  justify-content: center;
  align-items: center;
  background: whitesmoke;
}

.container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  width: 90%;
}

.card {
  background: white;
  margin: 20px;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
  width: 300px;
  text-align: center;
}

/* Media Queries for Responsiveness */
@media (max-width: 768px) {
  body {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
  }

  .container {
    flex-direction: column;
    align-items: center;
  }

  .card {
    width: 100%;
    max-width: 400px;
  }
}

变化: 容器布局:.container 设置为 flex-wrap:wrap,因此它会根据屏幕尺寸自动调整。

卡片大小:对于桌面,.card 的固定宽度为 300 像素。在较小的视口(移动设备)中,它会更改为 100% 宽度,以适应屏幕。

@media Query:媒体查询在最大宽度:768px(平板电脑和手机屏幕)处触发。布局更改为垂直(列)布局以适应较小的屏幕。

Flexbox 调整:在移动设备上时,卡片将一张堆叠在另一张之上,并且align-items:center 确保它们正确居中。

HTML 验证: HTML 结构看起来不错。确保图像路径(img/Phone.jpg 等)正确设置为服务器上的实际文件位置。

© www.soinside.com 2019 - 2024. All rights reserved.