【发布时间】:2015-01-23 14:24:04
【问题描述】:
我很难调试这个jsbin。
给定以下布局:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
</head>
<body>
<div class="col-xs-12">
<div class="container contenedor">
<div class="row">
<div class="col-xs-12 col-md-8">
<div class="filler green">Green</div>
</div>
<div class="col-xs-12 col-md-4">
<div class="filler orange">Orange</div>
</div>
</div>
</div>
</div>
<div class="height"></div>
</body>
</html>
以及以下 CSS:
.filler {
width: 100%;
height: 5em;
text-align: center;
}
.filler.green {
border: 1px dashed green;
background-color: green;
}
.filler.orange {
border: 1px dashed orange;
background-color: orange;
}
.height {
height: 100em;
}
.contenedor {
padding: 0;
}
在 chrome 中发生 .container.contenedor 在 1200px 的视口中,margin-right 被计算为 -15px,margin-left 被计算为 0px,尽管 bootstrap 将这两个属性设置为 auto。在我的情况下,在 1298 像素的视口中,两个边距都计算为 49 像素。
据我所知,margin-left/right 同时设置为 auto 是一种使元素居中的常用技术,因为两侧的剩余空间被平均分割。
所以,我的问题是,这种行为是 chrome 的错误吗?我错过了这个属性的东西吗?有什么可以解释的。另外,如果我删除了 .contenedor(即有 padding:0),问题就会消失,并且左右边距计算正确,但我仍然不明白。
谢谢。
PD,我不是要修复布局或 css,我只是想了解为什么会发生这种情况。
更新:我忘了提,我的 chrome 版本是 Ubuntu 14.04 上的版本 39.0.2171.99(64 位)
【问题讨论】:
标签: css google-chrome