婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談由position屬性引申的css進階討論

淺談由position屬性引申的css進階討論

熱門標簽:南通電銷外呼系統(tǒng)軟件 上海400電話辦理到易號網 廣州防封電銷機器人廠家 成都企業(yè)外呼系統(tǒng) 洛陽防封卡外呼系統(tǒng)廠家 常州電話外呼系統(tǒng)招商 智能語音電銷機器人客戶端 山東電銷機器人軟件 申請400電話移動

1.normal flow         

normal flow(正常流):正常流是默認的定位方式。任何沒有具體指定{position:absolute}或者{position:fixed}屬性以及沒有被浮動的元素都將默認獲得此屬性。

在這種方式里,塊級元素在它們的包含塊里一個一個垂直延伸,行內元素在它們的包含塊里從左至右的水平排布。

值得注意的是,在正常流里垂直邊距(vertical margin)是重疊的。也就是說,上下兩個塊級盒之間的邊距由它們之中邊距較大的元素決定,而不是他們的和!

style>
div
{
    width: 100px;
    height: 100px;
    border: 1px solid #00A4CC;
    background-color: #3e8f3e;
}
.div1
{
    margin:20px 0;
}
.div2
{
    margin:40px 0;
}
/style>
/head>

body>
div class="div1">/div>
div class="div2">/div>
/body>

效果顯示如下:

div1和div2的垂直距離由大的margin決定,也就是div2的40px而不是二者之和60px。

其次,行內元素是會被折斷的,當寬度受到限制的時候,它會自動移動到下一行。這可能會產生一些難看的效果如果行內塊有邊框的話。看下面的效果:

head>
style>
div
{
    width: 200px;
    height: 100px;
    border: 1px solid #00A4CC;
}

span
{
    border: 2px solid #00ff00;
}
/style>
/head>

body>
div>
    span> 我會掉到下一行我會掉到下一行我會掉到下一行/span>
/div>
/body>

效果顯示如下:

2.containing block        

containing block(包含塊):是視覺格式化模型的一個重要概念,它與框模型類似,也可以理解為一個矩形,而這個矩形的作用是為它里面包含的元素提供一個參考,元素的尺寸和位置往往是由該元素所在的包含塊決定的。也就是說一個元素盒子的位置和大小有時是通過相對于一個特定的長方形來計算的,這個長方形就被稱之為元素的 containing block。

一個元素的containing block按照以下方式定義:

1.用戶代理(比如瀏覽器)選擇根元素作為 containing block(稱之為初始 containing block)。

2.對于其它元素,除非元素使用的是絕對位置,containing block 由最近的塊級祖先元素盒子的內容邊界組成。

3.如果元素有屬性 'position:fixed',containing block 由視口建立。

4.如果元素有屬性 'position:absolute',containing block 由最近的 position 不是 static 的祖先建立,按下面的步驟:

如果祖先是塊級元素,containing block 由祖先的padding edge形成。

如果祖先是內聯(lián)元素,containing block 取決于祖先的 direction 屬性。

如果 direction 是 ltr(左到右),祖先產生的第一個盒子的上、左內容邊界是 containing block 的上方和左方,祖先的最后一個盒子的下、右內容邊界是 containing block 的下方和右方。

如果 direction 是 rtl(右到左),祖先產生的第一個盒子的上、右內容邊界是 containing block 的上方和右方,祖先的最后一個盒子的下、左內容邊界是 containing block 的下方和左方。

5.如果沒有祖先,根元素盒子的內容邊界確定為 containing block。

名詞解釋:

視口:通過解析文檔,連續(xù)媒體(比如屏幕就是連續(xù)媒體,而打印機則是基于頁的媒體)給用戶產生一個視口(一個窗口或其它在屏幕上顯示的區(qū)域)。

根元素:源文件中,每一個元素都有一個父元素,只有一個例外,它就是根元素。

padding edge:請參見下圖:

舉個板栗:

html>
   head>
      title>Illustration of containing blocks/title>
   /head>
   body id="body">
      div id="div1">
        p id="p1">This is text in the first paragraph.../P>
          p id="p2">This is text
            em id="em1"> in the
              strong id="strong1">second
              /strong> paragraph.
            /em>
          /p>
      /div>
   /body>
/html>

那么,在沒有指定任何position的情況下,上方代碼的containng block確定方式為:

如果我們設置div1的position為:

#div1 { position: absolute;}

此時,div1 的 containing block 就不再是 body,它變成了初始 containing block(因為這里還沒有具有 position 的祖先盒子)。

3.BFC        

BFC(Block Formatting Context 塊格式化上下文):是W3CCSS2.1規(guī)范中的一個概念,在CSS3中被修改為flowroot。格式化則表明了在這個環(huán)境中,元素處于此環(huán)境中應當被初始化,即元素在此環(huán)境中應當如何布局等。元素如果創(chuàng)建了BF么BFC決定了如何對其內容進行定位,以及它與其他元素的關系和相互作用。

通俗理解:首先BFC是一個名詞,是一個獨立的布局環(huán)境,我們可以理解為一個箱子(實際上是看不見摸不著的),箱子里面物品的擺放是不受外界的影響的。轉換為BFC的理解則是:BFC中的元素的布局是不受外界的影響(我們往往利用這個特性來消除浮動元素對其非浮動的兄弟元素和其子元素帶來的影響。)并且在一個BFC中,塊盒與行盒(行盒由一行中所有的內聯(lián)元素所組成)都會垂直的沿著其父元素的邊框排列。

創(chuàng)建了BFC的元素會按照如下的方式對其子元素進行排列:

  • 在BFC中,盒子從頂端開始垂直地一個接一個地排列,兩個盒子之間的垂直的間隙是由他們的margin 值所決定的。在一個BFC中,兩個相鄰的塊級盒子的垂直外邊距會產生折疊。即是在BFC中相鄰的塊級元素的垂直邊距會折疊(collapse)。
  • 在BFC中,每一個盒子的左外邊緣(margin-left)會觸碰到容器的左邊緣(border-left)(對于從右到左的格式來說,則觸碰到右邊緣),即使存在浮動也是如此(盡管一個子元素的內容區(qū)域會由于浮動而壓縮),除非這個子元素也創(chuàng)建了一個新的BFC,如它自身也是一個浮動。

名詞解釋:

邊距折疊:在CSS當中,相鄰的兩個盒子(可能是兄弟關系也可能是祖先關系)的外邊距可以結合成一個單獨的外邊距。這種合并外邊距的方式被稱為折疊,并且因而所結合成的外邊距稱為折疊外邊距。

折疊的結果: 

1.兩個相鄰的外邊距都是正數時,折疊結果是它們兩者之間較大的值。

2.兩個相鄰的外邊距都是負數時,折疊結果是兩者絕對值的較大值。

3.兩個外邊距一正一負時,折疊結果是兩者的相加的和。

產生折疊的必備條件:margin必須是鄰接的,且需要滿足如下條件:

1.必須是處于常規(guī)文檔流(非float和絕對定位)的塊級盒子,并且處于同一個BFC當中。

2.沒有線盒,沒有空隙(clearance),沒有padding和border將他們分隔開

3.都屬于垂直方向上相鄰的外邊距,可以是下面任意一種情況

  • 元素的margin-top與其第一個常規(guī)文檔流的子元素的margin-top元素的
  • margin-bottom與其下一個常規(guī)文檔流的兄弟元素的margin-top
  • height為auto的元素的margin-bottom與其最后一個常規(guī)文檔流的子元素的margin-bottom
  • 高度為0并且最小高度也為0,不包含常規(guī)文檔流的子元素,并且自身沒有建立新的BFC的元素的margin-top和margin-bottom

那么,什么情況下會創(chuàng)建BFC:  

1.浮動元素(float:left|right)

2.絕對定位元素(position:absolute|fixed)

3.行內塊元素(display:inline-block)

4.表格的單元格(display:table-cells,TD、TH)

5.表格的標題(display:table-captions,CAPTION)

6.'overflow'特性不為visible的元素

7.表格元素創(chuàng)建的"匿名框"

值得注意的是,"display:table" 本身并不產生 "block formatting contexts"。但是,它可以產生匿名框, 其中包含 "display:table-cell" 的框會產生塊格式化上下文。

總之,對于 "display:table" 的元素,產生塊格式化上下文的是匿名框而不是 "display:table"。

最后,是這些元素創(chuàng)建了塊格式化上下文,它們本身不是塊格式化上下文。

BFC的運用:消除浮動與多欄布局。

1.自適應兩欄布局

style>
    body {
        position: relative;
    }

    .aside {
        width: 100px;
        height: 150px;
        float: left;
        background: #f66;
    }

    .main {
        height: 200px;
        background: #fcc;
    }
/style>
body>
    div class="aside">/div>
    div class="main">/div>
/body>

效果如下:

根據BFC的規(guī)則:

每一個盒子的左外邊緣(margin-left)會觸碰到容器的左邊緣(border-left)(對于從右到左的格式來說,則觸碰到右邊緣)

所以,雖然存在浮動的元素aslide,但main的左邊依然會與包含塊的左邊相接觸。

因此,我們可以根據:

BFC的區(qū)域不會與float box重疊。

來通過觸發(fā)main生成BFC,實現(xiàn)自適應兩欄布局。

.main {
     overflow: hidden;
}

當觸發(fā)main生成BFC后,這個新的BFC不會與浮動的aside重疊。因此會根據包含塊的寬度,和aside的寬度,自動變窄。效果如下:

2.清除內部浮動

head>
    title>Clear float/title>
    style>
        .container{
            margin: 30px auto;
            width:600px;
            height: 300px;
        }
        .wrapper{
            border:solid 3px #a33;
        }
        .main{
            width: 100px;
            height: 100px;
            background-color: #060;
            margin: 10px;
            float: left;
        }
    /style>
/head>
body>
    div class="container">
        div class="wrapper">
            div class="main">/div>
            div class="main">/div>
            div class="main">/div>
        /div>
    /div>
/body>

希望的結果是:

但結果是:

父容器并沒有把浮動的子元素包圍起來,俗稱塌陷,為了消除這種現(xiàn)象,除了用傳統(tǒng)的偽類方法。根據

計算BFC的高度時,浮動元素也參與計算

還可以使父容器形成BFC,來清除浮動,簡單修改一下代碼:

div class="wrapper" style="float:left;">  //添加一個float屬性,形成BFC
    div class="main">1/div>
    div class="main">2/div>
    div class="main">3/div>
/div>

可以得到如下效果:

總結來說,BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素不會影響到外面的元素。反之也如此。

因為BFC內部的元素和外部的元素絕對不會互相影響,因此,當BFC外部存在浮動時,它不應該影響B(tài)FC內部Box的布局,BFC會通過變窄,而不與浮動有重疊。同樣的,當BFC內部有浮動時,為了不影響外部元素的布局,BFC計算高度時會包括浮動的高度。避免margin重疊也是這樣的一個道理。

以上就是淺談由position屬性引申的css進階討論的詳細內容,更多關于由position屬性引申的css進階討論的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • CSS中position屬性之fixed實現(xiàn)div居中
  • 通過設置CSS中的position屬性來固定層的位置
  • 詳細分析css float 屬性以及position:absolute 的區(qū)別
  • 使用CSS樣式position:fixed水平滾動的方法
  • css position: absolute、relative詳解
  • 推薦深入理解css中的position定位和z-index屬性
  • 詳解CSS不受控制的position fixed

標簽:萊蕪 貴州 邵陽 混顯 滄州 廣安 賀州 鶴壁

巨人網絡通訊聲明:本文標題《淺談由position屬性引申的css進階討論》,本文關鍵詞  淺談,由,position,屬性,引申,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談由position屬性引申的css進階討論》相關的同類信息!
  • 本頁收集關于淺談由position屬性引申的css進階討論的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色香蕉久久蜜桃| 不卡在线观看av| 91麻豆免费视频| 亚洲四区在线观看| 在线视频国内自拍亚洲视频| 亚洲宅男天堂在线观看无病毒| 91视频www| 一区二区三区免费网站| 欧美日韩久久久久久| 亚洲香蕉伊在人在线观| 欧美性感一类影片在线播放| 日本网站在线观看一区二区三区| 精品国产乱码久久久久久久久| 国产91精品久久久久久久网曝门| 亚洲婷婷综合色高清在线| 欧美妇女性影城| 国产成人免费视频一区| 亚洲已满18点击进入久久| 欧美一区二区三区色| 国产成人av电影在线播放| 亚洲视频在线一区二区| 日韩一级二级三级精品视频| 成人精品一区二区三区四区| 五月天欧美精品| 国产精品天天看| 777色狠狠一区二区三区| 国产一区二区三区免费播放 | 床上的激情91.| 亚洲国产一区二区视频| 日韩精品一区二区在线观看| 99久久夜色精品国产网站| 美女视频网站黄色亚洲| 中文字幕一区二区三中文字幕| 欧美一级生活片| 色天天综合久久久久综合片| 激情综合五月天| 亚洲高清免费观看| 国产精品三级视频| 日韩免费一区二区三区在线播放| 91蝌蚪国产九色| 国产夫妻精品视频| 久久黄色级2电影| 亚洲国产综合在线| 亚洲欧美视频在线观看视频| 精品国产一区久久| 欧美日韩精品一区二区三区| 成人精品免费看| 久久成人久久鬼色| 亚洲已满18点击进入久久| 国产日韩欧美精品电影三级在线| 欧美日韩一区二区三区免费看 | 久久精品水蜜桃av综合天堂| 欧美日韩精品综合在线| 一本一本久久a久久精品综合麻豆| 精品一区二区久久| 亚洲国产日韩一区二区| 悠悠色在线精品| 中文字幕在线不卡视频| 久久精品一区蜜桃臀影院| 日韩女优av电影| 日韩欧美高清在线| 欧美一区二区网站| 欧美高清www午色夜在线视频| 欧美日韩专区在线| 在线看国产日韩| 欧美伊人精品成人久久综合97| 91色视频在线| 97se亚洲国产综合自在线不卡| 国产激情视频一区二区三区欧美 | 99re这里都是精品| 国产成人午夜视频| 国产精品一品视频| 国产精品系列在线播放| 韩国女主播成人在线| 久久国产精品99精品国产| 美女一区二区视频| 九九精品一区二区| 国产一区二区久久| 成人在线视频一区| 91美女在线看| 欧美性色欧美a在线播放| 91久久精品午夜一区二区| 色综合久久中文综合久久牛| 91福利视频久久久久| 欧美在线视频全部完| 欧美日韩色一区| 欧美二区三区的天堂| 欧美一区二区三区人| 26uuu久久综合| 日本一区二区三区四区在线视频| 欧美国产欧美综合| 最新欧美精品一区二区三区| 亚洲欧洲日韩在线| 亚洲欧洲日韩在线| 亚洲精品老司机| 亚洲aaa精品| 美女在线视频一区| 国产乱人伦精品一区二区在线观看| 免费黄网站欧美| 国产一区二区不卡老阿姨| 成人精品小蝌蚪| 制服丝袜亚洲精品中文字幕| 日韩视频中午一区| 中文字幕乱码一区二区免费| 亚洲日本一区二区三区| 亚洲影视资源网| 捆绑紧缚一区二区三区视频| 国产精品一区二区久激情瑜伽| 成人国产在线观看| 色偷偷88欧美精品久久久| 91精品国产综合久久久久久漫画 | 欧美国产在线观看| 亚洲免费av高清| 毛片av一区二区| 不卡在线观看av| 日韩一区二区视频在线观看| 成人精品鲁一区一区二区| 欧美日韩激情在线| 久久久久久久久久久99999| 中文字幕在线不卡视频| 精品在线视频一区| 色婷婷亚洲婷婷| 久久久久久影视| 亚洲午夜一二三区视频| 成人免费毛片app| 日韩一级完整毛片| 亚洲国产成人91porn| eeuss鲁一区二区三区| 日韩欧美成人一区二区| 亚洲黄色小说网站| 国产成a人无v码亚洲福利| 欧美二区三区的天堂| 亚洲美女精品一区| 国产91精品一区二区麻豆网站| 欧美日韩精品一区二区天天拍小说| 国产精品伦理一区二区| 久久精品国产免费看久久精品| 色综合久久久久久久| 国产精品久久久久久久久图文区 | 7777精品伊人久久久大香线蕉| 国产精品久久网站| 国产一区二区91| 欧美电视剧在线看免费| 午夜成人在线视频| 91福利资源站| 亚洲人成网站色在线观看| 国产成人免费高清| xfplay精品久久| 美腿丝袜亚洲色图| 欧美一级夜夜爽| 男女男精品视频网| 在线播放国产精品二区一二区四区 | 日韩欧美黄色影院| 亚洲国产精品影院| 色婷婷久久久久swag精品| 国产日本欧美一区二区| 国模少妇一区二区三区| 日韩欧美国产一区二区三区 | 欧美成人乱码一区二区三区| 同产精品九九九| 精品视频一区二区不卡| 亚洲国产日韩综合久久精品| 91极品美女在线| 一区二区三区在线免费播放| 91在线你懂得| 亚洲美女视频在线观看| 91国产福利在线| 亚洲丶国产丶欧美一区二区三区| jiyouzz国产精品久久| 精品欧美乱码久久久久久| 亚洲h精品动漫在线观看| 欧美日韩小视频| 喷白浆一区二区| 日韩精品一区二区三区在线观看 | 久久狠狠亚洲综合| 精品福利在线导航| 国产精品一区二区无线| 国产精品天美传媒沈樵| 色综合中文字幕| 亚洲男同性恋视频| 欧亚洲嫩模精品一区三区| 亚洲国产岛国毛片在线| 高清国产一区二区| 国产午夜一区二区三区| 99久久久精品免费观看国产蜜| 亚洲日本在线看| 欧美日韩黄色一区二区| 久久黄色级2电影| 欧美激情综合五月色丁香小说| av在线播放一区二区三区| 亚洲一区二区高清| 日韩欧美国产小视频| 99视频超级精品| 亚洲成av人片一区二区三区| 日韩午夜激情视频| 大陆成人av片| 亚洲成a天堂v人片| 3d动漫精品啪啪一区二区竹菊| 久久精品免费看| 国产精品白丝在线|