天天看點

css權威指南-基本視覺格式化(水準與垂直)

1.基本概念

    (1)正常流:是指西方語言文本從左向右,從上向下顯示。如果要讓一個元素不在正常流中國,唯一的辦法

                    就是使之成為浮動或定位元素。

    (2)非替換元素:如果元素的内容包含在文檔中,則稱之為非替換元素。

    (3)替換元素:指用作為其他内容占位符的一個元素。例子:img中的圖像

    (4)塊級元素:在正常流中,會在其框之前和之後生成“換行”

                        是以出于正常流中的塊級元素會垂直擺放。

    (5)行内元素:不會再之前或之後生成行分隔符,它們是塊級元素的背景。

    (6)根元素:位于文檔樹頂端的元素。在html中,就是元素html。

2.水準格式化

通常我們指的元素的寬度,指的是其内容的寬度,不包括内補,外補,邊。

水準格式化的七大屬性:margin-left,border-left,padding-left,width,padding-right,border-right,margin-left

這七個水準屬性的總和要等于父元素的width。

這裡面隻有width,margin-left,margin-left這三個可以設定為:auto

其他都必須設為特定的值或者預設寬度為0.

css權威指南-基本視覺格式化(水準與垂直)

下面就以這三個auto的組合來展現問題:auto會自動補齊寬度(螢幕總寬度1366)

    設定margin-left為auto:    

css權威指南-基本視覺格式化(水準與垂直)

    設定margin-right為auto:

css權威指南-基本視覺格式化(水準與垂直)

    設定width為auto:

css權威指南-基本視覺格式化(水準與垂直)

    設定margin-left和margin-right為auto:

css權威指南-基本視覺格式化(水準與垂直)

    設定margin-left和margin-right和width都為auto:

css權威指南-基本視覺格式化(水準與垂直)

    設定margin-left和margin-right和width都不為auto:

css權威指南-基本視覺格式化(水準與垂直)

下面會遇到一種複雜特殊奇怪的現象:那就是外邊距可以是負值

css權威指南-基本視覺格式化(水準與垂直)

可以看出來寬度是440(width;auto這裡440是實時計算的值,而不是顯示的指定的值,

其實這裡涉及到一個問題:有些是實時計算的值,有些dom可以擷取實時計算的值。),比父400還要寬!說好的不能比父元素寬呢?

但是這個計算沒有錯誤:

10+0+0+440+0+0-50=400

最終還是等于400。

前面說的都是費替換元素的水準格式化,下面來說替換元素的水準格式化。(典型的替換元素就是img)

示例圖檔:w:200px,h:300px.

當我們改變她的寬度的時候,高度也同比例改變。

css權威指南-基本視覺格式化(水準與垂直)

200x300

css權威指南-基本視覺格式化(水準與垂直)

300x450

3.垂直格式化

一個元素的預設高度由其内容決定。

高度還會受到内容寬度的影響。

段落越窄,相應的就會越高,以便容納其中所有的内聯内容。

對應于水準格式化,它也有7個屬性:

margin-top,border-top,padding-top,height,padding-bottom,border-bottom,margin-bottom.

同樣這七個值必須等于包含元素塊的高。

這七個值中隻有三個值可以設為auto:height,margin-top,margin-bottom,其他四個必須設為特定的值或預設為0.

css權威指南-基本視覺格式化(水準與垂直)

當高度小于顯示内容的高度:浏覽器會處理為有個滾動條(overflow),以容納下内聯元素。

垂直格式化的另一個重要的是合并垂直外邊距(重疊垂直外邊距)

css權威指南-基本視覺格式化(水準與垂直)
css權威指南-基本視覺格式化(水準與垂直)
css權威指南-基本視覺格式化(水準與垂直)

相鄰清單之間的距離是15px,不是25px。

因為相鄰的外邊距沿着垂直方向合并了,大邊距覆寫小邊距。

轉載:http://www.cnblogs.com/zqzjs/p/5046582.html

繼續閱讀