《圖解CSS》定位
CSS布局的核心是 position 屬性,對元素盒子應用這個屬性,可以相對于它在常規文檔流中的位置重新定位。
語法
position: value(默認值:static)
value常見值:
static | relative | absolute | sticky | fixed | inherit
static:默認值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。
inherit: 規定應該從父元素繼承 position 屬性的值。
relative: 生成相對定位的元素,相對于其正常位置進行定位。
absolute: 生成絕對定位的元素,相對于 static 定位以外的第一個父元素進行定位。
元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
fixed: 生成絕對定位的元素,相對于瀏覽器窗口進行定位。
元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。
sticky: 粘性定位可以被認為是相對定位和固定定位的混合。元素在跨越特定閾值前為相對定位,之后為固定定位。
靜態定位(static)
在靜態定位的情況下,每個元素在處在常規文檔流中。它們都是塊級元素,所以就會在頁面中自上而下逐一排列顯示,如下:
相對定位(relative)
相對定位,相對的而是它原來在文檔流中的位置(或者默認位置),可以使用top/right/bottom/left屬性改變它的位置。
該關鍵字下,元素先放置在未添加定位時的位置,再在不改變頁面布局的前提下調整元素位置(因此會在此元素未添加定位時所在位置留下空白)。position:relative 對 table-*-group, table-row, table-column, table-cell, table-caption 元素無效。
tips: 可以給top/left屬性設定負值,把元素向上/向左移動。
示例:將第三個div相對原來的位置向上移動18px,向右移動50px。
絕對定位(absolute)
元素會被移出正常文檔流,并不為元素預留空間,通過指定元素相對于最近的非 static 定位祖先元素的偏移,來確定元素位置。絕對定位的元素可以設置外邊距(margins),且不會與其他邊距合并。
示例:將第四個div設置為絕對定位,向右移動30px
盒子四的相對元素是body, 盒子三的相對元素是外層div
固定定位(fixed)
元素會被移出正常文檔流,并不為元素預留空間,而是通過指定元素相對于屏幕視口(viewport)的位置來指定元素位置。元素的位置在屏幕滾動時不會改變。打印時,元素會出現在的每頁的固定位置。fixed 屬性會創建新的層疊上下文。當元素祖先的 transform, perspective 或 filter 屬性非 none 時,容器由視口改為該祖先。
固定定位與絕對定位類似,但不同之處在于,固定定位元素的定位上下文是視口(瀏覽器窗口或手持設備的屏
幕),因此它不會隨頁面滾動而移動。如下實例:
粘性定位(sticky)
粘性定位可以被認為是相對定位和固定定位的混合。元素在跨越特定閾值前為相對定位,之后為固定定位。
實例:
定位上下文
把元素的 position 屬性設定為 relative 、 absolute 或fixed 后,繼而可以使用 top、right、bottom 和 left 屬性,相對于另一個元素移動該元素的位置。這里的“另一個元素”,就是該元素的定位上下文。
如下實例,雖然inner上定義了top: 100px,可是并沒有起作用,原因在于內外部div默認都是靜態定位,它們之間不存在誰是誰的定位上下文這個問題。換句話說,在常規文檔流中,由于外部div沒有內容,內部div就會跟它共享相同的起點。只有將position屬性設定為relative、absolute或fixed,這個元素的top、right、bottom 和 left 屬性才會起作用。
絕對定位元素的默認上下文是body。然而絕對定位元素的任何祖先元素都可以成為它的定位上下文,只要把相應的祖先元素的position設定為relative即可。
參考網站:
https://developer.mozilla.org/zh-CN/docs/Web/CSS/position
https://www.w3school.com.cn/cssref/pr_class_position.asp
https://my.oschina.net/u/866703/blog/221809
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!
聽說 點贊 的人運氣不會太差,每一天都會元氣滿滿哦 嘿嘿!!! ? ? ?
大家的支持就是我堅持下去的動力。點贊后不要忘了 關注 我哦!
個人微信:iotzzh
公眾號:前端微說
個人網站:www.iotzzh.com
智能推薦
css定位
position 參考博客 1、static 默認的,順序碼放 2、reactive 對于當前位置(static位置)的浮動,使用top,right,bottom,left改變自身位置,改變后點擊范圍隨自身改變,不改變位置時效果同static 3、absolute 在一篇博客的介紹中如此寫道 absolute是position中的第三個屬性值,如果你給元素指定了absolute,整個元素就會漂出文...
CSS 定位
position(定位)屬性指定了元素的定位類型。元素可以使用頂部,底部,左側和右側屬性進行定位。然而,除非是先設定position屬性,否則這些屬性(top/bottom/left/right)無法工作。不同的定位方法有不同的工作方式,下面對各種定位方法進行介紹: static定位 HTML元素的默認值,即沒有定位,遵循正常的文檔流對象。靜態定位的元素不會受到top,bottom,left,ri...
CSS 定位
定位屬性 制作網頁時,Css可以使用定位屬性將一個元素精確地放在頁面上指定位置。元素的定位屬性由定位模式和位置屬性兩部分構成。 1.定位模式 在CSS中,position屬性用來定義元素的定位模式,其常用的屬性值有四個,分別表示不同含義。 static 靜態定位(默認定位方式) relative 相對定位,相對于其原文檔流的位置進行定位 absolute 絕對定位,相對于其上一個已經定位的父元素進...
CSS定位
position: relative: absolute: fixed: sticky 黏性布局的用處: z-index定位層級: 層級默認為0,值越大層級越高(遮擋低層級) 層級都默認為0時: 當box1層級大于box2層級時,box1遮擋box2: 嵌套時的小細節: 我們給box1一個父元素,此時并沒有什么問題: 但當我們給parent一個最低的層級,發現box2遮擋了box1: 原因:比較的...
CSS定位
CSS 相對定位 相對定位是一個非常容易掌握的概念。如果對一個元素進行相對定位,它將出現在它所在的位置上。然后,可以通過設置垂直或水平位置,讓這個元素“相對于”它的起點進行移動。 如果將 top 設置為 20px,那么框將在原位置頂部下面 20 像素的地方。如果 left 設置為 30 像素,那么會在元素左邊創建 30 像素的空間,也就是將元素向右移動。 如下圖所示: 注意...
猜你喜歡
CSS定位
CSS定位 改變元素在頁面上的位置 CSS定位機制 普通流 元素按照其在HTML中的位置順序決定排布的過程 浮動 絕對布局 CSS position屬性 static(靜態布局) 與相對布局相差不大,但是偏移量對其不起作用 relative(相對布局) 相對布局,占據位置,可以通過left,right等屬性進行位置的相對偏移 通過更改z-index屬性可以改變覆蓋的順序,誰的值大,誰在上面 abs...
CSS 定位
使用CSS定位,達到布局目的。 - position 之static - position 之relative - position 之absolute - position 之fixed - position 之sticky position 在CSS體系中,既是一個模塊,也是一個屬性。 在CSS3 中一共有5中定位模型: 特點中(1)問題,答案是:相對的是常規流中該元素的位置。 其中(4)是通...
CSS 定位
浮動可以讓多個塊級盒子一行沒有縫隙排列顯示, 經常用于橫向排列盒子;定位則是可以讓盒子自由的在某個盒子內移動位置或者固定屏幕中某個位置,并且可以壓住其他盒子 2 定位組成 定位:將盒子定在某一個位置,所以定位也是在擺放盒子, 按照定位的方式移動盒子 定位 = 定位模式 + 邊偏移 定位模式用于指定一個元素在文檔中的定位方式;邊偏移則決定了該元素的最終位置 2.1 定位模式 定位模式決定...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...