【发布时间】:2016-06-23 12:41:36
【问题描述】:
当我在 bootstrap.css 文件中搜索 .row 时,我得到了以下定义:
...
.row:before,
.row:after,
... {
display: table;
content: " ";
}
...
.row:after
... {
clear: both;
}
.row {
margin-right: -15px;
margin-left: -15px;
}
有了这些定义,我希望.row 类的行为如下:
在任何行之前和之后都应该有一个包含一个空格
的块级元素。.row之前的空白不应清除,.row.之后的空白应清除。 -- 这一切实际上都没有发生。任何具有
.row类的div元素都应从其包含元素向左和向右扩展15px。 -- 这对于通常包含的 div 是可观察到的,但对于 body 元素则不是。例如。如果body元素内有两个 div 类行:
@import url("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css");
.row div:nth-of-type(even) {
background-color: darkgray
}
.row div:nth-of-type(odd) {
background-color: lightgray
}
<div class="row">
<div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
<div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>
可以看出,文本不会超出视口左侧 15 像素。此外,两行都在渲染,中间没有任何间隙。 .row:after {display: table; content: " ";} 怎么了?
请解释一下。
P.S:我不知道 @import url 规则在 SO 编辑器中是如何工作的。
【问题讨论】:
-
@Doctus 我还不会 LESS 语言。
-
This article 您可能会感兴趣。
-
@Doctus 那篇文章不错。它说你是 15px 填充到你
.container。所以我们需要在.row上留出 15px 的负边距。但是如果我们不将row嵌套在.container中,那么内容或.row应该在视口之外跨越15px,这不会发生。
标签: html css twitter-bootstrap twitter-bootstrap-3