面试总结:(display:none 与 visibility:hidden 的区别?、position 的值有哪些,分别有哪些作用?、为什么会出现浮动?浮动元素会引起什么问题?如何清除浮动?)

display:none 与 visibility:hidden 的区别?      

        元素隐藏和显示最常用的为 display:none 和 visibility:hidden
                dispaly:none 设置该属性后,该元素下的元素都会隐藏,占据的空间消失
                visibility:hidden 设置该元素后,元素虽然不可见了,但是依然占据空间的位置

区别:

        1.visibility 具有继承性,其子元素也会继承此属性,若设置 visibility:visible,
则子元 素会显示
        2.visibility 不会影响计数器的计算,虽然隐藏掉了,但是计数器依然继续运行着。
        3.在 CSS3 的 transition 中支持 visibility 属性,但是不支持 display,因为 transition 可以延迟执行,因此配合 visibility 使用纯 CSS 实现 hover 延时显示效果可以 提高用户体验
        4.display:none 会引起回流(重排)和重绘 visibility:hidden 会引起重绘

position 的值有哪些,分别有哪些作用?

        静态定位:static 默认值不脱离文档流,top,right,bottom,left 等属性不生效
        绝对定位:absolute
                绝对定位的关键是找对参照物:找到最近的一级带有带定位的父级元素进行位置移动如果找不到,那么相对于浏览器窗口进行定位
                注:设置了 position:absolute;属性后,元素会脱离正常文档流,不在占据空间;左 右 margin  为 auto 将会失效;我们通过 left、top、bottom、right 来决定元素位置
相对定位:relative
        参照物:元素偏移前位置
        注:设置了相对定位,左右 margin 为 auto 仍然有效、并且不会脱离文档流。
固定定位:fixed
        参照物:浏览器窗口;
        注:固定定位会脱离文档流;
        当绝对定位和固定定位参照物都是浏览器窗口时的区别: 当出现滚动条时,固定定位的元素不会跟随滚动条滚动,绝对定位会跟随滚动条滚动

为什么会出现浮动?浮动元素会引起什么问题?如何清除浮动?

        浮动将元素排除在普通流之外,即元素将脱离文档流,不占据空间。浮动元素碰到包含它的
边界或者浮动元素的边界停留
为什么需要清除浮动:
1、子元素浮动后,不占位置,父元素的高度无法被撑开,影响与父元素同级的元素;
2、与浮动元素同级的非浮动元素(内联元素)会跟随其后;
3、若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构解
决方法
清除浮动的方式:
1、使用 CSS 中的 clear:both;(放一个空的标签,并设置上述 css,注意该标签必须是块元素),属性来清除元素的浮动 可解决 2、3 问题
2、对于问题 1,添加如下样式,给父元素添加 clearfix 样式:
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
/* for IE */
.clearfix{
*zoom:1;
}
3、给父级元素设置双伪元素;
<div class="container clearfix">
<div class="wrap">aaa</div>
</div>
.clearfix:after{
 
content:"";
 
/*设置内容为空*/
/*高度为 0*/
 
 
height:0;
line-height:0;
display:block;
visibility:hidden;
 clear:both;
/*行高为 0*/
/*将文本转为块级元素*/
/*将元素隐藏*/
 
/*清除浮动*/
}
.clearfix{
zoom:1;
}
4、给父级元素设置 overflow:hidden;或 overflow:auto;本质是构建一个 BFC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值