css盒子垂直居中的几种方法(CSS实现垂直居中的几种方案_html/css_WEB-ITnose)

本文目录
CSS实现垂直居中的几种方案_html/css_WEB-ITnose
最近在学关系型数据库相关,MySQL 和 Postgre,捎带着学了 PHP,为了练手这几天就忙着自己搭博客,项目部署在某云上,该云算是良心,给的空间自己搭博客用足够了。本来想着每日一bo的,所以有的时候实在来不及就只能隔天更新了。以后尽量发点东西出来,等博客搭完写一写 SQL 数据库基础相关的分享,给跟我一样的小白道友们做下参考,大神请直接无视~
说到居中,很多人第一反应应该是水平居中,说到水平居中,肯定道友们有一万种方法做到,CSS3 的FlexBox更是强大到没朋友。但是良辰今天想聊的是 CSS 垂直居中的方法,下面是萌萌的分割线。神马?你敢说不萌?
方式一 :table 布局方法直接上?:Title .container{ width: 200px; height: 200px; font-weight:bold;"》deepskyblue; display: table; } .cell{ display: table-cell; vertical-align: middle; font-weight:bold;"》lawngreen; } .content{ font-weight:bold;"》yellow; } Content 效果:分析优点:content 高度可以动态改变,无须担心父级容器高度不够被截断; 缺点:IE8 还没搞定。 方式二:布局对象固定高度vertical-center.container{ width: 200px; height: 200px; background-color: #003366; position: relative; text-align: center; display: table; } .content{ width:100px; height: 100px; background-color: yellow; position: absolute; top:50%; margin-top: -50px; left:50%; margin-left:-50px;} .point{ width:50px; height: 50px; position: absolute; top: 50%; margin-top: -25px; left:50%; margin-left:-50px; background-color: green; }point goes here. 就这样,我们实现了垂直和水平的居中 上面提到的方法,都有局限性,下面介绍一种通用的方法,不过是 CSS3实现的,但是通用。 haorooms不固定高度div写法 .center { position: fixed; top: 50%; left: 50%; background-color: #000; width:50%; height: 50%;-webkit-transform: translateX(-50%) translateY(-50%);}看吧,我们只是吧 margin 变成translate,其他浏览器的写法如下: -webkit-transform: translateX(-50%) translateY(-50%);-moz-transform: translateX(-50%) translateY(-50%);-ms-transform: translateX(-50%) translateY(-50%);transform: translateX(-50%) translateY(-50%); justify-content:center;//子元素水平居中align-items:center;//子元素垂直居中display:-webkit-flex; 就先写这么多吧,先吃饭去啦~
《Web开发中让盒子居中的几种方法》
一、记录下几种盒子居中的方法:
1.0、margin固定宽高居中;
2.0、负margin居中;
3.0、绝对定位居中;
4.0、table-cell居中;
5.0、flex居中;
6.0、transform居中;
7.0、不确定宽高居中(绝对定位百分数);
8.0、button居中。
二、代码演示(html使用同一个Demo):
html Demo:
1.0、margin固定宽高居中(演示)
这种定位方法纯粹是靠宽高和margin拼出来的,不是很灵活。
CSS:
#container {
width: 600px;
height: 500px;
border: 1px solid #000;
margin: auto;
}
#box {
width: 200px;
height: 200px;
margin: 150px 200px;
background-color: #0ff;
}
2.0、负margin居中(演示)
利用负的margin来进行居中,需要知道固定宽高,限制比较大。
CSS:
#container {
position: relative;
width: 600px;
height: 500px;
border: 1px solid #000;
margin: auto;
}
#box {
position: absolute;
width: 200px;
height: 200px;
left: 50%;
top: 50%;
margin: -100px -100px;
background-color: #0ff;
}
3.0、绝对定位居中(演示)
利用绝对定位居中,非常常用的一种方法。
CSS:
#container {
position: relative;
width: 600px;
height: 500px;
border: 1px solid #000;
margin: auto;
}
#box {
position: absolute;
width: 200px;
height: 200px;
left: 0;
top: 0;
right: 0;
bottom: 0;
margin: auto;
background-color: #0ff;
}
4.0、table-cell居中(演示)
利用table-cell来控制垂直居中。
CSS:
#container {
display: table-cell;
width: 600px;
height: 500px;
vertical-align: middle;
border: 1px solid #000;
}
#box {
width: 200px;
height: 200px;
margin: 0 auto;
background-color: #0ff;
}
5.0、flex居中(演示)
CSS3中引入的新布局方式,比较好用。缺点:IE9以及IE9一下不兼容。
CSS:
#container {
display: -webkit-flex;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
width: 600px;
height: 500px;
border: 1px solid #000;
margin: auto;
}
#box {
width: 200px;
height: 200px;
background-color: #0ff;
}
6.0、transform居中(演示)
这种方法灵活运用CSS中transform属性,较为新奇。缺点是IE9下不兼容。
CSS:
#container {
position: relative;
width: 600px;
height: 600px;
border: 1px solid #000;
margin: auto;
}
#box {
position: relative;
top: 50%;
left: 50%;
width: 200px;
height: 200px;
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
background-color: #0ff;
}
7.0、不确定宽高居中(绝对定位百分数)(演示)
这种不确定宽高的居中,较为灵活。只需要保证left和right的百分数一样就可以实现水平居中,保证top和bottom的百分数一样就可以实现垂直居中。
CSS:
#container {
position: relative;
width: 600px;
height: 500px;
border: 1px solid #000;
margin: auto;
}
#box {
position: absolute;
left: 30%;
right: 30%;
top: 25%;
bottom: 25%;
background-color: #0ff;
}
8.0、button居中(演示)
利用button做外容器,里边的块元素会自动垂直居中,只需要控制一下水平居中就可以达到效果。
HTML:
CSS:
button {
width: 600px;
height: 500px;
border: 1px solid #000;
}
div {
width: 200px;
height: 200px;
margin: 0 auto;
background-color: #0ff;
}

更多文章:
centos7安装apache服务(您好,想请教下怎么在 linux(centos 7)中配置安装apache服务器)
2026年1月31日 12:30
clips怎么读?用eclipse开发安卓APP,弄好在哪里打包或签名apk
2025年10月16日 13:30
php兼职招聘(2021福建厦门同安区丙州幼儿园编外教师招聘公告)
2026年5月5日 01:45
喵艺术|04 春天不会迟到——大卫霍克尼?如何评价大卫·霍克尼
2025年9月28日 07:30
python中range的用法和作用(Python内置函数range)
2025年9月13日 00:00
html5框架代码写在哪里(在html页面上编写javascript代码时应编写在什么标)
2026年2月11日 14:15
word通配符大全(请问在word或者wps中使用通配符时,要表达“或者”这个条件时使用什么符号)
2026年6月9日 05:00
floatleft是什么意思(float:left 与display:inline的具体区别)
2025年8月7日 19:00















