CSS水平垂直居中

水平居中

HTML代码:

1 <div class="parent">
2     <div class="child"></div>
3 </div>

1、使用margin:auto;

 1 <style type="text/css">
 2         .parent{
 3             width: 600px;
 4             height: 600px;
 5             border: solid 1px #000000;
 6         }
 7         .child{
 8             width: 300px;
 9             height: 300px;
10             background-color: #aa3333;
11             margin: 0 auto;
12         }
13 </style>

2、绝对定位居中;

(1)基于父元素left:50%;设定子元素margin-left为-150是需要消除父元素50%造成的偏移

CSS部分:

 1 <style type="text/css">
 2         .parent{
 3             position: relative;
 4             width: 600px;
 5             height: 600px;
 6             border: solid 1px #000000;
 7             box-sizing: border-box;
 8         }
 9         .child{
10             width: 300px;
11             height: 300px;
12             background-color: #aa3333;
13             position: absolute;
14             left: 50%;
15             margin-left: -150px;
16         }
17 </style>

(2)子元素设置margin-left

1 .child{
2             width: 300px;
3             height: 300px;
4             background-color: #aa3333;
5             position: absolute;
6             margin-left: 150px;
7         }

(3)父元素设置padding-left

1 .parent{
2             position: relative;
3             width: 600px;
4             height: 600px;
5             border: solid 1px #000000;
6             box-sizing: border-box;
7             padding-left: 150px;
8         }

3、子元素设置display的表现形式inline-block;父元素文本居中

 1 <style type="text/css">
 2         .parent{
 3             width: 600px;
 4             height: 600px;
 5             border: solid 1px #000000;
 6             text-align: center;
 7         }
 8         .child{
 9             width: 300px;
10             height: 300px;
11             border: solid 1px #aa3333;
12             display: inline-block;
13         }
14 </style>

4、使用table表现形式,父元素display:table,子元素display:table-cell

 1 <style type="text/css">
 2         .parent{
 3             width: 600px;
 4             height: 600px;
 5             border: solid 1px #000000;
 6             display: table;
 7         }
 8         .child{
 9             width: 300px;
10             height: 300px;
11             border: solid 1px #aa3333;
12             display: table-cell;
13         }
14 </style>

5、flex;父元素display:flex,子元素margin:auto

 1 <style type="text/css">
 2         body{
 3             padding: 0;
 4             margin: 0;
 5         }
 6         .parent {
 7             display: flex;
 8             height: 300px; /* Or whatever */
 9             background-color: black;
10         }
11         .child {
12             width: 100px;  /* Or whatever */
13             height: 100px; /* Or whatever */
14             margin: auto;  /* Magic! */
15             background-color: white;
16         }
17 </style>

垂直居中(父元素为块级元素,高度一定)

1、子元素是行内元素

 1 <div class="parent">
 2     <span>child</span>
 3 </div>
 4
 5 <style type="text/css">
 6         body{
 7             margin: 0;
 8             padding: 0;
 9         }
10         .parent{height: 40px;background-color: #0bb59b;}
11         span{height: 40px;line-height: 40px;}
12 </style>

2、子元素是块级元素,使用绝对定位

1 <div class="parent">
2     <div class="child">child</div>
3 </div>

CSS部分

 1 <style type="text/css">
 2         body{
 3             margin: 0;
 4             padding: 0;
 5         }
 6         .parent{
 7             height: 400px;
 8             background-color: #0bb59b;
 9             position: relative;}
10         .child{
11             background-color: #0b6fa2;
12             position: absolute;
13             height: 200px;
14             top: 0;right: 0; bottom: 0;left: 0;
15             margin: auto;
16         }
17 </style>

3、子元素是块级元素,使用table表现形式

1 <div class="parent table-cell">
2     <div class="child">child</div>
3 </div>

css部分

 1         body{
 2             margin: 0;
 3             padding: 0;
 4         }
 5         .parent{
 6             height: 400px;
 7             background-color: #0bb59b;
 8             display: table;}
 9         .table-cell{
10             display: table-cell;
11             vertical-align: middle;
12         }
13         .child{
14             background-color: #0b6fa2;
15         }
时间: 2024-10-16 08:08:47

CSS水平垂直居中的相关文章

常见的几种 CSS 水平垂直居中解决办法

用CSS实现元素的水平居中,比较简单,可以设置text-align center,或者设置 margin-left:auto; margin-right:auto 之类的即可. 主要麻烦的地方还是在垂直居中的处理上,所以接下来主要考虑垂直方向上的居中实现. 水平垂直居中主要包括三类:基本文本类,图像类,其他元素类 但,也是由一些方法可以实现的,下面就来谈谈了解到的10中方法. 方法一.使用 line-height 这种方式更多地用在 单行文字的情况,其中使用overflow:hidden的设置是

CSS水平垂直居中的几种方法

直接进入主题! 一.脱离文档流元素的居中 方法一:margin:auto法 CSS代码: div{ width: 400px; height: 400px; position: relative; border: 1px solid #465468; } img{ position: absolute; margin: auto; top: 0; left: 0; right: 0; bottom: 0; } HTML代码: <div> <img src="mm.jpg&quo

CSS水平垂直居中的几种方法2

直接进入主题! 一.脱离文档流元素的居中 方法一:margin:auto法 CSS代码: div{ width: 400px; height: 400px; position: relative; border: 1px solid #465468; } img{ position: absolute; margin: auto; top: 0; left: 0; right: 0; bottom: 0; } HTML代码: <div> <img src="mm.jpg&quo

css 水平垂直居中那些事

本文是在参考众大神文章基础上,整理的几个常用方案,另外也掺杂个人的一些猜想,如有不妥,请不吝指出下面开始正题,为了方便验证+展示,下面的案例我会直接附上个人验证的源码+截图 1. <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="t

介绍一种css水平垂直居中的方法(非常好用!)

这次介绍一下一个水平垂直居中的css方法,这个方法可以说是百试百灵,废话不多说,直接附上代码: html,body{ width:100%; height:100%; } 你需要居中的元素{ position: fixed;(absolute)      left:50%;      top:50%;      -webkit-transform: translate(-50%,-50%); } 他的父元素{ position: relative; width:100%; height:100%

CSS水平垂直居中方法总结

部分HTML代码如下: <div class="wrap block"> <div class="block-center">块儿居中</div> </div> <div class="wrap inline"> <span class="inline-center">内联居中</span> </div> 一.absolute 拔河

CSS水平垂直居中常见方法总结(转)

行内元素: 父级元素是块级元素:父元素设置text-align:center 1.元素水平居中 margin: 0 auto;谁居中,谁设置 居中不好使的原因: 1.元素没有设置宽度,没有宽度怎么居中嘛! 2.设置了宽度依然不好使,你设置的是行内元素吧 实例1: <div class="box"> <div class="content"> 哇!居中了 </div> </div> <style type=&quo

聊聊css水平垂直居中那些事

1.水平居中实现方法 <div class="demo">     我是一个水平居中的div </div> /*方法1*/ .demo{width: 960px;margin: 0 auto;} /*方法2*/ .demo{width: 960px;height: 400px;background: #f00;position: relative;left: 50%;margin-left: -480px;} 2.水平垂直居中实现方法 <div class

css - 水平垂直居中几种方式

水平垂直居中 水平居中 定宽: margin: 0 auto; 不定宽: 参考例子中不定宽高例子. 垂直居中 position: absolute设置left.top.margin-left.margin-to(定高): position: fixed设置margin: auto(定高): display: table-cell: transform: translate(x, y): flex(不定高,不定宽): grid(不定高,不定宽),兼容性相对比较差: 例子 右键f12 覆盖html后

css水平垂直居中总结

在网页布局中,垂直居中对齐总是一个绕不过的话题,而且这两种对齐方式由于浏览器渲染方式的不同,也存在很多不同的场景,本文试图将这些场景一一列举并给出解决方案,也是对这个知识点的一点回顾和总结. 1.水平居中 水平居中这个问题首先要搞清楚存在两个条件才能够称之为水平居中,即父元素必须是块级盒子容器,父元素宽度必须已经被设定好,在这两个前提下我们来看水平居中问题. 场景1:子元素是块级元素且宽度没有设定 在这种情况下,实际上也不存在水平居中一说,因为子元素是块级元素没有设定宽度,那么它会充满整个父级元