###### tags: `六角筆記王` `CSS` # position定位方式 > 定位方式很容易搞混,但也蠻常用到的,幫助使用者可以做出複雜的排版 ## :dart:position:static ```css .static { position: static; } ``` - `static` 是position 屬性的預設值。 - 無法定義 top、left、bottom 與 right。如果RWD要調回預設定位可以寫 - 不會被特別定位在頁面上的特定位置,除了`static`其他的屬性值都代表該元素會被定位在頁面上。 ## :dart:position:relative - 稱為相對定位,「相對」原本`static`的位置產生偏移。 - 最主要的功能就是寫在父層,讓子層可以關在裡面。 - `relative` 表現的和 `static` 一樣,除非你增加了一些額外的屬性(top.bottom等)。 - `position: relative` 的元素內設定 `top` 、 `right` 、 `bottom` 和 `left` 屬性,會使其元素「相對地」調整其原本該出現的所在位置 > :exclamation:不管這些「相對定位」過的元素如何在頁面上移動位置或增加了多少空間,都不會影響到原本其他元素所在的位置還是在 `static`的位置。 <iframe height="300" style="width: 100%;" scrolling="no" title="relative" src="https://codepen.io/exnsrpjc/embed/dyRoGyg?default-tab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true"> See the Pen <a href="https://codepen.io/exnsrpjc/pen/dyRoGyg"> relative</a> by 王聖禮 (<a href="https://codepen.io/exnsrpjc">@exnsrpjc</a>) on <a href="https://codepen.io">CodePen</a>. </iframe> - 想要做出重疊效果,可以寫兩個`relative` ```css .relative1 { position: relative; } .relative2 { position: relative; top: -20px; left: 20px; background-color: white; width: 500px; } ``` ## :dart:position:absolute - 稱為絕對定位,相對父層的「絕對」定位。可以將元素放在父層中任何想放的位置,也可以隨著父層到處放。 - 以上層非 `static`(預設定位)的父元素為定位基準。(重要: 若上層所有父元素都是預設的`static` 定位,則會根據 `body` 定位) - 很神奇的 `position` 屬性值。`absolute` 與 `fixed` 的行為很像,不一樣的地方在於 `absolute` 元素的定位是在他所處上層容器的相對位置。如果套用 `position: absolute` 的元素,其上層容器並沒有「可以被定位」的元素的話,那麼這個元素的定位就是相對於該網頁所有內容(也就是 <body> 元素)最左上角的絕對位置,看起來就是這張網頁的絕對位置一樣,所以當你的畫面在捲動時,該元素還是會隨著頁面捲動(fixed不會跟捲動)。 ## :dart:position:fixed - 稱為固定定位,不會保留它原本在頁面應有的空間,不會跟其他元素的配置互相干擾。 - 最主要功能就是很多廣告或彈出視窗的作法。 - 和 `relative` 一樣,我們會使用 `top` 、 `right` 、 `bottom` 和 `left` 屬性來定位。 - 以目前瀏覽器視窗定位,固定在瀏覽視窗的固定位置,不隨滾動捲軸拉動。 <iframe height="300" style="width: 100%;" scrolling="no" title="absolute&fixed" src="https://codepen.io/exnsrpjc/embed/dyRoXRJ?default-tab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true"> See the Pen <a href="https://codepen.io/exnsrpjc/pen/dyRoXRJ"> absolute&fixed</a> by 王聖禮 (<a href="https://codepen.io/exnsrpjc">@exnsrpjc</a>) on <a href="https://codepen.io">CodePen</a>. </iframe> ## :dart:參考資料: [https://zh-tw.learnlayout.com/position.html](https://zh-tw.learnlayout.com/position.html) [https://blog.camel2243.com/2016/11/16/css-position-屬性relative、absolute、static-及-fixed-解析/](https://blog.camel2243.com/2016/11/16/css-position-%E5%B1%AC%E6%80%A7relative%E3%80%81absolute%E3%80%81static-%E5%8F%8A-fixed-%E8%A7%A3%E6%9E%90/)