ホームページ >ウェブフロントエンド >CSSチュートリアル >CSS の垂直方向の中央揃えの概要

CSS の垂直方向の中央揃えの概要

高洛峰
高洛峰オリジナル
2017-02-27 15:15:221231ブラウズ

まえがき:これは著者自身が勉強した上での理解と整理です。間違いや質問がある場合は、修正してください。更新を続けます。

垂直方向のセンタリングは多くの場所で使用されており、多くの解決策があります。

既知の要素幅 位置配置 + 負のマージン方法を使用できます

絶対位置 + 4 方向すべてに 0px + マージン: 垂直方向のセンタリングのみが必要な場合は、親コンテナに基づいて水平方向に自動でセンタリングできます。左右を削除でき、水平方向の中央揃えには多くの方法があります
絶対位置 + 左 50% + 左マージン: 幅の半分の負の値で水平方向の中央揃えが可能、右も可能です
絶対位置 + 上 50% + margin top : 高さの半分の負の値を垂直方向の中央に配置することもできます

CSS の垂直方向の中央揃えの概要


<!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>
        <p class="wrapper">
            <span class="content"></span>
        </p>
    </body></html>


View Code

不明な要素幅も可能です。位置 + 変換:translate( x, y) 移動
絶対位置 + 上位 50% + 下位 50% + 変換:translate (-50%, -50%) で垂直方向の中央に配置できます


<!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>
        <p class="wrapper">
            <span class="content"></span>
        </p>
    </body></html>



p in 画像画像は垂直方向に中央に配置されます:

vertical-align:middle を使用できますが、この属性は inline-block タイプの要素でのみ機能します (inline にも効果があります)。引き続き、vertical-align の理解を学び続けてください。大歓迎です。修正してください

CSS の垂直方向の中央揃えの概要
方法 1: 画像vertical-align:middle + 親要素の高さは、line-height と一致します


<!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>
        <p class="wrapper">
            <img src="images/1.jpg" alt="美女" title="美女"/>
        </p>
    </body></html>


コードを表示

方法 2: 親要素の表示を設定します: table-cell とvertical-align


<!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>
        <p class="wrapper">
            <img src="images/1.jpg" alt="美女" title="美女"/>
        </p>
    </body></html>

CSS の垂直方向の中央揃えの構成と概要に関連するその他の記事については、 PHPの中国語サイトです!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。