参考资料:http://blog.sina.com.cn/s/blog_709475a10100wkdj.htmlcss
常见的块级元素:h1~h六、p、div、ul、table
块级元素独占一行,能够设置宽高以及边距html
常见的行内元素:span、a、input、select
行内元素不会独占一行,设置宽高行距等不会起效。wordpress
<div style="height: 200px; width: 200px;"> <span style="float: left; width: 150px; height: 150px; margin: 5px; padding: 5px; border: solid 1px red; background-color: Olive;">浮动元素span</span> </div> <div style="height: 200px; width: 200px;"> <span style="width: 150px; height: 150px; margin: 5px; padding: 5px; border: solid 1px red; background-color: Olive;">浮动元素span</span> </div>
浮动元素后面的块级元素(非浮动)会在浮动元素的下面显示;
浮动元素后面的行内级元素(非浮动)会在浮动元素的上面显示;布局
<div style="width: 600px; height: 500px; border: solid 1px #000000; background-color: #C7EEFF;"> <div style=" float: left; width: 250px; height: 250px; border: solid 1px Aqua; background-color: #03A9F4; margin: 10px 0 0 10px; "> 浮动DIV</div> <div style="background-color: #1491C9; border: solid 1px green; width: 300px; height: 150px;"> 跟在浮动元素后边的DIV</div> <span style="background-color: #E3EDF2; border: solid 1px green; /* margin: 0 0 0 -50px; */"> 跟在浮动元素后边的span</span> </div>
多个同方向浮动元素如果高度不一致的话,极可能会获得意外的效果,跟你想要的布局差异很大。
多个同方向浮动元素通常是按照流式布局,一行满了则自动换行,也就是相似于如下效果:spa
因为元素浮动后脱离了文档流,因此父元素是没法根据元素来自适应的。解决此问题最经常使用的办法由两种:code
1.添加隐藏的divhtm
<div style="clear:both;height:0px;"></div>
2.:after伪类blog
.clearfix:after{ visibility: hidden; display: block; font-size: 0; content: "."; clear: both; height: 0; } * html .clearfix{zoom: 1;} *:first-child + html .clearfix{zoom: 1;} </style> <div class="clearfix" style="border: 2px solid red;"> <div style="float: left; width: 80px; height: 80px; border: 1px solid blue;"> TEST DIV</div> </div>
参考资料文档
content是用来生成内容的。get
h2:before { content: "我是额外文字!"; } <h2>我是标题</h2>
<style type="text/css"> .box{padding:10px; background:gray;} .fix{*zoom:1;} .fix:after{display:block; content:"clear"; height:0; clear:both; overflow:hidden; visibility:hidden;} .l{float:left;} </style> <div class="box fix"> <img class="l" src="http://image.zhangxinxu.com/image/study/s/s256/mm1.jpg" /> </div>