那么我们如何设置 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的推荐标准。