浮动、定位
文档流的概念指什么?有哪种方式可以让元素脱离文档流?
将窗体自上而下分成一行行,并在每行中按从左至右的顺序排放元素,即为文档流。也就是文档中可显示对象在排列中所占用的位置,比如块级元素默认占据一行。
浮动float
以及定位中的绝对定位position:absolute
和固定定位position:fixed
都可以让元素脱离文档流。
有几种定位方式,分别是如何实现定位的,使用场景如何?
-
position:static
:默认属性,没有设置定位的都是该定位,元素不会有特殊偏移位置。 -
position:relative
:相对定位,相对于自己原来的位置进行定位,元素不会脱离文档流。
相对定位.png -
position:absolute
:绝对定位,相对于父容器上拥有定位的元素位置定位,如果父级没有定位则逐级向上查找,元素脱离文档流。
绝对定位.png -
position:fixed
:固定定位,相对于浏览器窗口进行定位。
固定定位.png
absolute, relative, fixed 偏移的参考点分别是什么
position:relative
:相对于自己原来的位置进行定位,元素不会脱离文档流。
position:fixed
:固定定位,相对于浏览器窗口进行定位。
position:absolute
:绝对定位,相对于父容器上拥有定位的元素位置定位,如果父级没有定位则逐级向上查找,元素脱离文档流。
z-index 有什么作用? 如何使用?
z-index
设置元素的堆叠属性,拥有更高堆叠顺序的元素总是会处在上面,该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。只有在对元素进行了定位之后才可以设置元素的z-index
属性。
position:relative和负margin都可以使元素位置发生偏移?二者有什么区别
负margin
就是把边距属性设置为负数,设置margin-bottom margin-right
时元素本身不会发生位置偏移,设置margin-left margin-top
时才会让元素发生位置偏移,但不管两种设置都会影响后面的元素。
position:relative
会让元素发生位置偏移,但是因为本身并没有脱离文档流,所以不会对后面的元素有影响。
如何让一个固定宽高的元素在页面上垂直水平居中?
利用position:absolute
,要设定居中的容器设置为绝对定位,然后调整top
和left
为50%,再设置margin为本身宽高的负一半。
固定高度父元素的居中.png
浮动元素有什么特征?对其他浮动元素、普通元素、文字分别有什么影响?
浮动框不在普通文档流中,所以文档中的块框就表现得像浮动框不存在一样。浮动框可以左右移动,直到碰到边缘或者下一个浮动框。
1.框一像右浮动碰到边缘:
2.框一左浮动,框一因为脱离文档流,所以框二向上移动,框一盖住框二:
左浮动.png3.依次浮动:
依次浮动.png4.在没有足够的水平空间时,元素会像下移动至空间足够:
没有足够水平空间.png 高度不同时被卡住.png浮动会让文字环绕浮动元素布局:
文字环绕.png清除浮动指什么? 如何清除浮动?
浮动带来各种遍历,而其脱离文档流的特性也会带来各种问题,例如元素环绕等,清除浮动就是来解决这些问题,清除浮动是针对元素本身,只对自己有效,不能影响别的元素。
浮动引起的问题:
清楚浮动之后:
clear清除浮动.png
清楚浮动的值:
clear:none
:默认值,允许两边都有浮动clear:left
:不允许左边有浮动clear:right
:不允许右边有浮动clear:both
:两边都不允许有浮动
代码
一.写出如下两栏布局, 其中中间区块宽度900px, 居中,左侧边栏宽度200px, 右侧边栏宽度700px
ps: 图片左浮动,导航栏整体右浮动,导航栏里面的li元素左浮动。
ps: aside左浮动,main左浮动
凡是有浮动的地方,其直接父元素必须清除浮动
github
在线预览
二.不适用背景图片实现如下效果 0_1462963669833_upload-4feae399-e99f-4209-add5-1fcc2c98deea
github
在线预览
本文版权归本人和饥人谷所有,转载请注明来源。