gpt4 book ai didi

html - 如何让 Div 填充剩余空间?

转载 作者:太空宇宙 更新时间:2023-11-04 08:52:33 25 4
gpt4 key购买 nike

我正在制作网格布局,但我希望 div 填充所有空白区域,而不仅仅是并排放置。据我所知,我已经尝试了一切,但我就是想不通。有什么我想念的吗?

这是 JSFiddle 中的代码:https://jsfiddle.net/y3s6b8dm/2/

如果你看,右边的.sml应该是4个方格,但只放了2个,然后就转到下一行。它以这种方式弄乱了整个网格。

我希望混合后的效果如何:

picture

body {
width: 1200px;
padding: 0;
margin: 0;
}
.sml {
background-image: url("http://placehold.it/1x1");
border: 1px #a1a1a1 solid;
width: 200px;
height: 200px;
vertical-align: top;
position: relative;
display: inline-block;
box-sizing: border-box;
}
.med {
background-image: url("http://placehold.it/1x1");
border: 1px #a1a1a1 solid;
width: 300px;
height: 300px;
position: relative;
display: inline-block;
box-sizing: border-box;
}
.big {
background-image: url("http://placehold.it/1x1");
border: 1px #a1a1a1 solid;
width: 400px;
height: 400px;
position: relative;
display: inline-block;
box-sizing: border-box;
}
.feat {
background-image: url("http://placehold.it/1x1");
border: 1px #a1a1a1 solid;
width: 1200px;
height: 400px;
position: relative;
display: inline-block;
box-sizing: border-box;
}
height: 200px;
position: relative;
display: inline-block;
box-sizing: border-box;
}
.med {
background-image: url("http://placehold.it/1x1");
border: 1px #a1a1a1 solid;
width: 300px;
height: 300px;
position: relative;
display: inline-block;
box-sizing: border-box;
}
.big {
background-image: url("http://placehold.it/1x1");
border: 1px #a1a1a1 solid;
width: 400px;
height: 400px;
position: relative;
display: inline-block;
box-sizing: border-box;
}
.feat {
background-image: url("http://placehold.it/1x1");
border: 1px #a1a1a1 solid;
width: 1200px;
height: 400px;
position: relative;
display: inline-block;
box-sizing: border-box;
}
<body><div class="feat"></div><div class="big"></div><div class="big"></div><div class="sml"></div><div class="sml"></div><div class="sml"></div><div class="sml"></div><div class="med"></div><div class="med"></div><div class="med"></div><div class="med"></div><div class="sml"></div><div class="sml"></div><div class="sml"></div><div class="sml"></div><div class="sml"></div><div class="sml"></div>

最佳答案

如果将您提供的图片中描述的图案与代码进行比较,尺寸不匹配。比率是:

图片

  • .sml 1x1
  • .med 2x2
  • .big 3x3

CSS

  • .sml 1x1
  • .med 1.5x1.5
  • .big 2x2

我假设您想要图片中的内容,所以我根据图片中显示的比例更改了尺寸。我还将所有内容缩小到 20%(乘以 5 到原始大小)以便于查看代码段。

额外的 flex-containers* 包裹在方 block 周围:

  • section.col1
  • section.col2
  • section.col3
  • section.sub2

Body 也被赋予了 display:flex。尽管将来我会建议不要以有限的方式使用 body。不要给 body 一个固定的宽度,而是将所有内容都包装在另一个元素中。您应该考虑的另一件事是不要使用固定尺寸进行布局。尝试相对单位 em 和/或百分比,以及一些内部类型,例如 vwvhpxem 的默认浏览器比率为 16:1(对于每个 16px = 1em)。在代码段中,您可以通过将 px 转换为 em 来使整个事物响应。

.sml {width:2.5em; height:2.5em;....

并用另一个元素替换正文。

main {width:15em....

片段

* {
padding: 0;
margin: 0;
border: 0;
box-sizing: border-box;
}

body {
width: 240px;
height: 200px;
display: flex;
flex-wrap: wrap;
}

.col1 {
width: 80px;
height: 200px;
display: flex;
flex-wrap: wrap;
}

.col2 {
width: 120px;
height: 200px;
display: flex;
flex-wrap: wrap;
}

.sub2 {
display: flex;
flex-direction: column;
}

.col3 {
width: 40px;
height: 200px;
display: flex;
flex-direction: column;
}

.sml {
background: url("http://placehold.it/40x40/f00/fff?text=40x40")no-repeat;
width: 40px;
height: 40px;
}

.med {
background: url("http://placehold.it/80x80/fc0/000?text=80x80")no-repeat;
width: 80px;
height: 80px;
}

.big {
background: url("http://placehold.it/120x120/000/fc0?text=120x120")no-repeat;
width: 120px;
height: 120px;
}

.feat {
background: url("http://placehold.it/240x80/00f/000?text=280x80")no-repeat;
width: 280px;
height: 80px;
}
<body>
<div class="feat"></div>
<section class='col1'>
<div class="sml"></div>
<div class="sml"></div>
<div class="sml"></div>
<div class="sml"></div>
<div class="med"></div>
<div class="sml"></div>
<div class="sml"></div>
</section>
<section class='col2'>
<div class="big"></div>
<section class='sub2'>
<div class="sml"></div>
<div class="sml"></div>
</section>
<div class="med"></div>
</section>
<section class='col3'>
<div class="sml"></div>
<div class="sml"></div>
<div class="sml"></div>
<div class="sml"></div>
<div class="sml"></div>
</section>
</body>

* flex 容器:一个术语,指的是具有属性 display:flex 的元素,该属性会影响其所有子元素(称为 flex 元素)遵守flexbox 布局规则。

关于html - 如何让 Div 填充剩余空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43329189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com