我目前在网站上工作。 HTML文件的标题如下所示:
<div id="page">
<header>
<a href="#" class="redsquare"> </a>
<div class="head-wrapper">
<!-- some more -->
</div>
<div class="flags-container">
<!-- some more -->
</div>
</header>
此html部分的CSS如下所示:
#page {
width: 100%;
display: table;
clear: both;
margin-bottom: 30px;
}
header {
width: 100%;
height: 223px;
background: #F0F0F0 url("../resources/header-background.png") repeat-x;
margin: 0;
padding: 0;
display: table-row;
clear: both;
}
header > a.redsquare {
background-image: url("../resources/logo-figure.png");
float: left;
height: 223px;
width: 240px;
margin: 0px;
padding: 0px;
display: table-cell;
vertical-align: top;
}
header > .head-wrapper {
height: 223px;
margin: 0;
padding: 0;
display: table-cell;
vertical-align: top;
}
header > .flags-container {
width: 110px;
height: 100px;
padding: 20px 5px 20px 5px;
margin-bottom: 83px;
float: right;
display: table-cell;
vertical-align: top;
clear: both;
}
所有元素都在它们的位置,但在redsquare
和head-wrapper
之间以及head-wrapper
和flags-container
之间有一条小线(显示在如下图。)
我的问题是,我该如何防止这种情况发生?
答案 0 :(得分:1)
我接受了你发布的标记和css并制作了一个小提琴,因为表格的默认行为是通过添加
来覆盖需要覆盖它的边框的单元格border-collapse: collapse;
给你#page元素。
在IE和Chrome中快速测试了这个,fiddle can be found here
然而我非常同意其他评论,因为您不应该使用表格或出于设计原因模拟表格,而是建议使用相同的html结构,而不是
display: table-cell;
尝试使用
display: inline-block;
这会产生相同的“列”效果但不那么悲惨。表格很悲惨。