我想在容器div中对齐3个div,以下所示: css
[[LEFT] [CENTER] [RIGHT]]
容器div的宽度为100%(未设置宽度),调整容器大小后,居中div应该保持居中。 ide
因此我设置: spa
#container{width:100%;} #left{float:left;width:100px;} #right{float:right;width:100px;} #center{margin:0 auto;width:100px;}
但它变成: .net
[[LEFT] [CENTER] ] [RIGHT]
有小费吗? code
若是您不想更改HTML结构,也能够经过添加text-align: center;
包装器元素和display: inline-block;
到居中元素。 get
#container { width:100%; text-align:center; } #left { float:left; width:100px; } #center { display: inline-block; margin:0 auto; width:100px; } #right { float:right; width:100px; }
现场演示: http : //jsfiddle.net/CH9K8/ io
这是当我以图像为中心元素时必须对接受的答案进行的更改: class
#center
)。 若是不是,则必须将display
设置为block
,而且它彷佛相对于浮动元素之间的空间居中。 确保设置图像及其容器两者的大小: 容器
#center { margin: 0 auto; } #center, #center > img { width: 100px; height: auto; }
我喜欢个人杠铃紧凑而充满活力。 这是针对CSS 3和HTML 5的 扩展
首先,将“宽度”设置为100px是有限制的。 不要这样
其次,将容器的宽度设置为100%能够正常工做,直到谈论它是整个应用程序的页眉/页脚栏,例如导航栏或信用/版权栏。 使用right: 0;
而不是那种状况。
您正在使用id(哈希#container
#left
, #container
#left
等)而不是类( .container
, .left
等),这很好,除非您想在代码中的其余地方重复样式样式。 我会考虑使用类代替。
对于HTML,无需将顺序交换为:左,中和右。 display: inline-block;
解决此问题,将您的代码返回到更整洁且逻辑上又有序的位置。
最后,您须要清除全部浮动内容,以避免与未来的<div>
。 您能够clear: both;
作到这clear: both;
总结一下:
HTML:
<div class="container"> <div class="left"></div> <div class="center"></div> <div class="right"></div> <div class="clear"></div> </div>
CSS:
.container {right: 0; text-align: center;} .container .left, .container .center, .container .right { display: inline-block; } .container .left { float: left; } .container .center { margin: 0 auto; } .container .right { float: right; } .clear { clear: both; }
若是使用HAML和SASS则有加分;)
HAML:
.container .left .center .right .clear
SASS:
.container { right: 0; text-align: center; .left, .center, .right { display: inline-block; } .left { float: left; } .center { margin: 0 auto; } .right { float: right; } .clear { clear: both; } }
您已正确完成操做,只须要清除浮动便可。 只需添加
overflow: auto;
到您的容器类。
使用该CSS,将您的div放置为这样(浮点数优先):
<div id="container"> <div id="left"></div> <div id="right"></div> <div id="center"></div> </div>
PS您也能够向右浮动,而后向左浮动,而后居中。 重要的是浮子位于“主”中心部分以前。
PPS您一般但愿在#container
内部最后一个代码段: <div style="clear:both;"></div>
,它将垂直扩展#container
以包含两个侧面浮标,而不是仅从#center
取其高度,并可能容许两侧伸出底部。