将一个块级元素水平和垂直居中的方法

1.水平居中

  方法一:(分宽高定不定两种情况)

定宽高:需要谁居中,就给谁设margin:auto;使盒子(元素)自己居中

 1 <style>
 2     .father {
 3         width: 500px;
 4         height: 500px;
 5         background-color: yellow;
 6     }
 8     .son {
 9         width: 100px;
10         height: 100px;
11         background-color: pink;
12         margin:auto;
13     }
14 </style>
15
16 <div class="father">
17     <div class="son">我是块级元素</div>
18 </div>

  

  不定宽高:默认子元素宽高和父元素一样,这时需要设置子元素display:inline-block;或display:inline;(即将其转化为行内块或行内元素,内容的高度会撑起子元素的高度),然后给父元素设置text-align:center;

 1 <style>
 2     .father {
 3         width: 500px;
 4         height: 500px;
 5         background-color: yellow;
 6         text-align: center;
 7     }
 8     .son {
 9         background-color: pink;
10         display: inline;
11     }
12 </style>
13
14 <div class="father">
15     <div class="son">我是块级元素</div>
16 </div>

  

  方法二:使用flex布局,在父元素上设置justify-content

 1 <head>
 2     <style>
 3     .father{
 4         width: 500px;
 5         height: 500px;
 6         background-color: red;
 7         display: flex;
 8         justify-content: center;
 9     }
10     .son{
11         height: 100px;
12         width: 100px;
13         background-color: yellow;
14     }
15     </style>
16 </head>
17 <body>
18     <div class="father">
19         <div class="son">我是块级元素</div>
20     </div>
21 </body>

2.垂直居中

  方法一:使用flex布局,在父元素上设置align-items

      该属性定义flex子项在flex容器的当前行的纵轴方向上的对齐方式。

 1     <style>
 2     .father{
 3         width: 500px;
 4         height: 500px;
 5         background-color: red;
 6         display: flex;
 7         align-items: center;
 8
 9     }
10     .son{
11         height: 100px;
12         width: 100px;
13         background-color: yellow;
14     }
15     </style>
16 </head>
17 <body>
18     <div class="father">
19         <div class="son">我是块级元素</div>
20     </div>
21 </body>

  方法二:使用position定位布局

  宽高已知的情况下,给父元素设置相对定位,子元素设置绝对定位;margin-top为子元素高度一半的取负

 1     <style>
 2     .father{
 3         width: 500px;
 4         height: 500px;
 5         background-color: red;
 6         position: relative;
 7     }
 8     .son{
 9         height: 100px;
10         width: 100px;
11         background-color: yellow;
12         position: absolute;
13         left: 0;
14         bottom: 0;
15         right: 0;
16         top: 50%;
17         margin-top: -50px;
18     }
19     </style>
20 </head>
21 <body>
22     <div class="father">
23         <div class="son">我是块级元素</div>
24     </div>
25 </body>

  

  方法三:使用table-cell布局,设置在父元素上,高度定不定都OK

 1     <style>
 2     .father{
 3         width: 500px;
 4         height: 500px;
 5         background-color: red;
 6         display: table-cell;
 7         vertical-align: middle;
 8     }
 9     .son{
10         height: 100px;
11         width: 100px;
12         background-color: yellow;
13     }
14     </style>
15 </head>
16 <body>
17     <div class="father">
18         <div class="son">我是块级元素</div>
19     </div>
20 </body>

3.水平和垂直居中

  方法一:使用position+margin

 1     <style>
 2     .father{
 3         width: 500px;
 4         height: 500px;
 5         background-color: red;
 6         position: relative;
 7     }
 8     .son{
 9         height: 100px;
10         width: 100px;
11         background-color: yellow;
12         position: absolute;
13         top: 0;
14         right: 0;
15         bottom: 0;
16         left: 0;
17         margin: auto;
18     }
19     </style>
20 </head>
21 <body>
22     <div class="father">
23         <div class="son">我是块级元素</div>
24     </div>
25 </body>

  方法二:使用position+transform,transform设置在子元素上

 1     <style>
 2     .father{
 3         width: 500px;
 4         height: 500px;
 5         background-color: red;
 6         position: relative;
 7     }
 8     .son{
 9         height: 100px;
10         width: 100px;
11         background-color: yellow;
12         position: absolute;
13         top:50%;
14         left: 50%;
15         transform: translate(-50%,-50%);
16     }
17     </style>
18 </head>
19 <body>
20     <div class="father">
21         <div class="son">我是块级元素</div>
22     </div>
23 </body>

原文地址:https://www.cnblogs.com/Lotus3904/p/12081446.html

时间: 2024-10-06 14:39:34

将一个块级元素水平和垂直居中的方法的相关文章

让div等块级元素水平以及垂直居中的解决办法

一.背景 我们在设计页面的时候,经常要把div等块级元素居中显示,而且是相对页面窗口水平和垂直方向居中显示,如让登录窗口居中显示.我们传统解决的办法是用纯CSS来让div等块级元素居中.在本文中,我将给大家讲述如何用CSS和jQuery两种方法让div等块级元素水平和垂直居中. 二.解决办法 1.CSS让div等块级元素水平居中 原理:让一个div等块级元素水平居中,直接用CSS就可以做到.只要设置了div等块级元素的宽度,然后使用margin设置边距0 auto,CSS自动算出左右边距,使得d

行内元素和块级元素水平及垂直居中

首先,介绍一下行内元素和块级元素,这个很重要,因为有的属性只能用于块元素,而有的正好相反,在一定的情况下,它们也可以相互转换,比如用display来进行设置. 行内元素: ①不占据一整行,随内容而定,有以下特点: ②不可以设置宽高,也不可以设置行高,其宽度随着内容增加,高度随字体大小而改变. ③内联元素可以设置外边界,但是外边界不对上下起作用,只能对左右起作用. ④也可以设置内边界,但是内边界在ie6中不对上下起作用,只能对左右起作用. 常用的内联元素有: a - 锚点,b - 粗体(不推荐),

块级元素水平和垂直方向居中的方式

块级元素水平和垂直方向居中的方法一共三种 1.先设置块级元素的宽高,然后利用定位和外边距将元素在水平和垂直方向上居中 示例: <style> .father{ width: 100%; height: 500px; position: relative; } .son{ width: 100px; height: 100px; position: absolute; top: 50%; left: 50%; margin-left: -50px; margin-top: -50px; back

块级元素水平居中的两个方法

块级元素水平居中的两个方法: 1.text-align:center; 注意:text-align是仅用于块级元素,且作用于本身,而非其内部元素. 2.margin:0px auto; 注意:块级元素水平居中布局需要两个条件1)首先要是块级元素 2)其次要设置宽度 才能用margin:0px auto;来实现水平居中.

CSS中块级元素水平格式化

CSS中块级元素的(width+padding+marninig+border)因该等于其包含块的width.其中margin可能为负值,其他均为正值. 如果width和margin-left和margin-right都设置为auto的话,浏览器代理会默认将margin-left和margin-right设为0,将width设为包含块的width. 如果width与margin-left.margin-right其中一个为auto,而另一个margin设为固定值的话,浏览器代理会把为auto的那

div等块级元素居中的两种方法

以下两种方法是针对宽度确定的块级元素而言的 1.设置块级元素CSS属性为: margin: 0 auto: 即左右margin设置为auto. 2.设置块级元素的display为inline(此时要求块级元素包含内容,否则由于内联元素的高度设置不起作用,相当于高度为零,块级元素就无法被看到)或者inline-block. 该块状元素的父级元素CSS设置: text-align:center; 此时会将该块状元素看作text进行居中处理.

css实现块级元素水平垂直居中的方法?

父级给相对定位,子级给绝对定位,margin设置为auto,上下左右值设为0. 父级给相对定位,子级给绝对定位,设置left和top为50%,再向左和向上移动负的子级一半. 父级设置display:flex;justify-content: cneter;align-items: center; 父级设置display: table-cell;vertical-align: middle;text-align: center;子级设置display: inline-block; 原文地址:htt

让块级元素水平垂直居中

function fun(){ var wWidth = null, wHeight = null; if(window.innerHeight && window.innerWidth){ wHeight = window.innerHeight; wWidth = window.innerWidth; }else if((document.body) && (document.body.clientHeight) && (document.body.cl

块级元素居中的几个方法

div{ width: 100px; height: 100px; background: green; position: absolute; top: 50%; left: 50%; margin-left: -50px; margin-top: -50px;} 注释:DIV绝对定位,距顶和距左设置为父元素的50%,再把自身宽高的一半加margin负值; 原文地址:https://www.cnblogs.com/xiadengqi/p/9753012.html