搜尋

CSS 特殊樣式屬性 all、appearance

CSS 有一些特殊的樣式屬性,例如 all、appearance 等,這些樣式屬性並不負責外觀,而是處理繼承特性或強制隱藏元素預設樣式,這篇教學會介紹這些樣式屬性。

快速導覽:

CSS 教學 - 特殊樣式屬性 all、appearance

all 所有樣式

all 是 CSS 後來推出的樣式屬性,目前大多數的瀏覽器已經都支援 ( IE 不支援 ),主要可以將元素的「所有樣式屬性」進行「完全繼承、完全不繼承或使用預設值繼承」,all 會使用全域關鍵字作為屬性值:

延伸閱讀:全域關鍵字與文字數值

全域關鍵字 說明
inherit 繼承,繼承父元素的樣式屬性。
initial 還原樣式的初始值。
unset 元素預設的繼承行為 ( 參考「樣式的繼承與聯集」)。

下方的範例執行後,會使用 all 的方式,設定元素所有的樣式屬性,當中比較特別的是 .c 的 div,因為所有樣式重設,display 的樣式屬性變成 inline,結果就不會強制換行。

  • 通常在使用時,並不會一次性的調整所有樣式屬性,建議除非特殊情形,不然一律避免使用 all
  • directionunicode-bidi 是唯二不受 all 影響的樣式屬性。

線上展示:https://codepen.io/oxxo/pen/jOoBjQG

<!-- HTML 程式碼 -->
<div class="a">
  <div>oxxo.studio</div>   <!-- 這個 div 使用預設值 -->
  <div class="b">hello world</div>
  <div class="c">hello world</div>
  <div class="d">hello world</div>
</div>

<!-- CSS 程式碼 -->
<style>
  .a {
    font-size: 30px;
    color: red;
    border: 1px solid black;
    margin: 10px;
  }
  .b {
    all: inherit;
  }
  .c {
    all: initial;
  }
  .d {
    all: unset;
  }
</style>

CSS 教學 - CSS 特殊樣式屬性 - all 所有樣式

appearance 瀏覽器預設樣式

appearance 是 CSS 後來推出的樣式屬性,早期的版本具有廠商前綴字樣,例如 -moz-appearance-webkit-appearance,這個樣式屬性可以「關閉或開啟瀏覽器的預設樣式」,主要針對具有預設樣式的「表單元素」,例如 buttoncheckbox 等,沒有繼承特性,具有下列的屬性值:

屬性值 說明
none 關閉瀏覽器預設樣式。
auto 套用瀏覽器預設樣式。

下方的範例執行後,所有表單元素通除了自己本身的預設樣式,還會多套一層瀏覽器提供的預設樣式,因此在不同瀏覽器中,看到的按鈕或其他表單元素,長相都會不太像同,但如果使用 appearance: none 就會關閉瀏覽器提供的樣式,呈現元素本身的預設樣式,因此如果要修改表單相關元素,通常都會使用這個樣式屬性輔助。

線上展示:https://codepen.io/oxxo/pen/ByaaoMX

<!-- HTML 程式碼 -->
<form class="a">
  帳號<br><input type="text"><br>
  密碼<br><input type="password"><br>
  性別<br>
  <input type="radio" name="a">男生
  <input type="radio" name="a">女生<br>
  喜歡什麼<br>
  <select>
    <option value="11">apple</option>
    <option value="12">banana</option>
    <option value="13">oxxo</option>
  </select><br>
  想說的話<br>
  <textarea cols="20" rows="5" name="content"></textarea><br>
  <button>送出</button>
</form>
<form class="b">
  帳號<br><input type="text"><br>
  密碼<br><input type="password"><br>
  性別<br>
  <input type="radio" name="b">男生
  <input type="radio" name="b">女生<br>
  喜歡什麼<br>
  <select>
    <option value="11">apple</option>
    <option value="12">banana</option>
    <option value="13">oxxo</option>
  </select><br>
  想說的話<br>
  <textarea cols="20" rows="5" name="content"></textarea><br>
  <button>送出</button>
</form>

<!-- CSS 程式碼 -->
<style>
  form {
    width: 200px;
    float: left;
    border: 1px solid #000;
    margin: 5px;
    padding: 10px;
  }
  .b * {appearance: none;}      /* 關閉瀏覽器預設樣式 */
  input[type=radio]{
    width: 20px;
    height: 20px;
    border: 3px dashed #000;    /* 修改 radio button 樣式 */
  }
  input[type=radio]:checked{
    background: red;            /* 修改點擊 radio button 效果 */
  }
</style>

CSS 教學 - CSS 特殊樣式屬性 - appearance 瀏覽器預設樣式

小結

這篇教學所介紹的 CSS 特殊樣式屬性都是比較新的 CSS 樣式屬性,不僅可以一次設定所有樣式或禁止某些樣式,搭配全域關鍵字更能快速繼承或還原全部樣式屬性,是相當有用的功能。

延伸閱讀:全域關鍵字與文字數值

意見回饋

如果有任何建議或問題,可傳送「意見表單」給我,謝謝~

CSS 教學

基本介紹

認識 CSS 開始使用 CSS CSS 語法規則 CSS 命名原則 CSS 常用樣式屬性

CSS 選擇器

認識 CSS 選擇器 優先順序 ( 權重 ) 樣式繼承與聯集 使用巢狀結構語法 元素選擇器 ID 和 Class 選擇器 屬性選擇器 文件結構選擇器 虛擬類別選擇器 ( 結構 ) 虛擬類別選擇器 ( 類型 ) 虛擬類別選擇器 ( 輸入 ) 虛擬類別選擇器 ( 行為 ) 虛擬類別選擇器 ( 超連結 ) 虛擬類別選擇器 ( 邏輯 ) 虛擬類別選擇器 ( 其他 ) 虛擬元素選擇器 群組與組合選擇器

數值與單位

全域關鍵字與文字數值 長度與角度單位 位置名稱與時間單位 特殊樣式屬性 ( all、appearance)

規則與定義

變數 ( Variables ) 媒體查詢 ( @media ) 容器查詢 ( @container ) 自訂屬性值 ( @property ) 匯入樣式 ( @import ) 分層優先順序 ( @layer ) 定義字型 ( @font-face ) 計數規則 ( @counter-style ) 列印網頁 ( @page )

函式類型

數學計算 文字與清單計數 形狀與線段 路徑 ( path ) 生成內容與引號

顏色與濾鏡

顏色單位 色彩模型 漸層色 影像濾鏡 ( filter ) 背景濾鏡 ( backdrop-filter ) 混合模式 ( mix-blend-mode )

文字與段落

設定字型 ( font-family ) 使用外部字型 文字尺寸 文字樣式 ( 常用 ) 文字樣式 ( 其他實用 ) 文字樣式 ( 特殊用途 ) 文字換行 文字空白與 Tab 大小 文字行高與縮排 文字水平與垂直對齊 文字書寫方向 文字自動分欄

元素容器

容器顯示類型 ( display ) 元素 display 對照表 盒子模型 ( Box Model ) 寬度與高度 內邊距 ( padding ) 外邊界 ( margin ) 邊框 ( border ) 邊框圓角 ( border-radius ) 影像邊框 ( border-image ) 輪廓 ( outline ) 內容溢出與裁切 ( overflow ) 內容範圍 ( contain ) 可見性與透明度

背景與陰影

背景顏色 背景圖 ( 定位、尺寸 ) 背景圖 ( 固定、重複 ) 背景圖 ( 多重背景、混合 ) 背景縮寫 ( background ) 容器陰影 ( box-shadow )

清單與表格

清單樣式 清單計數器 表格基本樣式 表格邊框樣式 表格內容寬度與對齊

基本排版與定位

元素排版方式 浮動 ( float ) 浮動形狀 ( shape-* ) 定位 ( position ) 邏輯屬性 ( logical properties ) 水平置中技巧 垂直置中技巧

Flex 彈性排版

Flexbox 彈性盒子 Flex 對齊方式 Flex 彈性伸縮

Grid 網格排版

Grid 網格容器與格線 Grid 網格空間與命名 Grid 網格流向與間距 Grid 排列網格項目 Grid 項目對齊與順序

轉場與動畫

轉場 ( transition ) 轉場觸發事件 動畫 ( animation ) 自訂動畫路徑 ( offset ) 動畫觸發事件 多重動畫的權重與順序 動畫進度控制 ( timeline )

變形、裁切與遮罩

裁切路徑 ( clip-path ) 影像遮罩 ( mask ) 物件填滿方式與定位 轉換函式 ( transform ) 平移、旋轉與縮放 3D 轉換與透視

視窗與使用者行為

捲軸樣式 ( scrollbar ) 拉霸、滑桿樣式 ( slider ) 滑鼠游標圖示 ( cursor ) 滑鼠事件 ( pointer-events ) 使用者選取 ( user-select ) 捲動行為 ( scroll、overscroll ) 列印換頁 ( break-* )

範例效果

CSS 圓餅圖 CSS 跑馬燈 Google 載入動畫 漸層色的轉場與動畫 電子時鐘數字 不規則形狀動畫 3D 正多面體 超連結底線動畫效果 噁心黏黏球效果 CSS 視差滾動效果 捲軸控制放射形選單 捲軸改變文字背景色 CSS 頁面捲動進度條