總結了幾種常見的頁面架構佈局方案
1.居中佈局架構
a.水平居中 b.垂直居中 c.水平垂直
2.多列布局佈局
a.自適應佈局 b.等寬佈局 c.等高佈局
<!--水平居中佈局--> <div class="parent"> <div class="children">demo</div> </div>
1. inline-block + text-align flex
.parent{ text-align:center; } .children{ display:inline-block; }
2. table + margin spa
.children{ display: table; margin:0 auto; }
3. absolute + transform code
.parent{ position: relative; } .children{ position: absolute; left: 50%; transform: translateX(-50%); }
4. flex + justify-content/margin orm
/* 4.flex + justify-content */ .parent{ display: flex; justify-content: center; } /* 5.flex + margin */ .parent{ display: flex; } .children{ margin: 0 auto; }
1. table-cell + vertical-align ip
.parent{ display: table-cell; vertical-align: middle; }
2. absolute + transform it
.parent{ position: relative; } .children{ position: absolute; top: 50%; transform: translateY(-50%); }
3. flex + align-items io
.parent{ display: flex; } .children{ align-items: center; }
1.inline-block + text-align + table-cell + vertical-algin table
.parent{ text-align: center; display: table-cell; vertical-align: middle; } .children{ display: inline-block; }
2.absolute + transform
.parent{ position: relative; } .children{ position: absolute; top: 50%; height: 50% transform: translate(-50%, -50%); }
3. flex + justify-content + align-items
.parent{ display: flex; justify-content: center; align-items: center; }
1. 定寬 + 自適應
/* 1. float + margin */ .left{ float: left; width: 100px; } .right{ margin-left: 120px; } /* 2. float + overflow BFC */ .left{ float: left; width: 100px; margin-right: 20px; } .right{ overflow: hidden; } /* 3.table */ .parent{ display: table; width: 100%; table-layout: fixed; } .left, .right{ display: table-cell; } .left{ width: 100px; padding-right: 20px; } /* 4. flex */ .parent{ display: flex; } .left{ width: 100px; margin-right: 20px; } .right{ flex: 1; } /* 5. 三列: 兩列定寬 + 一列自適應 */ .left, .center{ width: 100px; float: left; } .right{ overflow: hidden; }
2. 不定寬 + 自適應
/* float + overflow:hidden BFC */ .left{ float: left; margin-right: 20px; } .right{ overflow: hidden; } .left p{ width: 100px; } /* table */ .parent{ display: table; width: 100%; } .left, .right{ display: table-cell; } .left{ width: 0.1%; padding-right: 20px; } /* flex */ .parent{ display: flex; } .left{ margin-right: 20px; } .right{ flex: 1; } .left p{ width: 100px; } /* 三列 */ .left, .center{ float: left; margin-right: 20px; } .right{ overflow: hidden; } .left p, .center p{ width: 100px; }
.column{ background-color: #2aabd2;} /* float */ .parent{ margin-left: -20px; } .column{ width: 25%; float: left; padding-left: 20px; box-sizing: border-box; } /* table */ .parent-fix{ margin-left: -20px; } .parent{ display: table; width: 100%; table-layout: fixed; } .column{ display: table-cell; padding-left: 15px; } /* flex */ .parent{ display: flex; } .column{ flex: 1; } .column+ .column{ margin-left: 20px; }
.left{ background-color: #2aabd2;} .right{ background-color: #00B83F;} /* flex */ .parent{ display: flex; } .left{ width: 100px; margin-right: 15px; } .right{ flex: 1; } /* table */ .parent{ display: table; width: 100%; table-layout: fixed; } .left, .right{ display: table-cell; } .left{ width: 100px; border-right: 15px solid transparent; background-clip: padding-box; } /*float 僞等高,很差*/ .left{ float: left; width: 100px; margin-right: 15px; } .right{ overflow: hidden; } .left, .right{ padding-bottom: 9999px; margin-bottom: -9999px; } .parent{ overflow: hidden; }