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

CSS浮动及其危害及解决方法

时间:2023-03-30 23:57:19 CSS

html元素分为三种:①、块元素:如div--------显示:块②、内联元素:如span------display:inline③、inlineblock元素:如input----display:inline-block在标准流程中,三类元素的呈现方式不同*display:block元素会占据单行,也有多个block元素会单独显示换行*inline和inline-block元素不会占一行,多个相邻的inline元素会排在同一行,直到排不下一行,换行如果你想要像内联元素这样的块状元素,那些不会自动换行,可以使用css的float属性(floating)left----------元素向左浮动。right--------元素向右浮动。无------默认值。元素不会浮动,而是出现在它们在文本中出现的位置。inherit----指定应该从父元素继承float属性的值。漂浮虽然很方便,但也带来了一定的负面影响。浮动主要是导致父元素的高度塌陷,使得很多父元素,如背景色、边框等,无法正确显示和子元素在同一层级的位置。我们先来看看正常的浮动效果

。父母{宽度:300px;边框:3px纯黑色;背景色:黄色;}.child{宽度:50px;height:50px;}.child1{背景色:红色;浮动:左;}.child2{背景颜色:蓝色;:right;}正常的浮动效果正常的效果如上图所示:我们可以看到父元素原本设置的属性background-color:yellowborder:3pxsolidblack没有显示出来,因为浮动导致高度塌陷!解决浮动的负面影响效果图解决①后,为父元素定义高度。parent{height:50px;}②,给父元素添加overflow:hidden.parent{overflow:hidden;}③,添加到父元素溢出:auto.parent{overflow:auto;}④、给父元素添加display:table.parent{display:table;}⑤、给最后一个子元素添加一个div,使用clear:both
⑥、父元素定义伪类:after.parent:after{content:"";显示:块;clear:both;}实际开发中推荐使用第六种