-
<base>
用於表示網站的 base URL,例如我的個人網站部落格位置是 https://laiyenju.github.io/blog,base URL 就是 https://laiyenju.github.io,/blog 是網站的相對位置。<base href="http://www.example.com/"> <base target="_blank"> <base target="_top" href="http://www.example.com/">
-
<blockquote>
表示內容是引用,可搭配cite
屬性標注來源一起使用。<blockquote cite="https://www.huxley.net/bnw/four.html"> <p>Words can be like X-rays, if you use them properly—they’ll go through anything. You read and you’re pierced.</p> <footer>—Aldous Huxley, <cite>Brave New World</cite></footer> </blockquote>
-
<code>
表示內容是程式碼,就像是<html></html>
這樣。
從 CSS 的視角來看網頁物件的話,所有網頁上的物件都像是一個一個被盒子裝起來後,擺放在頁面上。
這些盒子就是 Box Model,組成元素包含,由物件內到外依序是:
- content 物件本身的內容
- padding 內容外,border 內的空間。
- border 包覆內容的框線。
- margin 最外層的空間,包覆著 content、padding、border。
Box Model 之所以重要,是因為不同的 Box Model 模式會影響到 CSS 採用的排版方式。 一是 Box Model 與計算物件尺寸的方式有關,二是Box Model 有兩種不同模式:block box 跟 inline box。
在不同尺寸模式下,一個物件採用以下 CSS 樣式表中設定樣式,會導致不同的外觀尺寸結果。
.box {
width: 350px;
height: 150px;
margin: 10px;
padding: 25px;
border: 5px solid black;
}
standard box-model 在 standard box-model 模式下,margin、padding 跟 border 是在 width、height 的基礎上,往外擴張,因此物件的實際寬度與高度,會大於 CSS 樣式表內設定的 width 跟 height。
- 物件的總寬度(total width)= width + padding + margin + boarder,
- 物件的總高度(total height)= height + padding + margin + border。
圖中的長方形,寬度(width)是 350px、高度(height)是 150px,但整個物件的實際寬度是 410px (350 + 25 + 25 + 5 + 5)、實際高度是 210px (150 + 25 + 25 + 5 + 5)。
alternative box-model 在 alternative box-model 模式下,物件的實際寬度與高度是將 padding 跟 border 納入 CSS 樣式表中的 width 跟 height 一起計算, 所以實際寬度與高度會跟 CSS 樣式表中的 width 跟 height 設定一致。
在 CSS 樣式表中設定 box-sizing: border-box;
效果就會如圖中的長方形,寬度(width)是 350px、高度(height)是 150px,會將 border 納入 width 跟 height 內。
block box 的特性
每個 box 會獨立成一行,並填滿該行空間,寬度與高度能透過調整 padding、margin 達成。
具備 block box 特性的物件有<h1>
類型的標題、<div>
、<p>
。
inline box 的特性
box 們會自動排成一列,且無法調整高度,只有寬度能透過 padding、margin 達成。
具備 inline box 特性的物件有<a>
、<span>
、<em>
、<strong>
。
這些 HTML 標籤的物件已有預設的 Box Model 特性,為了讓排版時能更自由操作,所以能在 CSS 樣式表中設定 display
的參數,
由我們自己決定要讓物件在排版中採用哪種特性。
display: inline;
設定物件是 inline box 特性display: box;
設定物件是 block box 特性display: inline-box;
設定物件同時具備 inline box 與 block box 的特性,讓物件們能並排成一列,同時也能透過 padding、margin 等調整寬度與高度,跳脫預設特性的限制。display: flex;
設定物件是 flex box 的特性。
在前一題最後說到的 display 能讓我們自己決定要讓物件具備哪種排版特性。
display: inline;
設定物件是 inline box 的特性,物件們會自動排成一列,但無法調整物件高度,只有寬度能透過 padding、margin 調整。具備 inline box 特性的物件有<a>
、<span>
、<em>
、<strong>
。display: box;
設定物件是 block box 的特性,物件會自己獨立成一行,並填滿該行空間,佔用一整行,物件的寬度與高度能透過調整 padding、margin 達成。具備 block box 特性的物件有<h1>
類型的標題、<div>
、<p>
。display: inline-box;
設定物件同時具備 inline box 與 block box 的特性,讓物件們能並排成一列,同時也能透過 padding、margin 等調整寬度與高度,跳脫預設特性的限制。
position: static;
:預設屬性,物件會照著瀏覽器預設的配置自動排版在頁面上。position: relative;
:相對定位,指的是物件會相對於自己在頁面中的「原位置」,在不影響其他物件的情況下,進行偏移。如果物件沒有偏移位置,就不會看見position: relative
的效果,這也是常常覺得有 relative 但畫面沒差別的原因。我自己在練習切第六週作業的餐廳頁面時,是用 relative 處理評價區塊的個人頭像,因為個人頭像沒有好好待在文字方塊內,反而是頭像突出一半到方塊外,所以覺得能用 relative 處理。position: absolute;
:絕對定位,會根據最先碰到,且具備 fixed 或 relative 或 absolute 或 sticky 之一的 position 屬性的父層,來對齊。常見的使用情境是導覽列中的漢堡選單位置,或者蓋板廣告的 X 按鈕。看過本週檢討後,覺得這短短一句話最好記:「absolute 的定位點是往上找第一個 position 不是 static 的元素」。不然很容易漏掉也算在內的
position: sticky;
,或者未來可能新增的屬性。position: fixed;
:使用這個定位方式的物件,會依據「瀏覽器視窗」來定位,物件會獨立成一塊,不會跟其他物件的版位推擠。使用 fixed 的話,物件的 width 要設定成 100%,不然寬度會縮短。常見的使用情境是蓋板廣吿。