我有这些数据:
<div id="results">
<span id="row">
<span id="left">left column</span>
<span id="middle">middle text</span>
<span id="right">right stuff</span>
</span>
</div>
我想模仿这个:
这是我的CSS代码:
#results {
width: 700px;
margin: 0px auto;
border: 1px solid black;
}
#row {
width: 85%;
margin: 0px auto;
border: 2px solid green;
}
#left {
float: left;
width: 200px;
margin: 5px 5px 5px 5px;
border: 1px solid blue;
}
#middle {
float: left;
width: 200px;
margin: 5px 5px 5px 5px;
border: 1px solid blue;
}
#right {
float: left;
width: 200px;
margin: 5px 5px 5px 5px;
border: 1px solid blue;
}
<div id="results">
<span id="row">
<span id="left">left column</span>
<span id="middle">middle text</span>
<span id="right">right stuff</span>
</span>
</div>
问题是,结果是这样的!
除了右边距块的右边,看起来很好,那个绿色块应该是#row
包装器。为什么它不像它应该包装?
答案 0 :(得分:4)
将display:block
或display:inline-block
定义为#row
范围,因为 span 是inline element
,而不是width
以height
&amp; 1}}默认情况下。
答案 1 :(得分:1)
您需要将overflow: auto
添加到#results
和#row
定义,还需要将display: block
添加到#row
(或者只是制作它是一个块元素,例如<div/>
),使其有效。
CSS:
#results { width: 700px; margin: 0 auto; border: 1px solid black; overflow: auto; }
#row { display: block; width: 85%; margin: 0 auto; border: 2px solid green; overflow: auto; }
#left { float: left; width: 200px; margin:5px 5px 5px 5px; border: 1px solid blue; }
#middle { float: left; width: 200px; margin:5px 5px 5px 5px; border: 1px solid blue; }
#right { float: left; width: 200px; margin:5px 5px 5px 5px; border: 1px solid blue; }
查看工作jsfiddle here。
但请记住,宽度(200px)+边框(2px)+边距(10px)= 212px,乘以3 = 636px,而700px的85%是595px,这就是它不适合的原因。
答案 2 :(得分:1)
因为内部元素使用float
,您必须“重置”。例如。在父母身上使用overflow: hidden;
。
此外,您正尝试在inline
元素(span
)上设置宽度,这是无法完成的。将其更改为block
或inline-block
。
答案 3 :(得分:1)
也许这可以帮到你
<html>
<head>
<style type='text/css'>
#results {width: 700px; margin: 0px auto; border: 1px solid black; min-height: 50px;}
#row {width: 92%; margin: 0px auto; border: 2px solid green; min-height: 30px;}
#left {float: left; width: 200px; margin:5px 5px 5px 5px; border: 1px solid blue;}
#middle {float: left; width: 200px; margin:5px 5px 5px 5px; border: 1px solid blue;}
#right {float: left; width: 200px; margin:5px 5px 5px 5px; border: 1px solid blue;}
</style>
</head>
<body>
<div id="results">
<div id="row">
<span id="left">left column</span>
<span id="middle">middle text</span>
<span id="right">right stuff</span>
</div>
<div id="row">
<span id="left">left column</span>
<span id="middle">middle text</span>
<span id="right">right stuff</span>
</div>
</div>
</body>
</html>
我得到它的Out put