2020-10-29 CSS position:fixed 如何居中

html-css019

2020-10-29 CSS position:fixed 如何居中,第1张

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

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

如果我们这么做:

效果如下:

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

设置 margin-top 和 margin-left 分别为高度和宽度的一半的负值。

这样就居中了,效果如下

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

没关系

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

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

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

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

通过position属性来控制;position属性的值常规有四个:

static:默认值,没有定位,元素出现在正常的流中;

absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位;

fixed:生成绝对定位的元素,相对于浏览器窗口进行定位;

relative:  生成相对定位的元素,相对于其正常位置进行定位。

跟随浮动样式采用fixed以浏览器窗口进行绝对定位,通过top(距窗口上方的距离)、bottom(距窗口下方的距离)、left(距窗口左方的距离)、right(距窗口右方的距离)来控制其位置。

例如:

header{

width: 100%

height: 100px

    position: fixed

    top: 0

z-index: 500

}

可以用position:absolute来固定,这个是绝对定位,和fixed相差无几,不过这个有父元素限制,就是默认样式不会超出父元素的范围,当然可以通过margin top left bottom right等来进行位置定位

如:

<div>返回顶部</div>

CSS:

div{position:absoluteright:10pxtop:40% width:100pxheight:20px}

第二种:

div{position:fixedright:10pxtop:40% width:100pxheight:20px}