www.2527.com_澳门新葡8455手机版_新京葡娱乐场网址_
做最好的网站

css水平垂直居中的方法与Web前端,css垂直居中的

2019-08-23 03:14 来源:未知

css垂直居中的整理,css垂直居中整理

前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!

前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!

前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!

垂直居中用到的地方有很多,解决的方法也有很多。

已知元素宽度 可以用position定位 margin负值的方法

绝对定位 4个方向全部0px margin:auto 可以做到基于父容器水平垂居中;如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多
绝对定位 左50% margin左:宽度一半的负值 可以做到水平居中 右也可以
绝对定位 上50% margin上:高度一半的负值 可以做到垂直居中 底部也可以

Web前端 1

Web前端 2

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            .wrapper{
                width: 500px;
                height: 500px;
                background: #f90;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                position: absolute;
                margin: auto;
                /*绝对定位   4个方向全部0px   margin:auto 可以做到基于父容器水平垂居中*/
                /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
            }
            .content{
                width: 100px;
                height: 200px;
                background: #0f8;
                position: absolute;
                /*position: absolute基于第一个不是position:static的父级元素定位*/
                left: 50%;
                top: 50%;
                margin-left: -50px;
                margin-top: -100px;
                /*绝对定位   左50%   margin左:宽度一半的负值 可以做到水平居中  右也可以*/
                /*绝对定位   上50%   margin上:高度一半的负值 可以做到垂直居中  底部也可以*/
            }
        </style>
    </head>
    <body>
        <div class="wrapper">

        </div>
    </body>
</html>

View Code

 

未知元素宽度 可以用position定位 transform:translate(x,y)移动
绝对定位 上50% 下50% transform:translate(-50%,-50%) 可以做到垂直居中

Web前端 3

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            .wrapper{
                width: 500px;
                height: 500px;
                background: #f90;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                position: absolute;
                margin: auto;
                /*绝对定位   4个方向全部0px   margin:auto 可以做到基于父容器水平垂居中*/
                /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
            }
            .content{
                width: 100px;
                height: 200px;
                background: #0f8;
                position: absolute;
                /*position: absolute基于第一个不是position:static的父级元素定位*/
                left: 50%;
                top: 50%;
                transform: translate(-50%,-50%);
                /*transform变化、使...变形、转换;transform属性应用于元素的2D或3D转换。这个属性允许你将元素移动,旋转,缩放,倾斜*/
                /*translate平移,是transform的属性值的一部分*/
                /*transition过渡、转变;可多个样式的变换效果*/
            }
        </style>
    </head>
    <body>
        <div class="wrapper">

        </div>
    </body>
</html>

View Code

 

div中img图片垂直居中

可以用vertical-align:middle,但是这个属性只有在inline-block类型(inline也有影响)的元素身上起作用,vertical-align的理解我得继续学习下,也欢迎大家指正

Web前端 4
方法一:图片vertical-align:middle 父元素的height与line-height一致

Web前端 5

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;margin: 0;
            }
            .wrapper{
                height: 300px;
                line-height: 300px;
                width: 300px;
                margin:100px auto;
                background: #f90;
                text-align: center;
            }
            .wrapper img{
                width: 150px;
                vertical-align: middle;
            }
        </style>
    </head>
    <body>
        <div class="wrapper">
            <img src="images/1.jpg" alt="美女" title="美女"/>
        </div>
    </body>
</html>

View Code

方法二:父元素设置display:table-cell和vertical-align

Web前端 6

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;margin: 0;
            }
            .wrapper{
                width: 300px;
                height: 300px;
                background: #f90;
                text-align: center;
                vertical-align: middle;
                display: table-cell;
            }
            .wrapper img{
                width: 150px;
            }
        </style>
    </head>
    <body>
        <div class="wrapper">
            <img src="images/1.jpg" alt="美女" title="美女"/>
        </div>
    </body>
</html>

View Code

 

前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新...

1. 已知元素宽度

  Web前端 7

1. 已知元素宽度

  Web前端 8

  方法一:已知宽高,可以用position定位 margin负值的方法 ;

  绝对定位 4个方向全部0px margin:auto 可以做到基于父容器水平垂居中;如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多;
  绝对定位 左50% margin左:宽度一半的负值,可以做到水平居中,右也可以;
  绝对定位 上50% margin上:高度一半的负值,可以做到垂直居中,底部也可以;

  代码如下:

Web前端 9Web前端 10

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            .wrapper{
                width: 500px;
                height: 500px;
                background: #f90;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                position: absolute;
                margin: auto;
                /*绝对定位   4个方向全部0px   margin:auto 可以做到基于父容器水平垂居中*/
                /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
            }
            .content{
                width: 100px;
                height: 200px;
                background: #0f8;
                position: absolute;
                /*position: absolute基于第一个不是position:static的父级元素定位*/
                left: 50%;
                top: 50%;
                margin-left: -50px;
                margin-top: -100px;
                /*绝对定位   左50%   margin左:宽度一半的负值 可以做到水平居中  右也可以*/
                /*绝对定位   上50%   margin上:高度一半的负值 可以做到垂直居中  底部也可以*/
            }
        </style>
    </head>
    <body>
        <div class="wrapper">

        </div>
    </body>
</html>

View Code

  方法一:已知宽高,可以用position定位 margin负值的方法 ;

  绝对定位 4个方向全部0px margin:auto 可以做到基于父容器水平垂居中;如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多;
  绝对定位 左50% margin左:宽度一半的负值,可以做到水平居中,右也可以;
  绝对定位 上50% margin上:高度一半的负值,可以做到垂直居中,底部也可以;

  代码如下:

Web前端 11Web前端 12

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            .wrapper{
                width: 500px;
                height: 500px;
                background: #f90;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                position: absolute;
                margin: auto;
                /*绝对定位   4个方向全部0px   margin:auto 可以做到基于父容器水平垂居中*/
                /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
            }
            .content{
                width: 100px;
                height: 200px;
                background: #0f8;
                position: absolute;
                /*position: absolute基于第一个不是position:static的父级元素定位*/
                left: 50%;
                top: 50%;
                margin-left: -50px;
                margin-top: -100px;
                /*绝对定位   左50%   margin左:宽度一半的负值 可以做到水平居中  右也可以*/
                /*绝对定位   上50%   margin上:高度一半的负值 可以做到垂直居中  底部也可以*/
            }
        </style>
    </head>
    <body>
        <div class="wrapper">

        </div>
    </body>
</html>

View Code

   方法二:已知宽高,并且必须是 block 或 inline-block 元素,可以用margin负值 transform:translate(-50%,-50%) ;

  代码如下:

Web前端 13Web前端 14

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            .wrapper{
                width: 500px;
                height: 500px;
                background: #f90;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                position: absolute;
                margin: auto;
                /*绝对定位   4个方向全部0px   margin:auto 可以做到基于父容器水平垂居中*/
                /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
            }
            .content{
                width: 100px;
                height: 200px;
                background: #0f8;
                display: inline-block;
                /*还有种不用定位也可以水平垂直据中的方法,元素必须是inline-block或者block元素,并且已知宽高,设置margin-left:50%; margin-top:50%; transform:translate(-50%,-50%)*/
                margin-left: 50%;
                margin-top: 50%;
                transform: translate(-50%,-50%);
                /*transform变化、使...变形、转换;transform属性应用于元素的2D或3D转换。这个属性允许你将元素移动,旋转,缩放,倾斜*/
                /*translate平移,是transform的属性值的一部分*/
                /*transition过渡、转变;可多个样式的变换效果*/
            }
        </style>
    </head>
    <body>
        <div class="wrapper">

        </div>
    </body>
</html>

View Code

 

   方法二:已知宽高,并且必须是 block 或 inline-block 元素,可以用margin负值 transform:translate(-50%,-50%) ;

  代码如下:

Web前端 15Web前端 16

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            .wrapper{
                width: 500px;
                height: 500px;
                background: #f90;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                position: absolute;
                margin: auto;
                /*绝对定位   4个方向全部0px   margin:auto 可以做到基于父容器水平垂居中*/
                /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
            }
            .content{
                width: 100px;
                height: 200px;
                background: #0f8;
                display: inline-block;
                /*还有种不用定位也可以水平垂直据中的方法,元素必须是inline-block或者block元素,并且已知宽高,设置margin-left:50%; margin-top:50%; transform:translate(-50%,-50%)*/
                margin-left: 50%;
                margin-top: 50%;
                transform: translate(-50%,-50%);
                /*transform变化、使...变形、转换;transform属性应用于元素的2D或3D转换。这个属性允许你将元素移动,旋转,缩放,倾斜*/
                /*translate平移,是transform的属性值的一部分*/
                /*transition过渡、转变;可多个样式的变换效果*/
            }
        </style>
    </head>
    <body>
        <div class="wrapper">

        </div>
    </body>
</html>

View Code

 

2. 未知元素宽度

  未知宽高,可以用:position绝对定位 top上50% bottom下50% transform:translate(-50%,-50%) 可以做到垂直居中

  代码如下:

Web前端 17Web前端 18

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            .wrapper{
                width: 500px;
                height: 500px;
                background: #f90;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                position: absolute;
                margin: auto;
                /*绝对定位   4个方向全部0px   margin:auto 可以做到基于父容器水平垂居中*/
                /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
            }
            .content{
                width: 100px;
                height: 200px;
                background: #0f8;
                position: absolute;
                /*position: absolute基于第一个不是position:static的父级元素定位*/
                left: 50%;
                top: 50%;
                transform: translate(-50%,-50%);
                /*transform变化、使...变形、转换;transform属性应用于元素的2D或3D转换。这个属性允许你将元素移动,旋转,缩放,倾斜*/
                /*translate平移,是transform的属性值的一部分*/
                /*transition过渡、转变;可多个样式的变换效果*/
            }
        </style>
    </head>
    <body>
        <div class="wrapper">

        </div>
    </body>
</html>

View Code

 

3. div中img图片垂直居中

  可以用vertical-align:middle,但是这个属性只有在inline-block类型(inline也有影响)的元素身上起作用,vertical-align的理解我得继续学习下,也欢迎大家指正

  Web前端 19
  方法一:图片vertical-align:middle 父元素的height与line-height一致

  代码如下:

Web前端 20Web前端 21

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;margin: 0;
            }
            .wrapper{
                height: 300px;
                line-height: 300px;
                width: 300px;
                margin:100px auto;
                background: #f90;
                text-align: center;
            }
            .wrapper img{
                width: 150px;
                vertical-align: middle;
            }
        </style>
    </head>
    <body>
        <div class="wrapper">
            <img src="images/1.jpg" alt="美女" title="美女"/>
        </div>
    </body>
</html>

View Code

  方法二:父元素设置display:table-cell和vertical-align

  代码如下:

Web前端 22Web前端 23

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;margin: 0;
            }
            .wrapper{
                width: 300px;
                height: 300px;
                background: #f90;
                text-align: center;
                vertical-align: middle;
                display: table-cell;
            }
            .wrapper img{
                width: 150px;
            }
        </style>
    </head>
    <body>
        <div class="wrapper">
            <img src="images/1.jpg" alt="美女" title="美女"/>
        </div>
    </body>
</html>

View Code

 

2. 未知元素宽度

  未知宽高,可以用:position绝对定位 top上50% bottom下50% transform:translate(-50%,-50%) 可以做到垂直居中

  代码如下:

Web前端 24Web前端 25

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            .wrapper{
                width: 500px;
                height: 500px;
                background: #f90;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                position: absolute;
                margin: auto;
                /*绝对定位   4个方向全部0px   margin:auto 可以做到基于父容器水平垂居中*/
                /*如果只需要垂直居中,那可以把left和right删掉,并且水平居中的方法也很多*/
            }
            .content{
                width: 100px;
                height: 200px;
                background: #0f8;
                position: absolute;
                /*position: absolute基于第一个不是position:static的父级元素定位*/
                left: 50%;
                top: 50%;
                transform: translate(-50%,-50%);
                /*transform变化、使...变形、转换;transform属性应用于元素的2D或3D转换。这个属性允许你将元素移动,旋转,缩放,倾斜*/
                /*translate平移,是transform的属性值的一部分*/
                /*transition过渡、转变;可多个样式的变换效果*/
            }
        </style>
    </head>
    <body>
        <div class="wrapper">

        </div>
    </body>
</html>

View Code

 

3. div中img图片垂直居中

  可以用vertical-align:middle,但是这个属性只有在inline-block类型(inline也有影响)的元素身上起作用,vertical-align的理解我得继续学习下,也欢迎大家指正

  Web前端 26
  方法一:图片vertical-align:middle 父元素的height与line-height一致

  代码如下:

Web前端 27Web前端 28

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;margin: 0;
            }
            .wrapper{
                height: 300px;
                line-height: 300px;
                width: 300px;
                margin:100px auto;
                background: #f90;
                text-align: center;
            }
            .wrapper img{
                width: 150px;
                vertical-align: middle;
            }
        </style>
    </head>
    <body>
        <div class="wrapper">
            <img src="images/1.jpg" alt="美女" title="美女"/>
        </div>
    </body>
</html>

View Code

  方法二:父元素设置display:table-cell和vertical-align

  代码如下:

Web前端 29Web前端 30

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;margin: 0;
            }
            .wrapper{
                width: 300px;
                height: 300px;
                background: #f90;
                text-align: center;
                vertical-align: middle;
                display: table-cell;
            }
            .wrapper img{
                width: 150px;
            }
        </style>
    </head>
    <body>
        <div class="wrapper">
            <img src="images/1.jpg" alt="美女" title="美女"/>
        </div>
    </body>
</html>

View Code

 

TAG标签:
版权声明:本文由澳门新葡8455手机版发布于Web前端,转载请注明出处:css水平垂直居中的方法与Web前端,css垂直居中的