文檔流
文檔內元素的流動方向
- 內聯元素 ==> 從左向右依次流動,若
width
不足,則換行 - 塊級元素 ==> 從上到下依次流動,每個塊級元素獨佔一行
脫離文檔流
將會影響其祖先元素(塊級元素)的 height
脫離文檔流的三種方式:
position: fixed
相對於窗口定位position: absolute
相對於定位包含框定位(position: absolute; top: 100%;
)float:
浮動,可以利用.clearfix
類清除浮動
height 問題
div
(塊級元素)==> 由其內部文檔流元素的height
總和決定。span
(內聯元素) ==>span
的height
決定於具體的字體(建議行高 + 設計字體的設計師決定)。
建議行高
字體都有一個建議行高,每種字體的建議行高是不同的。以下面的 span
爲例:
1 |
<span style= 'font-family: 字體A; font-size: 20px; line-height: 40px;'>字體hug</span> |
- 兩個
span
的字體不同,所以兩個span
的height
就不相同。 font-size: 20px;
指的是英文字母h
的上部 距 英文字母g
的下部的距離爲20px
,中文漢字會比20px
偏小一些。
最佳實踐
-
將
line-height
設置的比font-size
大一些,那麼行內元素的height
將會等於line-height
的值 -
內聯元素設置
width
和height
時,不要使用1
2
3
4display: block;
height:
line-height:
text-align: center;通過添加
padding
從而達到想要的width
和height
(添加line-height
明確height
),並且寬度(max-width)自適應1
2padding:
line-height:
套路
設置一個 height
爲 40px
(近似)的 div
,其內部包含內斂元素 span
:
1 |
<div style= 'line-height: 24px; border: 1px solid green; padding: 6px 0;'> |
兩個 span
兩端對齊方法
text-align: justify
==> 定義行內內容(例如文字)如何相對它的塊父
元素對齊。text-align
並不控制塊元素自己的對齊,只控制它的行內內容
的對齊。文字向兩側對齊(必須是多行文本)。
1 |
span{ |
注意:可以將 span
設置爲 display:
inline-block
,之後在第一個 span
後面加上 <br>
文字省略溢出
單行文本省略溢出
1 |
white-space: nowrap; |
多行文本省略溢出(css multi line text ellipsis)
1 |
display: -webkit-box; |
實現一個 1:1 的 div
1 |
border: 1px solid red; |
margin
合併
一個 div
標籤中有一個子標籤 div
,如果父標籤有以下屬性,則子標籤中的 margin
(上下)
屬性不會合並。
- border:
- padding:
- overflow: hidden;( 不推薦 )
相關知識點
-
文字和單詞、單詞和單詞都是以基線對齊。
-
內聯元素的
padding
、margin
和border
不會影響height
,但是會影響width