CSS 相容性設計
檢查目標瀏覽器對屬性的相容性
- CanIUSE
- usage relative
- gs.statcounter.com
- MDN
- 各瀏覽器公司的網站...
確保各個瀏覽器顯示 “正常”
瀏覽器不支持
border-radius? 安啦~沒有圓角看起來還是正常的~不影響使用~
完全沒有 CSS 時, 網頁的內容呈現仍需要保有可讀性
- 嘗試註釋掉不支持的屬性看看狀況; 或是在瀏覽器開關 css 的屬性
- Perfect —> OK: 小細節的差異過省略, 例如圓角
CSS Override
/**
* 此處的 display: flex 用於處理垂直置中;
* 不支援 flex 的瀏覽器吃到 padding: 2em 0 的設定, 雖不完全置中,
* 但也接近原始設計
*/
padding: 2em 0;
display: flex;
/*
* 不支援 vh 單位的瀏覽器會吃到 height: 500px 的設定
* 而 height: 500px 就呈現上還可接受
*/
height: 500px;
height: 100vh;
Feature Query
/**
* 當 initial-letter: 4 在運行的瀏覽器支援下, 才執行 {} 中的設定
*/
@supports(initial-letter: 4) {
...
}
@supports(PROPERTY_1: VALUE) or (PROPERTY_2: VALUE) {
...
}
@supports(PROPERTY_1: VALUE) and (PROPERTY_2: VALUE) {
...
}
@supports not (PROPERTY: VALUE) {
...
}
不建議使用 Feature 的場合
@supports not (PROPERT: VALUE) {…}- 不是所有瀏覽器支援- 比
@supports早支援的屬性
Source Order — 保有 HTML 的可讀性
- 沒有 CSS 的狀況: Reader 或 朗讀器