重看css權威指南 part8

2021-07-26 14:38:43 字數 1677 閱讀 6192

這節介紹兩個很重要的內容:浮動和定位

浮動的布局規則

浮動在早期主要用於,時替換元素。當我們為乙個非替換元素使用浮動時,最好給他定義乙個width。否則浮動後元素的寬度可能會趨於0。關於浮動的另乙個有意思的情況,浮動元素的外邊距和周圍元素的外邊距不會合併。此外,浮動元素會生成乙個塊級框,相當於display:block。

在深入討論浮動之前,首先要建立包含塊的概念。浮動元素的包含塊是其最近的塊級祖先元素。有一些特定規則控制著浮動元素的擺放

1.浮動元素的左右外邊界不能超過其包含塊的內邊界。乙個浮動元素的頂端不能比他的父元素內頂端更高。當乙個浮動元素被夾在兩個外邊距之間時,會假設它外邊有乙個塊級父元素。(外邊界指元素框的邊界,包含margin,內邊界指width的邊界,不包括padding部分)

關於第一點,我們知道把元素浮動後父元素可能會塌陷,因為浮動後的元素脫離了正常文件流,所以父元素的高度會變為沒有該子元素時的高度。

2.後面的所有規則都是為了保證浮動元素彼此之間不會覆蓋。其中乙個比較有意思的,浮動元素的頂端不能超過它上乙個浮動元素的頂端。

利用負外邊距可以使浮動元素的邊界超出父元素的邊界,也可以使浮動元素的內容覆蓋其他內容。當浮動元素的內容和正常流中的元素內容重疊時。行內元素會完全覆蓋浮動元素的內容(包括背景,邊框)另一方面,塊級元素只是將其內容顯示在浮動元素之上,背景和邊框都在浮動元素之下。

浮動的清除

屬性名:clear

值:left | right | both | none | inherit

應用於:塊級元素

繼承性:無

該屬性會確保元素的指定方向沒有浮動元素。

定位

定位的情況要複雜很多,先籠統地介紹一下定位的屬性和他們的值。

屬性名:position

值:static | relatice | absolute | fixed | inherit

初始值:static

應用於:所有元素

繼承性:無

對元素使用absolute定位後會生成乙個塊級框,相當於display:block。fixed類似於absolute,不過他的包含塊始終為視窗本身。

包含塊的含義是定位上下文,對於relative和static定位的元素,包含塊由最近的塊級或行內塊祖先的內容邊界構成。對於absolute,包含塊是最近的position不為static的祖先元素。

偏移屬性

屬性名:top,right,bottom,left

值:長度或百分數,auto,inherit

初始值:auto

繼承性:無

百分數:相對於包含塊的高度或寬度

偏移屬性表示定位元素相對於包含塊的偏移長度。

對於absolute定位的元素,我們知道乙個有用的公式後就能很好的理解它的大小和位置。(由於top,left,right,left可以為auto)。right+margin-right+border-right+padding-right+width+padding-left+border-left+margin-left+left=包含塊width。垂直方向上情況類似。

因此,對於absolute定位的元素,可以這樣讓他水平居中或垂直居中:

div
垂直居中類似,只要把top和bottom設定後把上下外邊距設為auto即可。

重看css權威指南 part2

1.text indent text indent通常用於縮排文字的第一行,只能用於塊級元素和行內塊元素,但如果把行內元素放到塊級元素中,行內元素會隨著塊級元素的文字一起縮排,使用百分數賦值時,相對于父元素的寬度計算,該屬性可被繼承。2.text align 改變元素中文本行的對其方式,同樣只能用於...

重看css權威指南 part3

接著來說文字屬性 word spacing和letter spacing 這兩個屬性都具有繼承性,不能使用百分數進行賦值。預設值為normal,相當於0。word spacing的值可能受到text align的影響,為了方便對齊。text transform uppercase lowercase...

重看css權威指南 part4

這一部分的名字叫基本視覺格式化,主要講了下元素框,邊距之類的東西,也對前邊的baseline,inline box等知識做了很多補充。這裡提到乙個詞,元素框。先說水平方向上。以下討論的都是塊級元素和行內塊元素,對於行內元素以後再說 元素框水平寬度 左外邊距 左邊框 左內邊距 width 右內邊距 右...