/* 紅色區域的大小是多少?200 - 20*2 - 20*2 = 120 */ .box { width: 200px; height: 200px; padding: 20px; margin: 20px; background: red; border: 20px solid black; box-sizing: border-box; }
/* 標準模型 */ box-sizing:content-box; /*IE模型*/ box-sizing:border-box;
用 padding-bottom
撐開邊距css
section { width:100%; padding-bottom: 100%; background: #333; }
<div><span>我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。</span></div> <div><span>我是一行文字</span></div> <style> div{text-align: center;} div span{display: inline-block;text-align: left;} </style>
貼上騰訊大佬的一篇文章:16種方式實現水平居中垂直居中html
flex作自適應佈局很容易,但兼容性很差,這裏統一不用flex佈局前端
.left{ float:left; width:300px; margin-right: 10px; background: red; } .right{ overflow: hidden; /* 建立BFC */ background: yellow; }
table
佈局兼容性最好,固然flex
佈局的align-items: stretch;
也行面試
<div class="layout"> <div class="layout left">left</div> <div class="layout right">center</div> </div> <style> .layout{ display: table; width: 100%; } .layout div{ display: table-cell; } .layout .left{ width: 50%; height: 200px; background: red; } .layout .right{ width: 50%; background: yellow; } </style>
.shape { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-top: 50px solid transparent; border-bottom: 50px solid blue; background: white; }
BFC觸發條件:瀏覽器
BFC特性:佈局
2019前端面試系列——CSS面試題
2019前端面試系列——JS面試題
2019前端面試系列——JS高頻手寫代碼題
2019前端面試系列——Vue面試題
2019前端面試系列——HTTP、瀏覽器面試題post