文章主要介紹了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目前的相容性不是很好,如果需要支援較老的瀏覽器版本,慎用哦!
以上就是本文的全部內容,希望對大家的學習有所幫助,