首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网格优化与缩放问题

网格优化与缩放问题
EN

Stack Overflow用户
提问于 2022-04-27 13:40:26
回答 1查看 38关注 0票数 0

我的3x3网格并没有像它应该的那样进行缩放。方框1、5和9包含某种形式的文本,其余的是图片。缩小时,带有照片的框显示过多的白色,而带有文本的框显示过多的蓝色。我不知道是什么导致了这一切。

我也在寻找一种方式,使我的文本在其指定的方块。左对齐,但仍然居中。我不知道如何同时应用这两种方法。

代码语言:javascript
复制
.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 1em;
  grid-auto-rows: 1fr;
  text-align: left;
  color: white;
  font-size: 14px;
  font-family: Open Sans, sans-serif;
}


/* .grid>div {
  background: #2b5eaf;
  padding: 1em;
} */


/* .grid>div:nth-child(odd) {
  background: #2b5eaf;
} */

.box-1,
.box-5,
.box-9 {
  background: #2b5eaf;
  color: white;
}

.button {
  border: none;
  color: white;
  padding: 16px 50px;
  text-align: center;
  text-decoration: none;
  font-size: 14px;
  transition-duration: 0.4s;
  cursor: pointer;
  border-radius: 12px;
}

.group1 {
  padding: 48px;
  justify-content: center;
}

h1 {
  font-size: 30px;
}

p {
  font-size: 14px;
}

.box-5 {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.button2 {
  background-color: white;
  color: black;
  border: 2px solid #008CBA;
}

.button2:hover {
  background-color: #008CBA;
  color: white;
}

.photo>img {
  object-fit: cover;
  width: 100%;
  max-height: 100%;
}

.photo {
  width: 100%;
  height: auto;
}


/* TABLET VIEW */

@media only screen and (min-width: 759px) and (max-width: 1279px) {
  .grid {
    grid-template-columns: repeat(2, 1fr);
    text-align: left;
    grid-gap: 0;
  }
  .grid>div {
    height: 100%;
  }
  .box-2,
  .box-6,
  .box-7 {
    display: none;
  }
  .box-8 {
    grid-column: 2;
    grid-row: 3;
  }
  .box-9 {
    grid-column: 1;
  }
  h1 {
    font-size: 24px;
  }
}


/* MOBILE VIEW */

@media only screen and (max-width: 759px) {
  .grid {
    grid-template-columns: 1fr 1fr;
    text-align: left;
    grid-gap: 0;
  }
  .box-1 {
    grid-row: 3;
    grid-column: 1/3;
  }
  .box-2 {
    grid-row: 2;
    grid-column: 1;
  }
  .box-3 {
    grid-row: 2;
    grid-column: 2;
  }
  .box-5 {
    grid-row: 1;
    grid-column: 1/3;
  }
  .box-7,
  .box-8,
  .box-9 {
    display: none;
  }
}
代码语言:javascript
复制
<div class="grid">
  <!-- CLASS NUMBER READ LEFT TO RIGHT FROM DESKTOP VIEW -->
  <div class="box-1">
    <div class="group1">
      <h1 class="quote" style="color:#ffffff" ;>"Lingerie is not about seducing men; It's about embracing womanhood"</h1><br><br>
      <p style="color:#ffffff" ;>- Dita Von Teese</p>
    </div>
  </div>

  <div class="box-2">
    <img class="photo" src="https://i.imgur.com/p5IOrlS.png" alt="">
  </div>

  <div class="box-3">
    <img class="photo" src="https://i.imgur.com/JKKqZjj.png" alt="">
  </div>

  <div class="box-4">
    <img class="photo" src="https://i.imgur.com/pI3g39l.png" alt="">
  </div>

  <div class="box-5">
    <h1 style="color:#ffffff" ;>Discover Something Sexy In You</h1>
    <a class="button button2" href="https://www.subbly.co/checkout/buy/112646">Take Style Quiz</a>
  </div>

  <div class="box-6">
    <img class="photo" src="https://i.imgur.com/2mVzhR6.png" alt="">
  </div>

  <div class="box-7">
    <img class="photo" src="https://i.imgur.com/bIcsE4S.png" alt="">
  </div>

  <div class="box-8">
    <img class="photo" src="https://i.imgur.com/LnUV9eF.png" alt="">
  </div>

  <div class="box-9">
    <div class="group1">
      <h1 style="color:#ffffff" ;>"My wife and I absolute LOVE our SeductiveBox subscription! This bring more excitement to our love life. Plus this is the only subscription that gets unwrapped TWICE!"</h1><br><br>
      <p style="color:#ffffff" ;>- Wendy S.</p>
    </div>
  </div>

</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-27 13:48:14

flexgrid合作得很好。只需将display: flex;添加到您的照片中(并使用适当的选择器- .photo > img不是正确的选择器,因为它们是相同的元素--使用img.photo代替)。还可以使用height: 100%;来适当地扩展它们。

在要对文本进行居中的框上,使用flex及其属性align-items: center;垂直居中,justify-content: center;以水平居中。

我还没有在media-query中进行任何样式化,您可以使用上面的逻辑,如果您愿意的话。

代码语言:javascript
复制
.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 1em;
  grid-auto-rows: 1fr;
  text-align: left;
  color: white;
  font-size: 14px;
  font-family: Open Sans, sans-serif;
}


/* .grid>div {
  background: #2b5eaf;
  padding: 1em;
} */


/* .grid>div:nth-child(odd) {
  background: #2b5eaf;
} */

.box-1,
.box-5,
.box-9 {
  background: #2b5eaf;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
}

.button {
  border: none;
  color: white;
  padding: 16px 50px;
  text-align: center;
  text-decoration: none;
  font-size: 14px;
  transition-duration: 0.4s;
  cursor: pointer;
  border-radius: 12px;
}

.group1 {
  padding: 48px;
  justify-content: center;
}

h1 {
  font-size: 30px;
}

p {
  font-size: 14px;
}

.box-5 {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.button2 {
  background-color: white;
  color: black;
  border: 2px solid #008CBA;
}

.button2:hover {
  background-color: #008CBA;
  color: white;
}

img.photo {
  display: flex;
  object-fit: cover;
  width: 100%;
  height: 100%;
}


/*.photo {
  width: 100%;
  height: auto;
}*/


/* TABLET VIEW */

@media only screen and (min-width: 759px) and (max-width: 1279px) {
  .grid {
    grid-template-columns: repeat(2, 1fr);
    text-align: left;
    grid-gap: 0;
  }
  .grid>div {
    height: 100%;
  }
  .box-2,
  .box-6,
  .box-7 {
    display: none;
  }
  .box-8 {
    grid-column: 2;
    grid-row: 3;
  }
  .box-9 {
    grid-column: 1;
  }
  h1 {
    font-size: 24px;
  }
}


/* MOBILE VIEW */

@media only screen and (max-width: 759px) {
  .grid {
    grid-template-columns: 1fr 1fr;
    text-align: left;
    grid-gap: 0;
  }
  .box-1 {
    grid-row: 3;
    grid-column: 1/3;
  }
  .box-2 {
    grid-row: 2;
    grid-column: 1;
  }
  .box-3 {
    grid-row: 2;
    grid-column: 2;
  }
  .box-5 {
    grid-row: 1;
    grid-column: 1/3;
  }
  .box-7,
  .box-8,
  .box-9 {
    display: none;
  }
}
代码语言:javascript
复制
</h1>
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title></title>
</head>

<body>
  <div class="grid">
    <!-- CLASS NUMBER READ LEFT TO RIGHT FROM DESKTOP VIEW -->
    <div class="box-1">
      <div class="group1">
        <h1 class="quote" style="color:#ffffff" ;>"Lingerie is not about seducing men; It's about embracing womanhood"</h1><br><br>
        <p style="color:#ffffff" ;>- Dita Von Teese</p>
      </div>
    </div>

    <div class="box-2">
      <img class="photo" src="https://i.imgur.com/p5IOrlS.png" alt="">
    </div>

    <div class="box-3">
      <img class="photo" src="https://i.imgur.com/JKKqZjj.png" alt="">
    </div>

    <div class="box-4">
      <img class="photo" src="https://i.imgur.com/pI3g39l.png" alt="">
    </div>

    <div class="box-5">
      <h1 style="color:#ffffff" ;>Discover Something Sexy In You</h1>
      <a class="button button2" href="https://www.subbly.co/checkout/buy/112646">Take Style Quiz</a>
    </div>

    <div class="box-6">
      <img class="photo" src="https://i.imgur.com/2mVzhR6.png" alt="">
    </div>

    <div class="box-7">
      <img class="photo" src="https://i.imgur.com/bIcsE4S.png" alt="">
    </div>

    <div class="box-8">
      <img class="photo" src="https://i.imgur.com/LnUV9eF.png" alt="">
    </div>

    <div class="box-9">
      <div class="group1">
        <h1 style="color:#ffffff" ;>"My wife and I absolute LOVE our SeductiveBox subscription! This bring more excitement to our love life. Plus this is the only subscription that gets unwrapped TWICE!"</h1><br><br>
        <p style="color:#ffffff" ;>- Wendy S.</p>
      </div>
    </div>

  </div>



</body>

</html>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72029844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档