浮动、定位

作者: 块垒 | 来源:发表于2016-07-11 14:28 被阅读32次

文档流的概念指什么?有哪种方式可以让元素脱离文档流?

将窗体自上而下分成一行行,并在每行中按从左至右的顺序排放元素,即为文档流。也就是文档中可显示对象在排列中所占用的位置,比如块级元素默认占据一行。
浮动float以及定位中的绝对定位position:absolute和固定定位position:fixed都可以让元素脱离文档流。

有几种定位方式,分别是如何实现定位的,使用场景如何?

  1. position:static:默认属性,没有设置定位的都是该定位,元素不会有特殊偏移位置。
  2. position:relative:相对定位,相对于自己原来的位置进行定位,元素不会脱离文档流。
    相对定位.png
  3. position:absolute:绝对定位,相对于父容器上拥有定位的元素位置定位,如果父级没有定位则逐级向上查找,元素脱离文档流。
    绝对定位.png
  4. position:fixed:固定定位,相对于浏览器窗口进行定位。
    固定定位.png

absolute, relative, fixed 偏移的参考点分别是什么

position:relative:相对于自己原来的位置进行定位,元素不会脱离文档流。
position:fixed:固定定位,相对于浏览器窗口进行定位。
position:absolute:绝对定位,相对于父容器上拥有定位的元素位置定位,如果父级没有定位则逐级向上查找,元素脱离文档流。

z-index 有什么作用? 如何使用?

z-index设置元素的堆叠属性,拥有更高堆叠顺序的元素总是会处在上面,该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。只有在对元素进行了定位之后才可以设置元素的z-index属性。

z-index属性.png

position:relative和负margin都可以使元素位置发生偏移?二者有什么区别

margin就是把边距属性设置为负数,设置margin-bottom margin-right时元素本身不会发生位置偏移,设置margin-left margin-top时才会让元素发生位置偏移,但不管两种设置都会影响后面的元素。
position:relative会让元素发生位置偏移,但是因为本身并没有脱离文档流,所以不会对后面的元素有影响。

margin和relative.png

如何让一个固定宽高的元素在页面上垂直水平居中?

利用position:absolute,要设定居中的容器设置为绝对定位,然后调整topleft为50%,再设置margin为本身宽高的负一半。

满屏父元素的居中.png
固定高度父元素的居中.png

浮动元素有什么特征?对其他浮动元素、普通元素、文字分别有什么影响?

浮动框不在普通文档流中,所以文档中的块框就表现得像浮动框不存在一样。浮动框可以左右移动,直到碰到边缘或者下一个浮动框。
1.框一像右浮动碰到边缘:

右浮动.png

2.框一左浮动,框一因为脱离文档流,所以框二向上移动,框一盖住框二:

左浮动.png

3.依次浮动:

依次浮动.png

4.在没有足够的水平空间时,元素会像下移动至空间足够:

没有足够水平空间.png 高度不同时被卡住.png

浮动会让文字环绕浮动元素布局:

文字环绕.png

清除浮动指什么? 如何清除浮动?

浮动带来各种遍历,而其脱离文档流的特性也会带来各种问题,例如元素环绕等,清除浮动就是来解决这些问题,清除浮动是针对元素本身,只对自己有效,不能影响别的元素。
浮动引起的问题:

float引起的问题.png
清楚浮动之后:
clear清除浮动.png
清楚浮动的值:
clear:none:默认值,允许两边都有浮动
clear:left:不允许左边有浮动
clear:right:不允许右边有浮动
clear:both:两边都不允许有浮动

浮动和定位参考

代码

一.写出如下两栏布局, 其中中间区块宽度900px, 居中,左侧边栏宽度200px, 右侧边栏宽度700px
ps: 图片左浮动,导航栏整体右浮动,导航栏里面的li元素左浮动。
ps: aside左浮动,main左浮动
凡是有浮动的地方,其直接父元素必须清除浮动

0_1462790808720_upload-f2f4502f-a0e1-4328-8077-4701058384ca
github
在线预览
二.不适用背景图片实现如下效果 0_1462963669833_upload-4feae399-e99f-4209-add5-1fcc2c98deea
github
在线预览

本文版权归本人和饥人谷所有,转载请注明来源。

相关文章

  • css定位

    CSS 定位 (Positioning) 属性允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供...

  • CSS 定位

    CSS 定位 (Positioning) 属性允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供...

  • CSS 定位 (Positioning)

    CSS 定位 (Positioning) 属性允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供...

  • 定位及浮动

    定位# 元素定位: 浮动###### eg:######

  • CSS定位

    CSS定位(Positioning)允许你对元素进行定位。 CSS 定位和浮动 CSS 为定位和浮动提供了一些属性...

  • 浮动&定位

    浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?浮动元素脱离文档流,在当前行的左边或是右...

  • 浮动&定位

    关于浮动 浮动元素会脱离正常的文档流,按照其外边距指定的位置相对于它的上一个块级元素(或父元素)显示浮动元素后面的...

  • 浮动、定位

    1 . 文档流的概念指什么,有哪种方式可以让元素脱离文档流 CSS普通流/文档流(normal flow)是元素按...

  • 浮动定位

    浮动元素 浮动元素的特征其框可以左右移动(根据float属性值而定),直到它的外边缘碰到包含框或者另一个浮动元素的...

  • 浮动、定位

    浮动 浮动的特点 浮动会使元素脱离文档流 任何元素设置浮动 都会变为块状元素 浮动的元素会对兄弟元素和父元素产生直...

网友评论

    本文标题:浮动、定位

    本文链接:https://www.haomeiwen.com/subject/qgadjttx.html