📕
HTML & CSS
  • 網頁設計 - HTML & CSS
  • 1 簡介
    • 1.1 講者簡介
    • 1.2 課程須知
    • 1.3 網站前端簡介
    • 1.4 開發工具簡介
    • 1.5 第一個網頁
  • 2 HTML
    • 2.1 html 文件基本結構
    • 2.2 宣告、標籤、屬性、元素
    • 2.3 保留文字格式
    • 2.4 表示程式的標籤
    • 2.5 註解
    • 2.6 網頁標題
    • 2.7 中介資料(Meta Data)
    • 2.8 縮寫
    • 2.9 斷行與水平分隔線
    • 2.10 段落
    • 2.11 內容標題
    • 2.12 判別區塊與行內
    • 2.13 列表
    • 2.14 清單
    • 2.15 連結
    • 2.16 圖片
    • 2.17 獨立內容
    • 2.18 表格
    • 2.19 嵌入外站
    • 2.20 span 和 div
    • 2.21 引用
    • 2.22 有結構的語意元素
    • 2.23 結構驗證
    • 2.24 HTML Entity(實體)
    • 2.25 影片
    • 2.26 音訊
    • 2.27 其它標籤
    • 2.28 表單
    • 2.29 HTML 所有標籤
  • 3 CSS
    • 3.1 套用 CSS
    • 3.2 註解
    • 3.3 Selectors - 屬性及值
    • 3.4 Selectors - 符號
    • 3.5 Selectors - class 和 id
    • 3.6 關於優先權
    • 3.7 排版 - 關於 display 屬性
    • 3.8 排版 - 區塊模型(Box Model)
    • 3.9 排版 - vertical-align 對齊
    • 3.10 練習 - 固定式版型
    • 3.11 關於 Pseudo Element
    • 3.12 關於 Pseudo Class
    • 3.13 文字樣式
    • 3.14 關於溢載
    • 3.15 連結樣式
    • 3.16 列表樣式
    • 3.17 表格樣式
    • 3.18 背景樣式
    • 3.19 排版 - 關於定位(position)
    • 3.20 排版 - 關於浮動(float)
    • 3.21 關於不透明度 opacity
    • 3.22 關於 visibility、pointer-events
    • 3.23 關於 outline
    • 3.24 表單樣式
    • 3.25 效果 - 游標
    • 3.26 效果 - 圓角
    • 3.27 效果 - 區塊陰影
    • 3.28 效果 - 文字陰影
    • 3.29 效果 - 轉換 transform
    • 3.30 Flexbox 排版 - Container
    • 3.31 Flexbox 排版 - Items
    • 3.32 Column 多欄排版模式
    • 3.33 其它補充
  • 4 練習
  • 5 作業:網頁切版
  • 6 參考資料
Powered by GitBook
On this page
  • 固定定位:fixed
  • 相對定位:relative
  • 絕對定位:absolute
  • sticky 定位模式
  • 關於 z-index
  • 練習
  1. 3 CSS

3.19 排版 - 關於定位(position)

一個元素,在版面中的位置,就叫做定位,有幾種基本的定位型態,可設定的值有:

  • static:這是所有元素的預設值。

  • fixed:固定定位,相對於螢幕。

  • relative:相對定位。相對於自己原來的位置。

  • absolute:絕對定位。一直往父元素找,直到找到第一個 非 static 的元素,那就相對於它來定位。

  • sticky:假設搭配 top: 0; ,螢幕上方未碰觸到該元素時,會在原位置;碰觸到時,置頂。而置頂的期間,取決於父元素高度範圍。

固定定位:fixed

不論使用者滑動到頁面的哪個區域, fixed 元素都會固定在螢幕的指定位置,需搭配 top、right、bottom、left 四個屬性,來決定要固定在哪個位置。例:

部份 HTML:

<p>段落</p>
<p class="the_fixed">fixed 段落</p>
<p>段落</p>

CSS:

p.the_fixed{
  border:1px solid red;
  margin:0;
  padding:0;

  /* 改變定位模式(fixed) */
  position: fixed;
  right:0;
  top:0;
}

結果:

範例:

相對定位:relative

相對於自己原來的位置,該如何位移,一樣搭配 top、right、bottom、left。有以下兩個特性:

  • 元素位移之後,不影響周圍的元素。

  • 元素位移之後,若超出螢幕,會造成頁面上出現水平捲軸。

範例:

絕對定位:absolute

當一個元素設定成 absolute 的定位模式,就會一直往父層找,直到「找到第一個父元素,其 position 的定位模式不是預設的 static 即可,即相對於它來做定位」。例:

HTML:

<p>段落</p>
<div class="relative_block">
  這是 relative 的區塊
  <p class="the_absolute">absolute 段落</p>
</div>
<p>段落</p>
<p>段落</p>

CSS:

div.relative_block{
  position: relative;
  border:1px solid black;
  width: 300px;
  height: 300px;
}
p.the_absolute{
  border:1px solid red;
  margin:0;

  position: absolute;
  bottom: 10px;
  right:10px;
}

結果:

範例:

sticky 定位模式

當一個元素 position 設定成 sticky 之後,通常會再搭配 top 屬性(也可以是其它的 right、bottom、left,但 top 較常用),來決定當螢幕的上方,距離元素上方多少距離時,就定住。例:

關於 z-index

元素當中如果在同一層,定位上有重疊的狀態,可以使用 z-index ,設定正整數來決定元素的疊層順序。愈大的值,代表會出現在愈上方。

例:

練習

提供 html 如下:

<div class="pic_item">
  <a href="#" class="pic_link" target="_blank">
    <img src="https://picsum.photos/id/211/800/400">
  </a>
  <span class="-hot">熱門</span>
  <div class="item_desc">這是圖片描述</div>
</div>

練習加上 CSS 後,呈現結果如下:

參考作法:

Previous3.18 背景樣式Next3.20 排版 - 關於浮動(float)

Last updated 1 year ago