有一個佈局需求:
類似表格佈局, 單元格固定大小, 在容器寬度發(fā)生變化時, 如果一行的寬度如果不夠, 多出的單元格自動換行, 但同時每一行的單元格都需要平均分配一行的寬度大小.
這個是用js寫的效果, 請問如何只使用css3來達到同樣的效果.
codepen鏈接(需要手動調(diào)整窗口大小來查看效果):
https://codepen.io/darcrand/f...
2018-08-12 補充:
非常感謝各位的回答, 可能是我的沒有把問題描述清楚, 下面我將代碼貼出:
dom部分
<div class="box">
<div class="cell">
<div class="content">A</div>
</div>
<div class="cell">
<div class="content">B</div>
</div>
<div class="cell">
<div class="content">C</div>
</div>
<div class="cell">
<div class="content">D</div>
</div>
<div class="cell">
<div class="content">E</div>
</div>
<div class="cell">
<div class="content">F</div>
</div>
<div class="cell">
<div class="content">G</div>
</div>
<div class="cell">
<div class="content">H</div>
</div>
<div class="cell">
<div class="content">I</div>
</div>
<div class="cell">
<div class="content">J</div>
</div>
<div class="cell">
<div class="content">K</div>
</div>
<div class="cell">
<div class="content">L</div>
</div>
</div>
css部分
.box {
display: flex;
flex-wrap: wrap;
border: 1px solid #000;
box-sizing: border-box;
}
.content {
display: flex;
align-items: center;
justify-content: center;
width: 200px;
height: 200px;
margin: 20px auto;
font-size: 32px;
font-weight: bold;
background-color: rgb(37, 180, 144);
}
js部分
const cells = document.querySelectorAll('.cell')
function getStyle(ele) {
return ele.currentStyle ? ele.currentStyle : window.getComputedStyle(ele, null)
}
function resize() {
const boxWidth = parseInt(getStyle(document.querySelector('.box')).width, 10)
const padding = 10
const cellMinWidth =
parseInt(getStyle(document.querySelector('.content')).width, 10) + 2 * padding
const eachLineCount = Math.floor(boxWidth / cellMinWidth)
const percent = Math.floor(100 / eachLineCount * 100) / 100
cells.forEach(ele => {
ele.style.width = `${percent}%`
})
}
resize()
window.addEventListener('resize', resize)
首先我已經(jīng)使用了flex佈局, 其次使用justify-content: center時, 會出現(xiàn)問題:
儅最後一行的單元格數(shù)量小於其他行的時候, 其中的單元格的位置佈局就會跟其他行的不一樣, 沒有左對齊.
這樣寫就可以了:
.box {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
演示代碼見如下:
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。