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

html-css039

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/

1.横向居中

(1)方法一

position: fixed

/* 居中对齐begin */

left: 50%

/* 兼容老版本的方法 */

-webkit-transform: translateX(-50%)

transform: translateX(-50%)

(2)方法二

设置固定宽度,并且设置margin:auto

(3)方法三

position: fixed

left: 50% - 居中盒子宽度的50%

2.纵向居中

(1) 高度和行高设置一样

height: 100px

line-height:100px

3.横向和纵向都居中

display: flex

/* 默认的主轴是x轴row, justify-content: center 沿着主轴居中对齐 */

justify-content: center

/* 我们需要一个侧轴居中 */

align-items: center

<style>

#center

{

width:50px

height:50px

background-color:red

position:fixed

top:50%

left:50%

margin-left:-25px/* width的一半的相反数 */

margin-top:-25px  /* height的一半的相反数 */

z-index:999

}

</style>

<div id="center"></div>

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

其实当时在互联网界已经有过一些统一样式表语言的建议了,但CSS是第一个含有“层叠”丰意的样式表语言。在CSS中,一个文件的样式可以从其他的样式表中继承。读者在有些地方可以使用他自己更喜欢的样式,在其他地方则继承或“层叠”作者的样式。这种层叠的方式使作者和读者都可以灵活地加入自己的设计,混合每个人的爱好。

哈坤于1994年在芝加哥的一次会议上第一次提出了CSS的建议,1995年的www网络会议上CSS又一次被提出,博斯演示了Argo浏览器支持CSS的例子,哈肯也展示了支持CSS的Arena浏览器。

同年,W3C组织(World WideWeb Consortium)成立,CSS的创作成员全部成为了W3C的工作小组并且全力以赴负责研发CSS标准,层叠样式表的开发终于走上正轨。有越来越多的成员参与其中,例如微软公司的托马斯·莱尔顿(Thomas Reaxdon),他的努力最终令Internet Explorer浏览器支持CSS标准。哈坤、波斯和其他一些人是这个项目的主要技术负责人。1996年底,CSS初稿已经完成,同年12月,层叠样式表的第一份正式标准(Cascading style Sheets Level 1)完成,成为w3c的推荐标准。