CSS自適應佈局實現子元素專案整體居中/內部專案左對齊示例程式碼

佚名發表於2019-10-16

文章主要介紹了CSS自適應佈局實現子元素專案整體居中,內部專案左對齊,文中透過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,

日常工作時,我們可能遇到這樣一個佈局:一個父元素框框(隨著瀏覽器大小自適應寬度)裡面有許多按鈕,然後這些按鈕(寬度固定)的整體需要在父元素內居中對齊,而按鈕整體的內容又是從左往右排列。這裡提供一個解決方法,示例如下:

有如下程式碼:

<div class="wrap">
    <button class="btn">1</button>
    <button class="btn">2</button>
    <button class="btn">3</button>
    <button class="btn">4</button>
    <button class="btn">5</button>
    <button class="btn">6</button>
    <button class="btn">7</button>
</div>

對應的CSS為:

.wrap {
    border: 2px solid black;
    margin: 0 auto;
    padding: 10px;
    width: 40%;
}
.btn {
    outline: none;
    border: none;
    width: 180px;
    height: 30px;
    background-color: cornflowerblue;
    margin: 5px;
}

顯示的效果:

動態變化寬度的情況:

可以看到,當我們縮小瀏覽器視窗大小時,父元素(黑框)的寬度會動態調整,其子元素也會根據父元素的寬度動態排列,但是按鈕組在父容器中是左對齊的,我們想要讓這個整體保持居中,可以透過如下方式實現:

CSS程式碼:

.wrap {
    border: 2px solid black;
    margin: 0 auto;
    padding: 10px;
    width: 40%;
    display: grid;
    grid-template-columns: repeat(auto-fill, 200px);
    justify-content: center;
}
.btn {
    outline: none;
    border: none;
    width: 180px;
    height: 30px;
    background-color: cornflowerblue;
    margin: 5px;
}

將父元素display屬性設定為grid,然後grid列模板為自動填充,寬度為200px(這裡寬度比單個按鈕元素稍大一點即可),然後設定justify-content屬性值為center使內容水平居中。效果如下:

動態變化的效果:

可以看到,在寬度變化的過程中,子元素整體一直是保持居中的。

單純用CSS實現這樣的效果,我只想到用grid來實現了,若你有其他方法,歡迎留言,一同學習~

提示:grid目前的相容性不是很好,如果需要支援較老的瀏覽器版本,慎用哦!

以上就是本文的全部內容,希望對大家的學習有所幫助,

相關文章