首頁  >  文章  >  web前端  >  關於CSS佈局技巧的總結分享

關於CSS佈局技巧的總結分享

一个新手
一个新手原創
2017-09-06 09:36:171235瀏覽

單列佈局

水平居中

  1. 父元素text-align:center;子元素:inline-block;

  • 優點:相容性好;

  • 不足:需要同時設定子元素和父元素

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>水平居中1</title>
    <style>
        .parent {
            width: 500px;
            height: 400px;
            background: red;
            text-align: center;
        }
        .child {
            display: inline-block;
            width: 300px;
            height: 100px;
            background: blue;
        }
    </style>
    </head>
    <body>
    <p class="parent">
        <p class="child"></p>
    </p>
    </body>
    </html>
  1. #子元素margin:0 auto;

  • #優點:相容性好

  • 缺點:需要指定寬度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>水平居中1</title>
    <style>
        .parent {
            width: 500px;
            height: 400px;
            background: red;
        }
        .child {
            width: 300px;
            height: 100px;
            background: blue;
            margin:0 auto;
        }
    </style>
</head>
<body>
    <p class="parent">
        <p class="child"></p>
    </p>
</body>
</html>
  1. 子元素{display:table;margin:0 auto;}

  • 優點:只需要對自己進行設定

  • 不足:IE6,7需要調整結構

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>水平居中1</title>
    <style>
        .parent {
            width: 500px;
            height: 400px;
            background: red;
        }
        .child {
            width: 300px;
            height: 100px;
            background: blue;
            margin:0 auto;
            display:table;margin:0 auto;s
        }
    </style>
</head>
<body>
    <p class="parent">
        <p class="child"></p>
    </p>
</body>
</html>
  1. 父元素:relative;子元素:absolute;left:50%;margin-left:-寬度的一半

  • ## 優點:相容性好

  • ##缺點:需要知道子元素的寬度

  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>水平居中1</title>
        <style>
            .parent {
                width: 500px;
                height: 400px;
                background: red;
                position: relative;
                top: 0;
                left: 0;
            }
            .child {
                width: 300px;
                height: 100px;
                background: blue;
                position: absolute;
                top: 0;
                left: 50%;
                margin-left: -150px;
            }
        </style>
    </head>
    <body>
        <p class="parent">
            <p class="child"></p>
        </p>
    </body>
    </html>

  • #父元素:relative;子元素:absolute;left:50%;transform :translate(-50%,0);
  1. #優點:相容性差
  • 缺點:不需要知道子元素的寬度

  • <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>水平居中1</title>
        <style>
            .parent {
                width: 500px;
                height: 400px;
                background: red;
                position: relative;
                top: 0;
                left: 0;
            }
            .child {
                width: 300px;
                height: 100px;
                background: blue;
                position: absolute;
                top: 0;
                left: 50%;
                transform: translate(-50%,0);
            }
        </style>
    </head>
    <body>
        <p class="parent">
            <p class="child"></p>
        </p>
    </body>
    </html>

  • 彈性盒子:父元素:display:flex;justify-content:center;

    優點:簡單

  1. 缺點:相容性差
  2. <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>水平居中1</title>
    <style>
        .parent {
            width: 500px;
            height: 400px;
            background: red;
            display: flex;
            justify-content: center;
        }
        .child {
            width: 300px;
            height: 100px;
            background: blue;
        }
    </style>
    </head>
    <body>
    <p class="parent">
        <p class="child"></p>
    </p>
    </body>
    </html>
  1. 垂直居中


    #### ##vertical-align:center;#########

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>水平居中1</title>
        <style>
            .parent {
                width: 500px;
                height: 400px;
                background: red;
                display:table-cell;
                vertical-align:middle;
            }
            .child {
                width: 300px;
                height: 100px;
                background: blue;
            }
        </style>
    </head>
    <body>
        <p class="parent">
            <p class="child"></p>
        </p>
    </body>
    </html>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>垂直居中1</title>
        <style>
            .parent {
                width: 500px;
                height: 400px;
                background: red;
                vertical-align:middle;
                line-height:450px;            
            }
            .child {
                width: 300px;
                height: 100px;
                background: blue;
                display:inline-block;
            }
        </style>
    </head>
    <body>
        <p class="parent">
            <p class="child"></p>
        </p>
    </body>
    </html>
    <!-- 这种方法需要知道父元素和子元素的高度,父元素的line-height的值为父元素高度减去子元素高度的一半。-->
    #########父元素:position:relative;子元素:positon:absolute;top:50%;transform:translate( 0,-50%);#########
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>垂直居中1</title>
        <style>
            .parent {
                width: 500px;
                height: 400px;
                background: red;
                position: relative;
                top: 0;
                left: 0;          
            }
            .child {
                width: 300px;
                height: 100px;
                background: blue;
                position: absolute;
                top: 50%;
                left:0;
                transform: translate(0,-50%);
            }
        </style>
    </head>
    <body>
        <p class="parent">
            <p class="child"></p>
        </p>
    </body>
    </html>
    #########父元素:position:relative;子元素:positon:absolute;top:50%;margin-top:-子元素高度的一半;############父元素:display:flex;align-items:center;#########
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>垂直居中1</title>
        <style>
            .parent {
                width: 500px;
                height: 400px;
                background: red;
                display: flex;
                align-items: center;        
            }
            .child {
                width: 300px;
                height: 100px;
                background: blue;
            }
        </style>
    </head>
    <body>
        <p class="parent">
            <p class="child"></p>
        </p>
    </body>
    </html>
    ###水平垂直居中### #########父元素:display:table-cell;vertical-align:middle;text-align:center;###子元素;display:inline-block;######### #
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>垂直居中1</title>
        <style>
            .parent {
                width: 500px;
                height: 400px;
                background: red;
                display:table-cell;
                vertical-align:middle;
                text-align:center; 
            }
            .child {
                width: 300px;
                height: 100px;
                background: blue;
                display: inline-block;
            }
        </style>
    </head>
    <body>
        <p class="parent">
            <p class="child"></p>
        </p>
    </body>
    </html>
    #########父元素:position:relative;###子元素:position:absolute

以上是關於CSS佈局技巧的總結分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn