CSS居中

居中的分類

一,塊級元素內的內聯元素水平居中,text-align: center;

  • div.box里面有文字,讓文字在盒子內居中
<style type="text/css">
    .box {
        border: 1px solid red;
        text-align: center;
    }
</style>
<div class="box">
    hello deejay
</div>
  • 盒子內部是按鈕的情況
<style type="text/css">
    .box {
        border: 1px solid red;
        text-align: center;
    }
    
</style>
<div class="box">
    <a href="#">click me!</a>
    <a href="#">click me!</a>
</div>

二,固定寬度的塊級元素水平居中,margin:0 auto

<style type="text/css">
    .box {
        border: 1px solid red;
        text-align: center;   /*讓a鏈接也居中*/
    }
    .box2 {
        width: 500px;
        border: 1px solid green;
        margin: 0 auto;   /*固定寬度的塊級元素居中*/
    }
</style>
<div class="box">
    <div class="box2">
        <a href="#">Click me!</a>
    </div>
</div>

三,盒子內部的文字垂直居中

可以設置padding,使得上下padding相等,就做到了垂直居中

<style type="text/css">
    .box{
        border: 1px solid red;
        padding: 30px 0; /*不設置高度,box里面的內容不管有多少行都是垂直居中的,只要設置上下padding相等。*/
    }
</style>
<div class="box">
    <p>hello deejay ello deejay</p>
    <p>hello deejay ello deejay</p>
    <p>hello deejay ello deejay</p>
</div>
  • 針對單行文本的垂直居中
    可以通過設置height=line-height來實現單行文本的居中

四,絕對水平垂直居中

對于沒有固定的寬高的父元素要進行子元素的垂直水平居中,可以采用絕對定位,left: 50%,結合負的margin-left來進行定位。

<style type="text/css">
    *{
        margin: 0;          /*初始化樣式,不然body會有默認margin等*/
        padding: 0;
    }
    body,html{             /*box要寬高都設置100%全屏的話,要將其父元素都設置成寬高100%,本例中就是body和html*/
        width: 100%;
        height: 100%;
    }
    .box{
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.4);
        position: relative;
    }
    .box2{
        width: 500px;;
        height: 400px;
        background: green;
        position: absolute;
        left: 50%;
        margin-left: -250px;  /*自身width的一半*/
        top: 50%;
        margin-top: -200px;  /*同理,自身height的一半*/

    }
</style>
<div class="box">
    <div class="box2">
        <h1>hello,deejay</h1>
    </div>
</div>
  • 上述例子中,子元素的寬高并沒有固定的情況:

可以使用CSS3的屬性transform: translate(-50%,-50%);來進行居中

<style type="text/css">
    *{
        margin: 0;          /*初始化樣式,不然body會有默認margin等*/
        padding: 0;
    }
    body,html{             /*box要寬高都設置100%全屏的話,要將其父元素都設置成寬高100%,本例中就是body和html*/
        width: 100%;
        height: 100%;
    }
    .box{
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.4);
        position: relative;
    }
    .box2{
        /*width: 500px;*/
        /*height: 400px;*/
        background: green;
        position: absolute;
        transform: translate(-50%,-50%);
        left: 50%;
        /*margin-left: -250px;  !*自身width的一半*!*/
        top: 50%;
        /*margin-top: -200px;  !*同理,自身height的一半*!*/

    }
</style>
<div class="box">
    <div class="box2">
        <h1>hello,deejay</h1>
    </div>
</div>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,807評論 1 92
  • 水平居中設置-行內元素 我們在實際工作中常會遇到需要設置水平居中的場景,比如為了美觀,文章的標題一般都是水平居中顯...
    CAICL閱讀 474評論 0 3
  • 在學習前端的過程中,發現元素和文本的水平居中和垂直居中,是經常會出現的問題,在實際工作中也會經常碰到。居中的技巧有...
    文藝范的奔三運維青年閱讀 567評論 0 1
  • CSS完全可以居中任何你想居中的東西。 水平 內聯元素(inline-* elements or inline)...
    無法找到此用戶閱讀 237評論 0 0
  • 遠逝在河灘沉默的石頭,頭頂荒漠 梧桐樹下幼小的乳兒 哀傷乳兒 風中有你流淌著雪亮的眼珠 同樣是屋檐和土地,同樣是人...
    紅塵紅塵閱讀 645評論 2 5