美文网首页
2020-10-29 CSS position:fixed 如何

2020-10-29 CSS position:fixed 如何

作者: KingAmo | 来源:发表于2020-10-29 11:17 被阅读0次

    position:fixed 的元素脱离了文档流,不占据文档流的空间,这时 top、right、left、bottom是根据窗口为原点进行偏移定位的,也就是说它不会根据滚动条的滚动而进行偏移;

    那么我们如何设置 position:fixed 的元素居中呢?
    如果我们这么做:

    .centered {
      position: fixed;
      top: 50%;
      left: 50%;
    }
    

    效果如下:


    image.png

    fixed 的元素的左上角 居中了,但是我们要的是整个元素居中啊,怎么办呢

    .centered {
      position: fixed;
      top: 50%;
      left: 50%;
      margin-top: -50px; 
      margin-left: -100px;
    }
    

    设置 margin-topmargin-left 分别为高度和宽度的一半的负值。
    这样就居中了,效果如下

    image.png

    这么做的前提是你知道元素的宽度和高度,如果不知道宽高呢?

    没关系

    .centered {
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    

    The translate value for transform is based off the size of the element, so that will center nicely.

    tarmsform属性的 translate 值是基于元素的大小,所以可以完美的居中啦~

    ps: 如果只需要水平居中:

    .centered {
        position: fixed;
        left: 50%;
        transform: translateX(-50%);
    }
    

    参考

    https://css-tricks.com/quick-css-trick-how-to-center-an-object-exactly-in-the-center/

    相关文章

      网友评论

          本文标题:2020-10-29 CSS position:fixed 如何

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