71 lines
1.9 KiB
Markdown
71 lines
1.9 KiB
Markdown
---
|
||
id: 5b7d72c338cd7e35b63f3e14
|
||
title: 通過瀏覽器降級提高兼容性
|
||
challengeType: 0
|
||
videoUrl: ''
|
||
forumTopicId: 301087
|
||
dashedName: improve-compatibility-with-browser-fallbacks
|
||
---
|
||
|
||
# --description--
|
||
|
||
使用 CSS 時可能會遇到瀏覽器兼容性問題。 提供瀏覽器降級方案來避免潛在的問題會顯得很重要。
|
||
|
||
當瀏覽器解析頁面的 CSS 時,會自動忽視不能識別或者不支持的屬性。 舉個例子,如果使用 CSS 變量來指定站點的背景色,IE 瀏覽器由於不支持 CSS 變量而會忽略背景色。 此時,瀏覽器會嘗試使用其它值。 但如果沒有找到其它值,則會使用默認值,也就是沒有背景色。
|
||
|
||
這意味着如果想提供瀏覽器降級方案,在聲明之前提供另一個更寬泛的值即可。 這樣老舊的瀏覽器會降級使用這個方案,新的瀏覽器會在後面的聲明裏覆蓋降級方案。
|
||
|
||
# --instructions--
|
||
|
||
我們使用了 CSS 變量來定義 `.red-box` 的背景色。 現在,我們通過在現有的聲明之前添加另一個 `background` 聲明,並將它的值設置爲 `red`,來提升瀏覽器的兼容性。
|
||
|
||
# --hints--
|
||
|
||
`.red-box` 規則應在現有的 `background` 聲明之前有一個 `background` 的備用屬性,其值爲 `red`。
|
||
|
||
```js
|
||
assert(
|
||
code
|
||
.replace(/\s/g, '')
|
||
.match(
|
||
/\.red-box{background:(red|#ff0000|#f00|rgb\(255,0,0\)|rgb\(100%,0%,0%\)|hsl\(0,100%,50%\));background:var\(--red-color\);height:200px;width:200px;}/gi
|
||
)
|
||
);
|
||
```
|
||
|
||
# --seed--
|
||
|
||
## --seed-contents--
|
||
|
||
```html
|
||
<style>
|
||
:root {
|
||
--red-color: red;
|
||
}
|
||
.red-box {
|
||
|
||
background: var(--red-color);
|
||
height: 200px;
|
||
width:200px;
|
||
}
|
||
</style>
|
||
<div class="red-box"></div>
|
||
```
|
||
|
||
# --solutions--
|
||
|
||
```html
|
||
<style>
|
||
:root {
|
||
--red-color: red;
|
||
}
|
||
.red-box {
|
||
background: red;
|
||
background: var(--red-color);
|
||
height: 200px;
|
||
width:200px;
|
||
}
|
||
</style>
|
||
<div class="red-box"></div>
|
||
```
|