web前端css定位position和起浮float
div、h1或p元素常常被稱為塊級元素。這意味著這些元素顯現為一塊內容,即“塊框”。與之相反,span和h3等元素稱為“行內元素”,這是由於它們的內容顯現內行中,即“行內框”。
在這種狀況下,這個框稱為無名塊框,由於它不與專門界說的元素相關聯。
塊級元素的文字行也會發作相似的狀況。假設有一個包括三行文字的階段。每行文字構成一個無名框。無法直接對無名塊或行框運用款式,由於沒有能夠運用款式的地方(留意,行框和行內框是兩個概念)。可是,這有助於瞭解在螢幕上看到的全部東西都構成某種框。
CSS定位機制
CSS有三種基本的定位機制:普通流、起浮和肯定定位。
除非專門指定,不然全部框都在普通流中定位。也就是說,普通流中的元素的方位由元素在X(HTML)中的方位決議。
塊級框從上到下一個接一個地擺放,框之間的筆直間隔是由框的筆直外邊距計算出來。
行內框在一行中水平安置。能夠運用水平內邊距、邊框和外邊距調整它們的間隔。可是,筆直內邊距、邊框和外邊距不影響行內框的高度。由一行構成的水平框稱為行框(LineBox),行框的高度總是足以包容它包括的全部行內框。不過,設定行高能夠新增這個框的高度。
在下面,咱們會為您詳細解說相對定位、肯定定位和起浮。
經過運用position特點,咱們能夠挑選4中不同型別的定位,這會影響元素框生成的方法。
position特點值的意義:
static
元素框正常生成。塊級元素生成一個矩形框,作為文件流的一部分,行內元素則會創立一個或多個行框,置於其父元素中。
relative
元素框偏移某個間隔。元素仍堅持其未定位前的形狀,它本來所佔的空間仍保留。
absolute
元素框從文件流完全刪去,並相對於其包括塊定位。包括塊可能是文件中的另一個元素或者是初始包括塊。元素原先在正常文件流中所佔的空間會封閉,就好像元素本來不存在相同。元素定位後生成一個塊級框,而不管本來它在正常流中生成何種型別的框。
fixed
元素框的體現相似於將position設定為absolute,不過其包括塊是視窗自身。
提示:相對定位實際上被看作普通流定位模型的一部分,由於元素的方位相對於它在普通流中的方位。
CSS定位特點
CSS定位特點答應你對元素進行定位。
特點描繪
position把元素放置到一個靜態的、相對的、肯定的、或固定的方位中。
top界說了一個定位元素的上外邊距鴻溝與其包括塊上鴻溝之間的偏移。
right界說了定位元素右外邊距鴻溝與其包括塊右鴻溝之間的偏移。
bottom界說了定位元素下外邊距鴻溝與其包括塊下鴻溝之間的偏移。
left界說了定位元素左外邊距鴻溝與其包括塊左鴻溝之間的偏移。
overflow設定當元素的內容溢位其區域時發作的工作。
clip設定元素的形狀。元素被剪入這個形狀之中,然後顯現出來。
vertical-align設定元素的筆直對齊方法。
z-index設定元素的堆疊次序。
CSS為定位和起浮供給了一些特點,運用這些特點,能夠樹立列式佈局,將佈局的一部分與另一部分堆疊,還能夠完結多年來一般需求運用多個表格才幹完結的使命。
定位的基本思想很簡單,它答應你界說元素框相對於其正常方位應該呈現的方位,或者相對於父元素、另一個元素乃至瀏覽器視窗自身的方位。明顯,這個功用十分強壯,也很讓人吃驚。要知道,使用者署理對CSS2中定位的支撐遠勝於對其它方面的支撐,對此不該感到奇怪。
另一方面,CSS1中初次提出了起浮,它以Netscape在Web開展初期新增的一個功用為根底。起浮不完滿是定位,不過,它當然也不是正常流佈局。咱們會在後邊的章節中清晰起浮的意義。
全部皆為框
p、h1或p元素常常被稱為塊級元素。這意味著這些元素顯現為一塊內容,即“塊框”。與之相反,span和h3等元素稱為“行內元素”,這是由於它們的內容顯現內行中,即“行內框”。
您能夠運用display特點改動生成的框的型別。這意味著,經過將display特點設定為block,能夠讓行內元素(比方元素)體現得像塊級元素相同。還能夠經過把display設定為none,讓生成的元素底子沒有框。這樣的話,該框及其全部內容就不再顯現,不佔用文件中的空間。
可是在一種狀況下,即便沒有進行顯式界說,也會創立塊級元素。這種狀況發作在把一些文字新增到一個塊級元素(比方p)的最初。即便沒有把這些文字界說為階段,它也會被當作階段對待