前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!
垂直居中用到的地方有很多,解决的方法也有很多。
已知元素宽度 可以用position定位 + margin负值的方法
绝对定位 + 4个方向全部0px + margin:auto 可以做到基于父容器水平垂居中;如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多
绝对定位 + 左50% + margin左:宽度一半的负值 可以做到水平居中 右也可以
绝对定位 + 上50% + margin上:高度一半的负值 可以做到垂直居中 底部也可以
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } .wrapper{ width: 500px; height: 500px; background: #f90; left: 0; right: 0; top: 0; bottom: 0; position: absolute; margin: auto; /*绝对定位 + 4个方向全部0px + margin:auto 可以做到基于父容器水平垂居中*/ /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/ } .content{ width: 100px; height: 200px; background: #0f8; position: absolute; /*position: absolute基于第一个不是position:static的父级元素定位*/ left: 50%; top: 50%; margin-left: -50px; margin-top: -100px; /*绝对定位 + 左50% + margin左:宽度一半的负值 可以做到水平居中 右也可以*/ /*绝对定位 + 上50% + margin上:高度一半的负值 可以做到垂直居中 底部也可以*/ } </style> </head> <body> <p class="wrapper"> <span class="content"></span> </p> </body></html>
View Code
未知元素宽度 可以用position定位 + transform:translate(x,y)移动
绝对定位 + 上50% + 下50% + transform:translate(-50%,-50%) 可以做到垂直居中
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } .wrapper{ width: 500px; height: 500px; background: #f90; left: 0; right: 0; top: 0; bottom: 0; position: absolute; margin: auto; /*绝对定位 + 4个方向全部0px + margin:auto 可以做到基于父容器水平垂居中*/ /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/ } .content{ width: 100px; height: 200px; background: #0f8; position: absolute; /*position: absolute基于第一个不是position:static的父级元素定位*/ left: 50%; top: 50%; transform: translate(-50%,-50%); /*transform变化、使...变形、转换;transform属性应用于元素的2D或3D转换。这个属性允许你将元素移动,旋转,缩放,倾斜*/ /*translate平移,是transform的属性值的一部分*/ /*transition过渡、转变;可多个样式的变换效果*/ } </style> </head> <body> <p class="wrapper"> <span class="content"></span> </p> </body></html>
p中img图片垂直居中:
可以用vertical-align:middle,但是这个属性只有在inline-block类型(inline也有影响)的元素身上起作用,vertical-align的理解我得继续学习下,也欢迎大家指正
方法一:图片vertical-align:middle + 父元素的height与line-height一致
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0;margin: 0; } .wrapper{ height: 300px; line-height: 300px; width: 300px; margin:100px auto; background: #f90; text-align: center; } .wrapper img{ width: 150px; vertical-align: middle; } </style> </head> <body> <p class="wrapper"> <img src="images/1.jpg" alt="美女" title="美女"/> </p> </body></html>
View Code
方法二:父元素设置display:table-cell和vertical-align
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0;margin: 0; } .wrapper{ width: 300px; height: 300px; background: #f90; text-align: center; vertical-align: middle; display: table-cell; } .wrapper img{ width: 150px; } </style> </head> <body> <p class="wrapper"> <img src="images/1.jpg" alt="美女" title="美女"/> </p> </body></html>
更多css垂直居中的整理总结相关文章请关注PHP中文网!

这是我们在形式可访问性上进行的小型系列中的第三篇文章。如果您错过了第二篇文章,请查看“以:focus-visible的管理用户焦点”。在

CSS盒子阴影和轮廓属性获得了主题。让我们查看一些在真实主题中起作用的示例,以及我们必须将这些样式应用于WordPress块和元素的选项。

Svelte Transition API提供了一种使组件输入或离开文档(包括自定义Svelte Transitions)时动画组件的方法。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具