基于文檔流解讀html元素的(css)定位形式
發(fā)表于2年前(2012-03-31 17:43)   閱讀(
260) | 評(píng)論(
0) 
0人收藏此文章, 我要收藏贊0
文檔流: 將窗體自上而下分成一行行, 并在每行中按從左至右的挨次排放元素,即為文檔流。
  每個(gè)非浮動(dòng)塊級(jí)元素都獨(dú)有一行, 浮動(dòng)元素則按規(guī)則浮在行的一端. 若當(dāng)時(shí)行容不下, 則另起新行再浮動(dòng)。
  內(nèi)聯(lián)元素也不會(huì)獨(dú)有一行. 簡(jiǎn)直一切元素(包括塊級(jí),內(nèi)聯(lián)和列表元素)均可生成子行, 用于擺放子元素。
  有三種狀況將使得元素離開文檔流而存在,分別是浮動(dòng)、絕對(duì)定位、固定定位. 然則在IE中浮動(dòng)元素也存在于文檔流中(還讓我感覺(jué)如許很合理><)。
  浮動(dòng)元素不占任何正常文檔流空間,而浮動(dòng)元素的定位照樣基于正常的文檔流,然后從文檔流中抽出并盡能夠遠(yuǎn)的挪動(dòng)至左側(cè)或許右側(cè)。文字內(nèi)容會(huì)環(huán)繞在浮動(dòng)元素四周。當(dāng)一個(gè)元素從正常文檔流中抽出后,依然在文檔流中的其他元素將疏忽該元素并填補(bǔ)他原先的空間。 
  浮動(dòng)概念讓人疑惑本源在于閱讀器對(duì)理論的解讀形成的。只能說(shuō)良多人以IE做規(guī)范,其實(shí)它不是。
  基于文檔流,我們可以很輕易了解以下的定位形式:
  相對(duì)定位: 即相關(guān)于元素在文檔流中地位進(jìn)行偏移,但保存原占位。
  絕對(duì)定位: 即完全離開文檔流, 相關(guān)于position屬性非static值的比來(lái)父級(jí)元素進(jìn)行偏移。
       固定定位,即完全離開文檔流,相關(guān)于視區(qū)進(jìn)行偏移。
 
文檔流是文檔中可顯示對(duì)象在排列時(shí)所占用的位置。比如網(wǎng)頁(yè)的div標(biāo)簽它默認(rèn)占用的寬度位置是一整行,p標(biāo)簽?zāi)J(rèn)占用寬度也是一整行,因?yàn)閐iv標(biāo)簽和p標(biāo)簽是塊狀對(duì)象。 網(wǎng)頁(yè)中大部分對(duì)象默認(rèn)是占用文檔流,也有一些對(duì)象是不占文檔流的,比如表單中隱藏域。當(dāng)然我們也可以讓占用文檔流的元素轉(zhuǎn)換成不占文檔流,這就要用到CSS中屬性position來(lái)控制。 看看CSS 2.0對(duì)position的定義:檢索對(duì)象的定位方式。共有4種取值。 static:默認(rèn)值,無(wú)特殊(靜態(tài))定位。對(duì)象遵循HTML定位規(guī)則 。 absolute:絕對(duì)定位。將對(duì)象從文檔流中拖出,使用left,right,top,bottom等屬性相對(duì)于其最接近的一個(gè)最有定位設(shè)置的父對(duì)象進(jìn)行絕對(duì)定位。如果不存在這樣的父對(duì)象,則依據(jù)body對(duì)象。而其層疊通過(guò)z-index屬性定義 。當(dāng)對(duì)象定位在瀏覽器窗口以外,瀏覽器因此顯示滾動(dòng)條。 fixed:固定定位。對(duì)象定位遵從絕對(duì)(absolute)方式。但是要遵守一些規(guī)范。當(dāng)對(duì)象定位在瀏覽器窗口以外,瀏覽器不會(huì)因此顯示滾動(dòng)條,而當(dāng)滾動(dòng)條滾動(dòng)時(shí),對(duì)象始終固定在原來(lái)位置。 relative:相對(duì)定位。對(duì)象不可層疊,但將依據(jù)left,right,top,bottom等屬性在正常文檔流中偏移位置。當(dāng)對(duì)象定位在瀏覽器窗口以外,瀏覽器因此顯示滾動(dòng)條。 inherit:繼承值,對(duì)象將繼承其父對(duì)象相應(yīng)的值