盒模型
/* 紅色區域的大小是多少?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
撐開邊距
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種方式實現水平居中垂直居中
兩欄佈局,左邊固定,右邊自適應,左右不重疊
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;
}
link @import匯入css
- link是XHTML標籤,除了載入CSS外,還可以定義RSS等其他事務;@import屬於CSS範疇,只能載入CSS
- link引用CSS時,在頁面載入時同時載入;@import需要頁面網頁完全載入以後載入
- link無相容問題;@import是在CSS2.1提出的,低版本的瀏覽器不支援
- link支援使用Javascript控制DOM去改變樣式;而@import不支援
BFC理解
BFC觸發條件:
- 根元素,即html
- float的值不為none(預設)
- position的值為absolute或fixed
- overflow的值不為visible(預設)
- display的值為inline-block、table-cell、table-caption
BFC特性:
- 內部的Box會在垂直方向上一個接一個放置。
- Box垂直方向的距離由margin決定,屬於同一個BFC的兩個相鄰Box的margin會發生重疊。
- 每個元素的margin box 的左邊,與包含塊border box的左邊相接觸。
- BFC的區域不會與float box重疊。(可用於清浮動)
- BFC是頁面上的一個隔離的獨立容器,容器裡面的子元素不會影響到外面的元素。
- 計算BFC的高度時,浮動元素也會參與計算。
持續更新...