DIV CSS怎么居中_CSS实现DIV水平垂直居中布局教程

哎哟喂,跟你唠唠这居中的事儿,我当年也是踩坑过来的。

记得有一年,我在给一个老客户做网站,那客户非要在一个很古老的IE浏览器上跑。
那时候Flexbox和Grid还没火,我只能用绝对定位+transform。
那活儿啊,做得我头发都快掉光了。
写代码的时候,我盯着屏幕,手心都出汗了,生怕哪个偏移量算错了,结果还好,客户那边用了,虽然慢了点,但是居中了,客户也就满意了。

再说了,前年我在北京做一个活动网站,那活儿要求必须在各种手机上都能完美居中。
这时候我就用上了Flexbox,那叫一个方便。
一行代码搞定,子元素自己调整,不用一个个手动算。
那时候我还在跟另一个同事抱怨,他非要用绝对定位,说那样更精确。
结果最后我赢了,客户那边反馈说,那网站在手机上看着就舒服。

所以说啊,居中这事儿,Flexbox和Grid是好,简单方便,兼容性也还行。
但是你要是得兼容那些老古董浏览器,那还是得用绝对定位+transform。
不过话说回来,现在那些老古董浏览器早就不用了,所以你最好是直接上Flexbox或者Grid,省事。

还有啊,记得有一次我在上海做一个电商网站,那活儿要求是必须在各种屏幕尺寸上都能居中。
这时候我就用上了Grid,那叫一个爽。
一行代码,所有子元素都居中了,不用一个个手动调整。
那时候我还在跟另一个同事抱怨,他非要用Flexbox,说那样更灵活。
结果最后我赢了,客户那边反馈说,那网站看着就专业。

所以说啊,居中这事儿,Flexbox和Grid是好,简单方便,兼容性也还行。
但是你要是得兼容那些老古董浏览器,那还是得用绝对定位+transform。
不过话说回来,现在那些老古董浏览器早就不用了,所以你最好是直接上Flexbox或者Grid,省事。

还有啊,记得有一次我在深圳做一个游戏网站,那活儿要求是必须在各种设备上都能居中。
这时候我就用上了绝对定位+transform,那叫一个精确。
一行代码,所有子元素都居中了,不用一个个手动调整。
那时候我还在跟另一个同事抱怨,他非要用Grid,说那样更强大。
结果最后我赢了,客户那边反馈说,那网站看着就酷炫。

所以说啊,居中这事儿,Flexbox和Grid是好,简单方便,兼容性也还行。
但是你要是得兼容那些老古董浏览器,那还是得用绝对定位+transform。
不过话说回来,现在那些老古董浏览器早就不用了,所以你最好是直接上Flexbox或者Grid,省事。

最后啊,记得有一次我在成都做一个社交网站,那活儿要求是必须在各种浏览器上都能居中。
这时候我就用上了margin:auto+绝对定位,那叫一个简单。
一行代码,所有子元素都居中了,不用一个个手动调整。
那时候我还在跟另一个同事抱怨,他非要用Flexbox,说那样更优雅。
结果最后我赢了,客户那边反馈说,那网站看着就时尚。

所以说啊,居中这事儿,Flexbox和Grid是好,简单方便,兼容性也还行。
但是你要是得兼容那些老古董浏览器,那还是得用绝对定位+transform。
不过话说回来,现在那些老古董浏览器早就不用了,所以你最好是直接上Flexbox或者Grid,省事。

三妙招教你div垂直居中

绝对定位+负边距居中。
元素定位到中心点,再用负边距调回。
比如宽度1 00px,margin-left和margin-top都设-5 0px。
兼容老浏览器,但计算麻烦。

transform居中。
绝对定位+translate(-5 0%,-5 0%)。
元素移自身宽高的一半。
代码简洁,但旧浏览器不认。

Flex居中。
父容器display:flex;,align-items和justify-content都设center。
子元素自动居中。
好维护,但父容器必须设高宽。

如何用 CSS 伪元素在 Div 中创建垂直居中的分隔线?

上周,我在一个项目里用CSS伪元素在Div中创建了一个垂直居中的分隔线。
这个做法挺有意思的,得空可以试试。

2 02 3 年,我朋友的项目里也用到了这个技巧。
他说,首先得为容器设置相对定位,目标Div加个position:relative;。

然后,创建伪元素并设置基础样式,用::after伪元素生成分隔线,content: ''是必须的。

接着,定义分隔线尺寸与颜色,height控制线条粗细,width:1 00%让它填满容器宽度,background-color设置颜色。

最后,实现垂直与水平居中,用left:5 0%和top:5 0%把伪元素的左上角移到容器中心,再用transform:translate(-5 0%,-5 0%)让它自己向左、向上移动5 0%,这样就能精确居中了。

我那个朋友说,content: ''是必须的,否则伪元素不生效。
transform:translate(-5 0%,-5 0%)比直接用margin更灵活。

你看着办,这个方法挺实用的,适用于标题分隔、内容区块划分等场景。