Clearfix 不适用于嵌套列
Clearfix not working on nested columns
我正在尝试在我的 CSS 项目中定义一些行和列,并且一切正常,除非视口很小。为了帮助您理解我的问题,我 have this pen。这是代码:
HTML:
<div class="row">
<div class="column column-4"></div>
<div class="column column-4">
<div class="row">
<div class="column column-6"></div>
<div class="column column-6"></div>
</div>
</div>
<div class="column column-4"></div>
</div>
风格:
.row,
.column {
box-sizing: border-box;
}
.row:before,
.row:after {
content: " ";
display: table;
}
.row:after {
clear: both;
}
.column {
float: left;
position: relative;
width: 100%;
}
@media only screen and (min-width: 500px) {
.column + .column {
margin-left: 1.6%;
}
.column-1 {
width: 6.86666666667%;
}
...
.column-12 {
width: 100%;
}
}
[class*="column"] {
background-color: grey;
height: 2em;
}
[class*="column"] [class*="column"] {
background-color: blue;
}
如您所见,我有一行三列,第二列有嵌套列。一切正常,但是当 windows 足够小时,只显示三行,而不是四行(两个主列和两个嵌套列)。最后一列绘制在最后一个嵌套列之上。我该怎么做才能解决这个问题?
您为您的列指定了 2em 的高度,这是导致问题的原因。
理想情况下,您不应将固定高度应用于列,因为内容可能因列而异。但是,如果这是您的要求,那么在您的媒体查询中,您可以进行以下 CSS 修改。
CSS
@media only screen and (min-width: 500px) {
[class*="column"] {
background-color: grey;
height: auto;
min-height: 2em;
}
}
我正在尝试在我的 CSS 项目中定义一些行和列,并且一切正常,除非视口很小。为了帮助您理解我的问题,我 have this pen。这是代码:
HTML:
<div class="row">
<div class="column column-4"></div>
<div class="column column-4">
<div class="row">
<div class="column column-6"></div>
<div class="column column-6"></div>
</div>
</div>
<div class="column column-4"></div>
</div>
风格:
.row,
.column {
box-sizing: border-box;
}
.row:before,
.row:after {
content: " ";
display: table;
}
.row:after {
clear: both;
}
.column {
float: left;
position: relative;
width: 100%;
}
@media only screen and (min-width: 500px) {
.column + .column {
margin-left: 1.6%;
}
.column-1 {
width: 6.86666666667%;
}
...
.column-12 {
width: 100%;
}
}
[class*="column"] {
background-color: grey;
height: 2em;
}
[class*="column"] [class*="column"] {
background-color: blue;
}
如您所见,我有一行三列,第二列有嵌套列。一切正常,但是当 windows 足够小时,只显示三行,而不是四行(两个主列和两个嵌套列)。最后一列绘制在最后一个嵌套列之上。我该怎么做才能解决这个问题?
您为您的列指定了 2em 的高度,这是导致问题的原因。
理想情况下,您不应将固定高度应用于列,因为内容可能因列而异。但是,如果这是您的要求,那么在您的媒体查询中,您可以进行以下 CSS 修改。
CSS
@media only screen and (min-width: 500px) {
[class*="column"] {
background-color: grey;
height: auto;
min-height: 2em;
}
}