浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?
特征:
- 浮动元素会脱离正常的文档流,按照其外边距指定的位置相对于它的上一个块级元素(或父元素)显示
- 浮动元素后面的块级元素的内容会向此浮动元素的外边距靠齐,但是边框和背景却忽略浮动元素而向上一个任意非浮动元素靠齐
- 浮动元素后面的内联元素会向此浮动元素的外边距靠齐
float造成的影响:
1、对其父元素的影响
对于其父元素来说,元素浮动之后,它脱离当前正常的文档流,所以它也无法撑开其父元素,造成父元素的塌陷。
2、对其兄弟元素(非浮动)的影响
- 如果兄弟元素为块级元素,该元素会忽视浮动元素的而占据它的位置,并且元素会处在浮动元素的下层(并且无法通过z-index属性改变他们的层叠位置),但它的内部文字和其他行内元素都会环绕浮动元素。
- 如果如果兄弟元素为内联元素,则元素会环绕浮动元素排列。
3、对其兄弟元素(浮动)的影响
- 同一个方向的浮动元素:当一个浮动元素在浮动过程中碰到同一个方向的浮动元素时,它会紧跟在它们后面
- 反方向的浮动元素:互不影响,位于同一条水平线上,当空间不够时会被挤下
4、对子元素的影响
当一个元素浮动时,在没有清除浮动的情况下,它无法撑开其父元素,但它可以让自己的浮动子元素撑开它自身,并且在没有定义具体宽度情况下,使自身的宽度从100%变为自适应(浮动元素display:block)。其高度和宽度均为浮动元素高度和非浮动元素高度之间的最大值。
清除浮动指什么?如何清除浮动? 两种以上方法。
在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高度,使得内容溢出到容器外面而影响(甚至破坏)布局的现象。这个现象叫浮动溢出,为了防止这个现象的出现而进行的CSS处理,就叫CSS清除浮动。
方法一:
overflow: hidden
<div class="links">
<a href="#" class="forget">忘了密码?</a>
<a href="#" class="register">注册新账号</a>
</div>
.links { overflow: hidden; }
.links .forget { float: left; }
.links .register { float: right; }
方法二:
.clearfix
.clearfix::after {
content: '';
clear: both;
display: block;
}
方法三:
在浮动元素下方放一个空的非浮动元素。
有几种定位方式?分别是如何实现定位的?参考点是什么?使用场景是什么?
有五种定位方式,分别是:
1.静态定位
position: static 默认值 默认的布局方式。
2.相对定位
position: relative 相对默认的布局位置进行定位。
相对定位就是“相对自己定位”。
.avatar {
top: 3px;
left: 7px;
position: relative;
}
3.绝对定位
position: absolute
绝对定位元素脱离正常文档流,相对其定位上下文(Positioning Context)进行定位。
4.定位上下文 Positioning Context
定位上下文就是值绝对定位元素相对哪个元素定位,默认的定位上下文是 <html>。
假如你想设定某个绝对定位元素的定位上下文,则需要在这个元素的某个祖先元素上设置 position: relative。
4.固定定位
position: fixed 相对浏览器窗口进行定位。因此当滚动产生时,固定定位元素依然处于窗口的某个固定位置。
.feedback {
right: 30px;
bottom: 30px;
position: fixed;
}
5.粘性定位
position: sticky
是相对定位和固定定位的结合。默认情况下表现为相对定位,当浏览器窗口顶端与元素的距离等于 top
属性的值时,转变为固定定位。
z-index 有什么作用? 如何使用?
z-index 有什么作用?
可以解决元素的覆盖问题,决定那个元素在上方,哪一个在下方;
z-index的值可以是负数,也可以为0,也可以无群大,数值大的在上方;
z-index父元素设置的值权重比较大,当两个父元素相比的时候,父元素起决定作用,其中的子元素设置多大都没有用;
设置之后
网友评论