2021-03-07 分類: 網(wǎng)站建設(shè)
眾所周知,前端CSS中,盒模型、浮動、定位為必須掌握的三座大山。
今天就來聊聊定位的那些事。
先來看看哪些場景用到定位,如下圖所示,凡是有盒子壓住另一個盒子的地方都可定位,因為用浮動做不了,如果盒子浮動,會并排但不會出現(xiàn)有層級的觀感。所以想要有層級的觀感,就得用定位。
簡單來說,定位就是將盒模型中的盒子顯示在我們想要的位置。
定位由position屬性和邊偏移屬性組成。
position屬性語法為:{position:屬性值},常用值如下:
邊偏移屬性語法為:{邊偏移:屬性值},常用值如下:
1、靜態(tài)定位static
靜態(tài)定位具備標準流特性,所有元素默認靜態(tài)定位,靜態(tài)定位不能通過設(shè)置邊偏移改變位置。
靜態(tài)定位的作用:取消定位。
2、相對定位relative
相對定位在標準流中,采用相對定位的盒子仍然占用原來的位置。每次移動位置,以自己的左上角為基點移動(相對于自己移動位置)
3、絕對定位absolute
絕對定位不具備標準流特性,采用絕對定位的盒子在設(shè)置邊偏移后不占位置。
絕對定位的盒子在父級沒有定位時,以瀏覽器為準對齊;當父級有定位,依據(jù)最近的已定位的父元素進行定位。
4、固定定位fixed
固定定位不具備標準流特性,不占位置,始終以瀏覽器為標準顯示位置,不管瀏覽器滾動和窗口大小,fixed顯示固定。
終極用法口訣:子絕父相,或子絕父絕。
就是說,在實際開發(fā)過程中,子盒子采用絕對定位,那么父盒子必定采用相對定位或絕對定位。
如果要實現(xiàn)絕對定位的盒子水平或垂直居中需要采用一定的算法。因為加定位有偏移和浮動的盒子通過設(shè)置margin值實現(xiàn)水平居中失效。那么采用以下方法:
先設(shè)置左邊偏移50%,50%表示父盒子的一半,即left:50%。
再設(shè)置自己盒子外邊距為盒子寬度負的一半,即margin-left:-width/2。
當盒子加fixed和absolute定位,元素轉(zhuǎn)換為行內(nèi)塊元素。
如果盒子固定定位,當盒子內(nèi)容為空時,盒子的高度會為0,為避免這種情況可設(shè)置盒子的寬高,再設(shè)置下面的盒子的margin值,可實現(xiàn)top通欄固定不動。如下圖的首頁展示固定top通欄。
當定位元素重疊,可通過z-index設(shè)置層疊次序。
層級z-index只針對定位的元素,標準流和浮動不具備該屬性。
層級z-index的用法:z-index:2;后面沒有單位。
采用相對定位比標準流高一層級,浮在上面。
盒子已經(jīng)用相對定位,但是鼠標放上去還想用相對定位,就可用z-index。
取值相同時,根據(jù)書寫順序,后來居上。
默認為0,值越大層級越高。
文章標題:前端開發(fā)中學習”定位“的那些事。
文章地址:http://www.rwnh.cn/news/104708.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站改版、標簽優(yōu)化、網(wǎng)頁設(shè)計公司、虛擬主機、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容