zoukankan      html  css  js  c++  java
  • # CSS基础position属性

    CSS position属性

    position属性是HTML中非常重要的一个属性,它有五个属性值,分别是:staticabsoluterelativefixedsticky

    static

    HTML里面所有元素的position默认值都是static 。
    top、 left、 right、 bottom 设定值不会对position为static的元素生效

    具有position为static属性值的元素,不会脱离文档流,

    可见,position为static时,该元素不会脱离文档流(从上到下,从左到右),当其上面有内容增加,它会被挤下去。

    absolute

    当position的属性值为absolute时, 即“绝对定位”,所谓绝对,就是不受其他元素的影响。使用absolute时,要用top、 left、 right、 bottom值对元素设定位置。例如:

    注意:

    • 1.当使用absolute的时候,如上图,如果有y向卷轴,拖动卷轴,元素是会随着移动的。
    • 2.当使用absolute的时候,如果有嵌套元素,那么top、left、right、bottom位置的设定的参考元素,是其父级元素。例如:

    relative

    relative元素有一点和static元素很相似,就是也会保持在文档流内,会受到其他元素的挤动。relative中文即“相对的”之意,所以在文档中,它是保持在文档流中的同时,还能通过top、left、right、bottom等位置属性,设定其相对其他元素的位置,而其在文档流中的位置,大小依然占位,所以会出现这种情况:

    relative的最关键的一个作用,我们常常把它和absolute结合使用,当其子元素的position属性值为absolute时,该子元素,会相对其position属性值为relative的父元素定位。

    这样,有三点好处:

    • 可以保持在文档流中;(父元素为static的absolute子元素不行)

    • 可以有top、left、right、bottom等位置属性的设定;(单独的static元素没有)

    • 可以根据relative元素的位置,设定相对位置(position属性值为absolute的子元素的top、left、right、bottom位置控制属性,是相对其position属性值为relative的父级元素的。这样就能实现在任意位置设定需要的元素。

    fixed

    fixed和absolute很相似,同的地方有两点:

    • fixed会定位到屏幕中的固定位置,会根据body去定位。即便文档内容有卷动,其位置还是固定不改变。这不同于absolute,当文档内容可以卷动时,absolute元素会随着文档移动。
    • 如果fixed元素有设定top、left、right、bottom的属性,即使放在position属性值为relative的元素里面,该fixed元素也会根据页面,即body去定位,而不是相对于其relative容器元素定位。

    例如:

    此时,黑色小方块没有设定相对位置,默认的它在relative元素里,此时,如果给黑色方块设定位置属性:

    可以看到,它直接脱离了relative容器的束缚。

    在使用relative和fixed的不同position属性嵌套元素时,注意一点:

    sticky

    sticky目前浏览器支持很少,属于实验阶段,也很有意思:

  • 相关阅读:
    编译器与解释器的区别
    django中两张表之间有多个ForeignKey的问题
    23python装饰器的使用
    24.python传递可变长的非关键参数和关键参数
    如何让django的admin组件显示为中文
    22迭代器和iter()函数
    如何让django中的admin组件的表的字段显示为中文
    django模板中关于过滤器的使用
    django的认证支持模块
    python如何实现——日期加上天数的处理方法
  • 原文地址:https://www.cnblogs.com/jaycethanks/p/12880914.html
Copyright © 2011-2022 走看看