1)像<span>這樣的行內標記,定義它的margin-top和margin-bottom是無效的,除非你把它設置為塊狀元素才可以。Display:block
2)對於塊狀元素,你可以自由的使用外邊距來定義版式和元素之間的距離。類似 DIV 等等,
3)無論什么元素,一旦設置為是浮動顯示,就擁有了完整的盒模型結構,我們就可以使用外邊距,內邊距,邊框,高和寬來控制的大小以及與其他對象之間的位置關系。
4)浮動是從網頁布局的角度來定義元素的顯示,而行內和塊狀屬性主要是從元素自身的性質來定其顯示的。
5)當元素沒有定義邊框時,可以把內邊距作為外邊距使用。有時候外邊距會有重疊現象的。
6)當為元素定義背景圖像時,內邊距區域內可以顯示背景圖像,而對外邊距區域來說,背景圖像是達不到的,他永遠都是透明狀態
7)用div+css設計網頁結構時,設計師滿腦子都是網頁內容,而非內容所呈現的效果。
8)塊狀元素:不管塊狀元素寬度是多少,他總會自動占據一行,因為在他末尾附加了一個換行符,而行內元素沒有這個特點。塊狀元素有完整的盒模型結構,可以定義寬度和高度,而行內元素沒有這個特性,無法通過高度來改變文本行的行高。
塊元素的代表標記 div
行內元素的代表標記 span ,行內標記不具備組織結構框架
9)網頁布局分為:自然布局,浮動布局, 定位布局
10)當一個元素被定義為浮動顯示時,即定義為塊狀元素。並且該元素就會收縮自身體積為最小狀態。所以,應該有個好的習慣即把浮動元素設置高和寬。如果沒有設置,則元素會按照它所包含的內容大小來確定它的大小。
11)當元素浮動后,周邊的對象會自動環繞浮動元素周圍,形成一種環繞關系。
12)塊狀元素之間的外邊距會有重疊現象,但是浮動元素之間的外邊距不會發聲重疊現象。
13)浮動元素移動,上移:margin-top:-**; 下移:margin-botom:-*px,其他以此類推。
14)一般定位元素(絕對或是相對元素)都會覆蓋在文檔流對象之上。但是,select元素的窗口控件還不完全支持z-index
15)在css定位布局中,一般遵循“外部相對定位,內部絕對定位”
16)在body中設置min-width:760px,可以避免布局重疊現象。
浮動模型不會與流動模型發生沖突。當元素定義為浮動布局時,它在垂直方向上應該還處於文檔流中,也就是說浮動元素不會脫離正常文檔流而任意的浮動,它的上邊線將與未被聲明為浮動時的位置一樣。但是在水平方向上,它的浮向邊會盡可能地靠近它的包含元素邊緣(這個邊緣是指包含元素補白的內邊沿)。例如,在上面的示例中,我們能夠看到第2個span元素雖然浮動位置有了變化,但依然處於第1個span元素后面,且靠近包含元素body的右邊緣,並隨文檔流一起上下流動
(1)塊狀元素。該元素是矩形的,有自己的高度和寬度。 (2)內聯元素。和塊級元素相反,內斂元素沒有固定形狀,也沒無法設置寬度和高度。 塊元素(block element)一般是其他元素的容器元素,塊元素一般都從新行開始,它可以容納內聯元素和其他塊元素,常見塊元素是段落標簽'P"。“form"這個塊元素比較特殊,它只能用來容納其他塊元素。 如果沒有css的作用,塊元素會順序以每次另起一行的方式一直往下排。而有了css以后,我們可以改變這種html的默認布局模式,把塊元素擺放到你想要的位置上去。而不是每次都愚蠢的另起一行。需要指出的是,table標簽也是塊元素的一種,table based layout和css based layout從一般使用者(不包括視力障礙者、盲人等)的角度來看這兩種布局,除了頁面載入速度的差別外,沒有其他的差別。但是如果普通使用者不經意點了查看頁面源代碼按鈕后,兩者所表現出來的差異就非常大了。基於良好重構理念設計的css布局頁面源碼,至少也能讓沒有web開發經驗的普通使用者把內容快速的讀懂。從這個角度來說,css layout code應該有更好的美學體驗。 你能夠把塊容器元素div想象成一個個box,或者如果你玩過剪貼文載的話,那就更加容易理解了。我們先把需要的文章從各種報紙、雜志總剪 下來。每塊剪下來的內容就是一個block。然后我們把這些紙塊按照自己的排版意圖,用膠水重新貼到一張空白的新紙上。這樣就形成了你自己獨特的文摘快報了。作為一種技術的延伸,網頁布局設計也遵循了同樣的模式。 內聯元素(inline element)一般都是基於語義級(semantic)的基本元素。內聯元素只能容納文本或者其他內聯元素,常見內聯元素 “a”。 需要說明的是:inline element的中文叫法,有多種內聯元素、內嵌元素、行內元素、直進式元素。基本上沒有統一的翻譯,愛怎么叫怎么叫吧。另外提到內聯元素,我們會想到有個display的屬性是display:inline;這個屬性能夠修復著名的IE雙倍浮動邊界問題。 塊元素(block element)和內聯元素(inline element)都是html規范中的概念。塊元素和內聯元素的基本差異是塊元素一般都從新行開始。而當加入了css控制以后,塊元素和內聯元素的這種屬性差異就不成為差異了。比如,我們完全可以把內聯元素cite加上display:block這樣的屬性,讓他也有每次都從新行開始的屬性。
塊元素(block element)
◎ address - 地址
◎ blockquote - 塊引用
◎ div - 常用塊級容易,也是css layout的主要標簽
◎ dl - 定義列表
◎ fieldset - form控制組
◎ form - 交互表單
◎ h1 - h6 大標題
◎ hr - 水平分隔線
◎ menu - 菜單列表
◎ noscript - 可選腳本內容(對於不支持script的瀏覽器顯示此內容)
◎ ol - 排序表單
◎ p - 段落
◎ pre - 格式化文本
◎ table - 表格
◎ ul - 非排序列表(無序列表)
塊狀元素前后元素會換行
行內元素前后元素不會換行
文檔流
將窗體自上而下分成一行行, 並在每行中按從左至右的順序排放元素,即為文檔流.
每個非浮動塊級元素都獨占一行, 浮動元素則按規定浮在行的一端. 若當前行容不下, 則另起新行再浮動.
內聯元素也不會獨占一行. 幾乎所有元素(包括塊級,內聯和列表元素)均可生成子行, 用於擺放子元素.
有三種情況將使得元素脫離文檔流而存在,分別是浮動,絕對定位, 固定定位. 但是在IE中浮動元素也存在於文檔流中(還讓我覺得這樣很合理><).
浮動元素不占任何正常文檔流空間,而浮動元素的定位還是基於正常的文檔流,然后從文檔流中抽出並盡可能遠的移動至左側或者右側。文字內容會圍繞在浮動元素周圍。當一個元素從正常文檔流中抽出后,仍然在文檔流中的其他元素將忽略該元素並填補他原先的空間
基於文檔流, 我們可以很容易理解以下的定位模式:
相對定位, 即相對於元素在文檔流中位置進行偏移. 但保留原占位.
絕對定位, 即完全脫離文檔流, 相對於position屬性非static值的最近父級元素進行偏移
固定定位, 即完全脫離文檔流, 相對於視區進行偏移
《CSS權威指南》中文字顯示:任何不是塊級元素的可見元素都是內聯元素
