天涯论坛

 找回密码
 立即注册
搜索
查看: 99|回复: 2

CSS 水平+垂直居中的方式

[复制链接]

3039

主题

148

回帖

9911万

积分

论坛元老

Rank: 8Rank: 8

积分
99119141
发表于 2024-6-30 05:29:34 | 显示全部楼层 |阅读模式

关于CSS 水平+垂直居中的问题,研发代码的过程中,会经常遇到。

那样,在这儿,我会介绍几种方式,来实现CSS的水平+垂直居中。

首要咱们先将body,html的高度和宽度设置为100%,其次清除默认样式,margin和padding设置为0。

写个宽度和高度均为200px,青色的方块。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>index</title> <style> html,body{ bac公斤round:#2d3436; height:100%; width:100%; } *{ margin:0; padding:0; } .box{ width:200px; height:200px; bac公斤round:#81ecec; } </style> </head> <body> <div class="box"></div> </body> </html>

水平居中则能够用 margin: 0 auto;来设置。

咱们晓得元素平时的默认状态是position = static (静态)。

垂直居中必须使 position = relative ,这般能够用top 属性,使其移动。

运用margin-top属性,由于自己是200px高度,因此减去自己一半的高度,就能够垂直居中。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>index</title> <style> body,html{ bac公斤round:#2d3436; height:100%; width:100%; } *{ margin:0; padding:0; } .box{ width:200px; height:200px; bac公斤round:#81ecec; } .loca{ margin:0 auto; /* 水平居中 */ position: relative; /* 绝对定位 */ top:50%; /* 偏移 */ margin-top:-100px; /*减去自己高度一半*/ } </style> </head> <body> <div class="box loca"></div> </body> </html>

这般就实现垂直居中的效果。

CSS3的transform的属性能够实现向上偏移的效果。

transform:translateY(-50%) 意思是偏移自己高度的一半。

效果如下:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>index</title> <style> body,html{ bac公斤round:#2d3436; height:100%; width:100%; } *{ margin:0; padding:0; } .box{ width:200px; height:200px; bac公斤round:#81ecec; } .loca{ margin:0 auto; /* 水平居中 */ position: relative; /* 绝对定位 */ top:50%; /* 偏移 */ /* margin-top:-100px; */ transform:translateY(-50%); } </style> </head> <body> <div class="box loca"></div> </body> </html>

以上两种办法的代码链接。

另一CSS3中还有种办法 FLEX布局,实现水平垂直居中的办法

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html 阮一峰老师的博客,大众能够瞧瞧针对布局非常有帮忙

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>index</title> <style> body,html{ bac公斤round:#2d3436; height:100%; width:100%; } *{ margin:0; padding:0; } body{ display:flex; align-items:center; justify-content:center; } .box{ width:200px; height:200px; bac公斤round:#81ecec; } </style> </head> <body> <div class="box"></div> </body> </html>




上一篇:CSS实现水平垂直居中(多办法)
下一篇:css 实现水平垂直居中的三种常用办法
回复

使用道具 举报

1

主题

754

回帖

-3

积分

限制会员

积分
-3
发表于 2024-8-27 21:01:20 | 显示全部楼层
可以发布外链的网站 http://www.fok120.com/
回复

使用道具 举报

3089

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098770
发表于 2024-10-3 02:35:01 | 显示全部楼层
这篇文章真的让我受益匪浅,外链发布感谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-23 00:57 , Processed in 0.118784 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.