当前位置: 首页 > Web前端 > HTML

CSS浮动的

时间:2023-03-28 12:58:24 HTML

标签按照默认的方式排列,我们称之为标准流(也称正常流、文档流)。比如块元素会占据单行,从上到下依次排列,而行内元素会从左到右依次排列,碰到父元素的边缘会自动换行。标准流是最基本的布局方式。但是有很多的布局效果,光靠标准流程是做不到的。这时候可以使用浮动来完成布局,因为浮动可以改变元素标签的默认排列方式。最典型的应用:可以将多个块级元素放在一行中排列显示。div{浮动:无;/*元素不浮动(默认值)*/float:left;/*元素向左浮动*/float:right;/*元素向右浮动*/}1.浮动特性1.1浮动元素会Outofthestandardflow(off-label)设置浮动元素,脱离标准流的控制,不再保留其原有位置。1.2浮动元素将显示在一行中并在元素顶部对齐。如果多个框设置为浮动,即使每个框的大小不同,它们也会根据属性值排成一行并在顶部对齐。如果父元素不能在一行中容纳多个框,则多余的框将在新的一行上对齐。1.3浮动元素具有内联块元素的特点。任何元素都可以设置为浮动,无论是块级元素、行内元素还是行内块元素。设置浮动时,元素可以获得内联块元素的属性。如果内联元素设置为浮动,则无需模式转换即可设置元素的宽高。如果未设置块级框的宽度,则默认宽度与父级相同。float设置好后,根据内容决定其大小。浮动元素和内联块元素的区别:浮动框是紧挨着的,没有间隙。2.浮动布局注意点2.1浮动与标准流父框搭配在布局过程中,我们先使用标准流父元素安排上下位置,然后内部子元素使用浮动安排左右位置.可以首先调整子元素的大小,然后再定位。2.2当一个元素浮动时,理论上其余的兄弟元素也应该浮动。一个框设置为浮动后,会影响浮动框后面的标准流(因为浮动元素会脱标)。如果一个盒子里面有多个盒子,如果其中一个盒子是浮动的,那么其他的兄弟元素也应该是浮动的。3.清浮。很多时候不方便给父框赋予高度(比如一些购物网站的商品页面,商品数量不固定,父框的高度也不确定),但是childbox浮动,不占位置。最后的结果是父框的高度为0,会影响下面的标准框。这时候我们需要清除浮动。清除浮动并不是让元素不浮动。清除浮动的本质是清除浮动元素带来的影响。如果父框本身有高度,则无需清除浮动。清除浮动后,父框会自动根据浮动的子框检测高度。有了parent的高度,不会影响后面的标准流程。div{清除:左;/*不允许左侧浮动元素(清除左侧浮动元素的影响)*/clear:right;/*不允许右侧浮动元素(清除右侧浮动元素的影响)*/clear:both;/*同时清除左右两边浮动的影响(实际工作中,几乎只用到这个)*/}清除浮动的策略是关闭浮动。只让浮动影响父框内部,不影响父框外的其他框。3.1清除浮动-附加标签法附加标签法也称为隔墙法。extra标签方法会在浮动元素末尾添加一个空标签【要求标签必须是块级元素】。例如


。优点:容易理解,容易编写。缺点:增加了很多无意义的标签,结构不好。3.2ClearFloat——给parent添加overflow你可以给parent添加overflow属性,设置为hidden、auto或scroll。优点:代码简洁缺点:无法显示溢出部分。3.3ClearFloating——:after伪元素方式和extralabel方式的升级版,同样是增加了.clearfix:after{content:'';显示:块;高度:0;明确:两者;visibility:hidden;}/totheparentelement*IE6,7exclusive*/.clearfix{*zoom:1;}优点:不添加标签,结构简单缺点:照顾低版本浏览器。3.4ClearFloating——双伪元素ClearFloat同时添加.clearfix:before,.clearfix:after{content:'';display:table;}.clearfix:after{clear:both;}/*IE6,7Proprietary*/.clearfix{*zoom:1;}优点:没有额外的标签,结构简单缺点:照顾低版本浏览器。