国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

CSS Float nine rules

Nino / 729人閱讀

注:本文是對眾多博客的學習和總結,可能存在理解錯誤。請帶著懷疑的眼光,同時如果有錯誤希望能指出。
如果你喜歡我的文章,可以關注我的私人博客:http://blog-qeesung.rhcloud.com/

入門前端也算是有三個月之久了,發現Float這個屬性一直都很迷惑,只是知道一些簡單的浮動規則,并沒有深入去學習,一旦遇到一點復雜的浮動場景,自己也就懵了。

于是在網上找了數篇關于浮動的博客文章,加上自己理解,在這里總結一下。

w3 css float nine rules

CSSfloat才開始學習的時候總是感覺沒有任何的規律可言,總是有許多想不明白的地方,"為什么這個div塊要在這個div塊的下方?","為什么這個浮動元素會是這樣對齊?"。

其實Float是有規則可以依據的,Float一共有九個規則來控制浮動元素的行為:

The left outer edge of a left-floating box may not be to the left of the left edge of its containing block. An analogous rule holds for right-floating elements.

If the current box is left-floating, and there are any left-floating boxes generated by elements earlier in the source document, then for each such earlier box, either the left outer edge of the current box must be to the right of the right outer edge of the earlier box, or its top must be lower than the bottom of the earlier box. Analogous rules hold for right-floating boxes.

The right outer edge of a left-floating box may not be to the right of the left outer edge of any right-floating box that is next to it. Analogous rules hold for right-floating elements.

A floating box"s outer top may not be higher than the top of its containing block. When the float occurs between two collapsing margins, the float is positioned as if it had an otherwise empty anonymous block parent taking part in the flow. The position of such a parent is defined by the rules in the section on margin collapsing.

The outer top of a floating box may not be higher than the outer top of any block or floated box generated by an element earlier in the source document.

The outer top of an element"s floating box may not be higher than the top of any line-box containing a box generated by an element earlier in the source document.

A left-floating box that has another left-floating box to its left may not have its right outer edge to the right of its containing block"s right edge. (Loosely: a left float may not stick out at the right edge, unless it is already as far to the left as possible.) An analogous rule holds for right-floating elements.

A floating box must be placed as high as possible.

A left-floating box must be put as far to the left as possible, a right-floating box as far to the right as possible. A higher position is preferred over one that is further to the left/right.

上述內容摘錄于此處,咋一看挺復雜,其實真的挺復雜的,對于博主我這種英語渣來說,是挺難理解的,如果文中有翻譯或者理解不對的地方,希望大家指正。

CSS Float Rule1

原文:The left outer edge of a left-floating box may not be to the left of the left edge of its containing block. An analogous rule holds for right-floating elements.

譯文:左浮動的盒子的左邊界不會超出容器的左邊界,右浮動同理.

以左浮動為例:
html

css

body{
    background-color:yellow;
}

#outer-div{
    height:200px;
    width:200px;
    background-color:red;
}

#inner-div{
    height:100px;
    width:100px;
    background-color:blue;
    float:left;
}

顯示效果

100x100的藍色盒子為左浮動元素,200x200的紅色盒子為藍色盒子的容器,可見藍盒子的左邊界沒有超出紅色盒子的左邊界。

CSS Float Rule2

原文:If the current box is left-floating, and there are any left-floating boxes generated by elements earlier in the source document, then for each such earlier box, either the left outer edge of the current box must be to the right of the right outer edge of the earlier box, or its top must be lower than the bottom of the earlier box. Analogous rules hold for right-floating boxes.

譯文:如果盒子是左浮動的,那么在html文檔中晚出現的左浮動盒子只允許出現在先出現的左浮動盒子的右邊或者晚出現的左浮動盒子的頂部必須在早出現左浮動盒子的底部之下。右浮動同理.

以左浮動為例:

html

100 x 100
100 x 100
100 x 100
65 x 100
65 x 100
100 x 100
100 x 100
400 x 500

css

#outer-div{
    height:400px;
    width:500px;
    background-color:red;
}

#inner-div{
    height:100px;
    width:100px;
    background-color:blue;
    float:left;
    margin:10px;
}

#inner-div1{
    height:65px;
    width:100px;
    background-color:pink;
    float:left;
    margin:10px;
}

body{
    background-color:yellow
}

顯示效果:

這里需要解釋的有幾個地方:

方塊五為何不另起一行,放在方塊一下面,而是放在方塊四的下面? 這里我們將會在Rule8和Rule9解釋

方塊六和方塊1之間為何空著那么寬的空間? 這是因為方塊五早出現在方塊六之前,所以方塊六的頂部不會超出方塊五的底部。

CSS Float Rule3

原文:The right outer edge of a left-floating box may not be to the right of the left outer edge of any right-floating box that is next to it. Analogous rules hold for right-floating elements.

譯文:左浮動盒子的右外邊緣可能不在其旁邊的任何右浮動框的左外邊緣的右邊,右浮動同理.

html

150 x 270 float:left
100 x 250 float:right
400 x 500

css

div{
    margin:5px;
}

#outer-div{
    height:400px;
    width:500px;
    background-color:red;
}

#float-left {
    height:150px;
    width:270px;
    float:left;
    background-color:blue;
}

#float-right{
    height:100px;
    width:250px;
    float:right;
    background-color:blue;
}
body{
    background-color:yellow
}

顯示效果:

左浮動盒子的寬度(270)+有浮動盒子的寬度(250)> 容器的寬度(500),所以右浮動盒子并沒有和左浮動盒子并列,而是在左浮動盒子的下方。

CSS Float Rule4

原文:A floating box’s outer top may not be higher than the top of its containing block. When the float occurs between two collapsing margins, the float is positioned as if it had an otherwise empty anonymous block parent taking part in the flow. The position of such a parent is defined by the rules in the section on margin collapsing.

譯文:浮動盒子的頂部不能超出容器的頂部邊界

這個就不用解釋了

CSS Float Rule5

原文:The outer top of a floating box may not be higher than the outer top of any block or floated box generated by an element earlier in the source document.

譯文:浮動盒子的頂部不會超出在html文檔中早出現的的塊級元素(block)或者是浮動元素的頂部

html

1
2
3
400 x 500

css

div{
    margin:5px;
}

#outer-div{
    height:400px;
    width:500px;
    background-color:red;
}

#float-left {
    height:100px;
    width:100px;
    float:left;
    background-color:lightblue;
}

#float-right{
    height:100px;
    width:200px;
    float:right;
    background-color:lightyellow;
}
body{
    background-color:yellow
}

顯示效果:

如果將紅色容器的礦都縮短為,使之單行之內不能夠容下三個浮動元素,那么哪一個盒子會被擠到下一行呢?1?2?3?
我們來試著將紅色容器盒子的寬度縮減為400px

#outer-div{
    height:400px;
    width:400px;
    background-color:red;
}

我們將會得到下面顯示效果

可見盒子三被擠到了下一行,這是因為盒子二的html文件中比盒子三早出現,所以盒子二不能低于盒子三。于是就將盒子三下沉。

CSS Float Rule6

原文:The outer top of an element’s floating box may not be higher than the top of any line-box containing a box generated by an element earlier in the source document.

譯文:浮動盒子的頂部不會超出在html文檔中早出現的包含盒子的line-box元素頂部

html

Purus ut faucibus pulvinar elementum integer enim neque, volutpat ac tincidunt vitae, semper quis lectus nulla at volutpat diam ut. Dui vivamus arcu felis, bibendum ut tristique et, egestas quis ipsum suspendisse ultrices gravida dictum fusce ut placerat orci nulla!
100 x 100

css

div{
    margin:5px;
}

#outer-div{
    height:400px;
    width:500px;
    background-color:red;
}

#float-left {
    height:100px;
    width:100px;
    float:left;
    background-color:lightblue;
}

body{
    background-color:yellow
}

顯示效果:

在浮動元素之前是一行行內元素,所以浮動盒子就沒有超過文本的最后一行的頂部。可能這里不太清晰,我們將文本換成圖片再看一下。

html

100 x 100

顯示效果

為什么浮動元素不浮動上去把一個圖片元素擠下來呢?如果浮動元素向上浮動將一個圖片元素擠到第二行,那么現在浮動元素就高于比它早出現的圖片元素。就違反了規則

這里我們試著將紅色盒子容器寬度縮小,使之一行之內容不下四個圖片。

css

#outer-div{
      height:400px;
      width:400px;
      background-color:red;
}

那么圖片將會折行,如下所示

行內元素圖片四就環繞浮動元素,但是浮動元素并沒有超出行內元素的。

CSS Float Rule7

原文:A left-floating box that has another left-floating box to its left may not have its right outer edge to the right of its containing block’s right edge. (Loosely: a left float may not stick out at the right edge, unless it is already as far to the left as possible.) An analogous rule holds for right-floating elements.

譯文:一個左浮動元素右邊的另一個左浮動元素的右邊界不會超出容器的右邊界,右浮動同理

這個也很好理解,就是如果一行之內要放第二個浮動元素,如果放不下了,那就換行。這個就不詳細解釋啦

CSS Float Rule8

原文:A floating box must be placed as high as possible.

譯文:一個浮動盒子應該放的盡可能的高

CSS Float Rule9

原文:A left-floating box must be put as far to the left as possible, a right-floating box as far to the right as possible. A higher position is preferred over one that is further to the left/right.

譯文:一個左浮動元素應該放的盡可能的靠左,右浮動元素應該被放的盡可能的靠右。當元素既可以放置"最高"又可以"最右"的時候,優先考慮"最高"。

上面的兩個規則要連起來一起看,這里我們就借鑒一下規則二中的例子

為什么盒子五不直接放在盒子一下面,這是因為當一個元素既可以放的最左(最右)和最高的時候,優先選擇最高,所以這里就放在了盒子四的下面。

finally

最后說兩句,浮動元素其實對在它出現之前的元素影響不大,但是由于浮動是使元素脫離了文檔流,那么在浮動元素之后出現的元素:

塊元素:直接無視浮動元素,該怎么顯示就怎么顯示,并且會被浮動元素覆蓋。

行內元素:行內元素會環繞在浮動元素周圍。

下面我們就來一個簡單的例子:

html

P1 : Augue neque, gravida in fermentum et, sollicitudin ac orci phasellus egestas tellus rutrum tellus pellentesque eu tincidunt tortor aliquam nulla?

100 x 100

P2 : At lectus urna duis convallis convallis tellus, id interdum velit laoreet id donec ultrices tincidunt arcu, non sodales neque sodales ut etiam. Feugiat vivamus at augue eget arcu dictum varius?

css

div{
    margin:5px;
}

#outer-div{
    height:400px;
    width:500px;
    background-color:red;
}

#float-left {
    height:100px;
    width:100px;
    float:left;
    background-color:lightblue;
}

body{
    background-color:yellow
}

顯示效果

這里因為p1block元素,直接卡住了浮動元素,然后p2這個block元素直接忽視了浮動元素的存在,然后排版在浮動元素的下方,但是p2的中的文本是inline元素,于是就圍繞浮動元素排布。

參考文章

W3 float-rules

Everything You Never Knew About CSS Floats

The CSS Float Rules

CSS浮動float詳解

回歸CSS標準之Float

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/49936.html

相關文章

  • CSS Float nine rules

    注:本文是對眾多博客的學習和總結,可能存在理解錯誤。請帶著懷疑的眼光,同時如果有錯誤希望能指出。如果你喜歡我的文章,可以關注我的私人博客:http://blog-qeesung.rhcloud.com/ 入門前端也算是有三個月之久了,發現Float這個屬性一直都很迷惑,只是知道一些簡單的浮動規則,并沒有深入去學習,一旦遇到一點復雜的浮動場景,自己也就懵了。 于是在網上找了數篇關于浮動的博客文章,加...

    bingo 評論0 收藏0
  • 【generator101】 - yield from

    摘要:我們可以看一下的可見是由內部支持的,其實現原理上就避免了棧進棧出的消耗,直接由最內層的返回值。另外可以實現外部直接向最內層的傳遞值,比如這段代碼的輸出是這樣傳值的方式,在用循環重新的模式下是無法實現的。這也就是必須使用,而不能使用的原因。 在python 3.3里,generator新增了一個語法 yield from 這個yield from的作用是什么?看下面兩段對比的代碼: d...

    xiaodao 評論0 收藏0
  • CSS外掛:Sass 之規則(Rules)和指令(Directives)

    摘要:根據文件名引入。這和指令非常相似,只要后面的條件為就會執行。被編譯為循環指令的形式,是個變量名,是一個表達式,他將返回一個列表值。被編譯為學完了回過頭來整理也真是麻煩,算是總結吧。 前戲:下面這些玩意還是比較實用的,好像是進階Sass必備的,以后寫起 CSS 要溜得飛起啊! 規則(Rules) 1. @import Sass 擴展了 CSS 的 @import 規則,讓它能夠引入 SC...

    honhon 評論0 收藏0
  • leetcode423. Reconstruct Original Digits from Engl

    摘要:如對應的英文表達為并繼續亂序成。要求輸入亂序的英文表達式,找出其中包含的所有的數字,并按照從小到大輸出。思路和代碼首先將數字和英文表示列出來粗略一看,我們知道有許多字母只在一個英文數字中出現,比如只出現在中。 題目要求 Given a non-empty string containing an out-of-order English representation of digits...

    kviccn 評論0 收藏0

發表評論

0條評論

Nino

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<