【发布时间】:2014-01-27 01:50:34
【问题描述】:
为什么下面的 CSS 代码会在蓝色(中间)元素的末尾和最后一个(右侧)元素之间创建空白?
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="utf-8" />
<title>A test page</title>
<style type="text/css">
body {
margin: auto;
}
.tte {
width: 20%;
height: 50%;
background-color: green;
}
.as {
width: 60%;
height: 50%;
background-color: blue;
}
.ground {
position: absolute;
top: 0;
}
.left {
left: 0;
}
.right {
right: 0;
}
.middle {
left: 20%;
}
</style>
</head>
<body>
<div class="tte ground left"></div>
<div class="tte ground right"></div>
<div class="as ground middle"></div>
</body>
</html>
我希望代码创建两个绿色块元素,每个元素的宽度为 20%,高度为 50%,分别在左上角和右上角对齐,一个蓝色块元素在中间右对齐,宽度为 60 % 和相同的高度。但是在蓝色元素的结尾和最后一个(右)绿色元素的开头之间有明显的空白。为什么?
- 在 Mavericks 上使用 Safari 7.0.1
【问题讨论】:
-
我在这个小提琴中没有看到空白,jsfiddle.net/RGZZL你使用的是什么浏览器?
-
我在 Mac OS X 10.9.1 上使用最新版本的 Safari。 Safari 显示了一个明显的空白,我也在 Chrome 和 Firefox 中尝试过,虽然那里的空白不那么明显。
-
删除
right:0看看会发生什么。 -
也许您只能通过坐标调整元素的大小:.left {left:0;right:80%;} .right {left:80%;right:0;} .middle {left:20 %;right:20%;} 所以值是相同的,即使屏幕宽度是奇数或偶数。
-
这似乎取决于浏览器窗口的当前大小。有时没有空白,有时有。这可能是浏览器中的错误。