说一下浮动?
标准流中元素的内容可以撑起父元素盒子的高度,但是浮动的元素是不可以撑起的
(1)给父元素设置高度(少用,因为难以确定具体高度)
(2)给后面的元素添加clear属性
none: 默认取值, 按照浮动元素的排序规则来排序
left: 不要找前面的左浮动元素right: 不要找前面的右浮动元素 both: 不要找前面的左浮动元素和右浮动元素),但是可能会造成margin值的失效,因为找不到看齐的对象了。
(3)给前面元素的末尾添加一个伪类
.box1::after { content: ''; display: block; height: 0; visibility: hidden; clear: both; }
好处:可以给第一个盒子设置margin-bottom,可以给第二个盒子设置margin-top,并且可以撑起第一个盒子的高度,做到样式和结构分离
(4)overflow:hidden
加上这个之后,父级的高度就随子级容器及子级内容的高度而自适应,但是在ie6中无效,还需要加入*zoom:1.
补充:overflow:hidden的三个作用:
1.超出部分隐藏
2.清除浮动
3.解决外边距塌陷问题,给父元素设置o:h,子元素设置margin-top之后,父元素不会被顶下来
得分点
脱离文档流、盒子塌陷、 影响其他元素排版、伪元素 、
overflow:hidden
、标签插入法参考答案
标准回答
浮动的作用,设置浮动的图片,可以实现文字环绕图片,设置了浮动的块级元素可以排列在同一行,设置了浮动的行内元素可以设置宽高,同时可以按照浮动设置的方向对齐排列盒子。
设置浮动元素的特点:
浮动造成的影响,使盒子脱离文档流,如果父级盒子没有设置高度,需要被子盒子撑开,那么这时候父级盒子的高度就塌陷了,同时也会造成父级盒子后面的兄弟盒子布局受到影响。如果浮动元素后面还有其他兄弟元素,其他兄弟元素的布局也会受到影响。
清除浮动的方法:
伪元素清除浮动:给浮动元素父级增加
overflow:hidden
:给浮动元素父级增加overflow:hidden
属性额外标签法:给浮动元素父级增加标签
加分回答
三种清除浮动的特点和影响
overflow:hidden
:不会新增标签,但是如果父级元素有定位元素超出父级,超出部分会隐藏,在不涉及父级元素有超出内容的情况,overflow:hidden比较常用,毕竟写法方便简洁延伸阅读
文字环绕图片
不加浮动效果
加浮动效果
浮动的应用场景-块级元素左右布局
浮动造成盒子塌陷效果
代码同《2.浮动的应用场景-块级元素左右布局》,父级盒子wrap的高度为0
清除浮动后效果
使用
overflow:hidden
造成的影响:效果——
overflow: hidden
前效果——
overflow: hidden
后