精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

現代 CSS 解決方案:Modern CSS Reset

開發 前端
到今天,我們更多聽到現代 CSS 解決方案一詞。它除去頁面樣式最基本的呈現外,同時也關注用戶體驗與可訪問性。這也可能是過去,我們在寫 CSS 的時候比較容易忽略的環節。

在早年間(其實也不是很早),寫過幾篇關于 CSS Reset 的文章 - reset.css 知多少[1]。

詳細描述了當時業界比較常用的,兩個 CSS reset 方案:reset.css 與 Normalize.css。

以更為推薦的 Normalize.css 為例,它的核心思想是:

  1. 統一了一些元素在所有瀏覽器下的表現,保護有用的瀏覽器默認樣式而不是完全清零它們,讓它們在各個瀏覽器下表現一致。
  2. 為大部分元素提供一般化的表現。
  3. 修復了一些瀏覽器的 Bug ,并且讓它們在所有瀏覽器下保持一致性。
  4. 通過一些巧妙的細節提升了 CSS 的可用性。
  5. 提供了詳盡的文檔讓開發者知道,不同元素在不同瀏覽器下的渲染規則。

如今,Normalize 已經出到了第八版 -- normalize.css V8.0.1[2],而隨之而變的是瀏覽器市場環境的巨大變化。

IE 已經逐漸退出歷史舞臺,處理各個瀏覽器之間巨大差異、不同兼容性問題的日子像是一去不復返了。雖然今天不同廠商在對待標準仍然存在差異,一些細節上仍舊有出入,但是我們已經不需要再像過去般大肆地對瀏覽器默認樣式進行重置。

到今天,我們更多聽到現代 CSS 解決方案一詞。它除去頁面樣式最基本的呈現外,同時也關注用戶體驗與可訪問性。這也可能是過去,我們在寫 CSS 的時候比較容易忽略的環節。

Modern CSS Reset

我最近比較喜歡的一個 CSS Reset 方案,源自于 -- Modern-CSS-Reset[3]。

它的核心觀點是:

  1. 重置合理的默認值。
  2. 關注用戶體驗。
  3. 關注可訪問性。

整個 Reset 的源碼比較簡單:

/* Box sizing rules */
*,
*::before,
*::after {
box-sizing: border-box;
}
/* Remove default margin */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
margin: 0;
}
/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
list-style: none;
}
/* Set core root defaults */
html:focus-within {
scroll-behavior: smooth;
}
/* Set core body defaults */
body {
min-height: 100vh;
text-rendering: optimizeSpeed;
line-height: 1.5;
}
/* A elements that don't have a class get default styles */
a:not([class]) {
text-decoration-skip-ink: auto;
}
/* Make images easier to work with */
img,
picture {
max-width: 100%;
display: block;
}
/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
font: inherit;
}
/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
html:focus-within {
scroll-behavior: auto;
}
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}

其中一些比較有意思的點,單看盒子模型:

*,
*::before,
*::after {
box-sizing: border-box;
}

Normalize.css 是不推薦這么做的,大部分元素的 box-sizing 其實都是 content-box,但是,對于實際開發,全部元素都設置為 border-box 其實是更便于操作的一種方式。

再看看在用戶體驗及可訪問性方面的一些做法:

html:focus-within {
scroll-behavior: smooth;
}

scroll-behavior: smooth 意為平滑滾動,當然這里是設置給了 html:focus-within 偽類,而不是直接給 html 賦予平滑滾動,這樣做的目的是只對使用鍵盤 tab 鍵切換焦點頁面時,讓頁面進行平滑滾動切換,帶來更好的使用體驗。

如果我們設置了如下 CSS:

html {
scroll-behavior: smooth;
}

可能會起到一起副作用,譬如,當我們在頁面查找元素時候(使用 Ctrl + F、或者 Mac 的 Commond + F),這段 CSS 代碼可能會嚴重延緩我們的查找速度:

再看看這段代碼:

@media (prefers-reduced-motion: reduce) {
html:focus-within {
scroll-behavior: auto;
}
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}

我曾經在 使用 CSS prefers-* 規范,提升網站的可訪問性與健壯性[4] 介紹過 prefers-reduced-motion。

prefers-reduced-motion 規則查詢用于減弱動畫效果,除了默認規則,只有一種語法取值 prefers-reduced-motion: reduce,開啟了該規則后,相當于告訴用戶代理,希望他看到的頁面,可以刪除或替換掉一些會讓部分視覺運動障礙者不適的動畫類型。

規范原文:Indicates that user has notified the system that they prefer an interface that removes or replaces the types of motion-based animation that trigger discomfort for those with vestibular motion disorders。

vestibular motion disorders 是一種視覺運動障礙患者,翻譯出來是前庭運動障礙,是一種會導致眩暈的一類病癥,譬如一個動畫一秒閃爍多次,就會導致患者的不適。

使用方法,還是上面那段代碼:

.ele {
animation: aniName 5s infinite linear;
}
@media (prefers-reduced-motion: reduce) {
.ele {
animation: none;
}
}

如果我們有一些類似這樣的動畫:

在用戶開啟了 prefers-reduced-motion: reduce 時,就應該把這個動畫去掉。

而上述 Reset 中的那段代碼,正是用于當用戶開啟對應選項后,減弱頁面上的所有動畫效果。屬于對可訪問性的考慮。

結合實際環境

當然,結合實際環境,目前國內整體不太注重可訪問性相關的內容。

而且,許多業務根本無法拋棄一些老舊瀏覽器,仍然需要兼容 IE 系列。

因此,對于現階段的 Reset 方案,可以靈活搭配:

  1. 如果你的業務場景仍然需要考慮一些老舊瀏覽器,依舊需要兼容 IE 系列,Normalize.css 的大部分功能都還是非常好的選擇。
  2. 如果你的業務場景只專注于 Chrome 或者是 Chromium 內核,Normalize.css 內的許多內容其實可能是一些實際中根本不會遇到或者用上的兼容適配,可以進行必要的精簡。
  3. 如果你的業務是全球化,面向的用戶不僅僅在國內,你應該開始考慮更多可訪問性相關的內容,上述的 Modern CSS Reset 可以借鑒一下。

因此,更應該的情況是,根據實際的業務需要,吸收多個業界比較常見/知名的 Reset 方案形成自己業務適用的。

這里再羅列一些常見及現代 CSS Reset 方案:

你會看到,其實大家都號稱自己是現代 CSS Reset 解決方案,但其實其內部做的 Reset 工作很多是我們根本用不上的。有人喜歡小而美,有人喜歡大而全,實際使用的時候需要具體取舍,魔改合并成適合自己的才是最好的。

最后

好了,本文到此結束,希望對你有幫助 :)

參考資料

[1]reset.css 知多少: https://github.com/chokcoco/iCSS/issues/5。

[2]normalize.css V8.0.1: https://github.com/necolas/normalize.css。

[3]Modern-CSS-Reset: https://github.com/hankchizljaw/modern-css-reset。

[4]使用 CSS prefers-* 規范,提升網站的可訪問性與健壯性: https://github.com/chokcoco/iCSS/issues/118。

[5]normalize.css: https://github.com/necolas/normalize.css。

[6]sanitize.css: https://github.com/csstools/sanitize.css。

[7]reseter.css: https://github.com/resetercss/reseter.css。

[8]Modern-CSS-Reset: https://github.com/hankchizljaw/modern-css-reset。

[9]Github -- iCSS: https://github.com/chokcoco/iCSS。

責任編輯:姜華 來源: iCSS前端趣聞
相關推薦

2022-04-19 06:27:13

CSS數學函數calc

2023-09-11 07:11:04

CSSNesting

2022-12-22 08:34:22

CSS不規則圖形

2022-04-28 07:00:09

min()max()clamp()

2010-09-06 14:46:25

CSSXHTML

2010-09-16 09:26:57

CSS display

2010-08-31 16:09:04

DIV+CSS

2010-09-06 13:51:38

CSS失效CSS

2010-08-26 14:00:28

CSSmargin

2009-08-03 18:06:28

JS性能問題

2010-09-01 10:49:57

CSS水平居中垂直居中

2017-10-11 16:55:32

CSSWebpackLighthouse

2010-09-07 09:08:03

DIV彈出層

2023-12-09 09:44:07

MetaFacebook開源

2010-08-26 10:56:16

CSStextarea

2010-09-09 16:47:49

CSS paddingFirefox

2010-08-26 12:59:29

marginCSS

2010-08-23 14:06:57

DIV+CSS

2010-09-07 13:24:18

CSS

2010-09-02 15:18:42

CSSASP.NET
點贊
收藏

51CTO技術棧公眾號

日韩久久精品| 国产乱码精品一区二区三区卡| 免费成人看片网址| 国产色无码精品视频国产| 天堂成人在线| 亚洲超碰在线观看| 国产精品乱码一区二区三区软件 | 国产精品一区二区在线免费观看| 国产精品视频二区三区| 国产在线欧美| 日韩午夜精品视频| 亚洲精品一区二区三区av| 亚洲AV无码成人精品区东京热| 波多野结衣欧美| 一区二区三区四区精品在线视频| 成人美女免费网站视频| 无码人中文字幕| 精品视频一区二区三区四区五区| 久久久噜噜噜久久中文字幕色伊伊| 午夜精品一区二区三区在线| 亚洲免费观看在线| 精品无人乱码一区二区三区| 亚洲福中文字幕伊人影院| 国产精品毛片va一区二区三区| 无码人妻丰满熟妇奶水区码| 狠狠操综合网| 欧美亚一区二区| 日韩一区二区电影在线观看| 激情视频网站在线观看| 51精产品一区一区三区| 欧美一级搡bbbb搡bbbb| 欧美日韩dvd| 精品二区在线观看| 亚洲免费观看| 亚洲欧美一区二区精品久久久 | 男人天堂欧美日韩| 亚洲第一二三四五区| 亚洲精品蜜桃久久久久久| 欧美自拍第一页| 99视频精品免费观看| 久久精品国产96久久久香蕉| 九九久久久久久| 2024短剧网剧在线观看| 大尺度一区二区| 欧美在线观看一区二区三区| 国产一级二级av| 丁香影院在线| 99精品黄色片免费大全| 日本久久久久久久| 99热在线观看精品| 成人爽a毛片| 精品区一区二区| 国产淫片av片久久久久久| 91大神xh98hx在线播放| 国产精品主播直播| 日本在线观看天堂男亚洲| 亚洲综合一二三| 日韩免费视频| 日韩中文字幕在线播放| 性色av蜜臀av浪潮av老女人 | 日韩av免费在线看| 国产一区二区99| 色综合色综合| 日韩中文字幕在线观看| 中国一级片在线观看| 午夜免费一区| 欧美国产日韩一区二区三区| 99精品视频网站| 在线免费看91| 精品动漫3d一区二区三区免费| 日韩极品精品视频免费观看| 亚州精品一二三区| 91九色国产在线播放| 国产精品毛片a∨一区二区三区| 亚洲国产精品综合| 免费人成在线观看播放视频| 国产成人啪免费观看软件| 日韩av免费一区| 在线视频播放大全| 国产一区二区三区日韩 | 免费在线黄色网| 亚洲盗摄视频| 日韩你懂的在线观看| www黄色在线| xxxx成人| 91国内精品野花午夜精品 | a天堂中文字幕| 亚洲视频一起| 91.麻豆视频| 毛葺葺老太做受视频| 国内欧美日韩| 日本韩国欧美国产| 亚洲精品视频三区| 成人国产一区| 欧美在线你懂的| 国产成人无码一二三区视频| av中文在线资源库| 91成人看片片| 91精产国品一二三| 久久久精品区| 欧美一卡2卡三卡4卡5免费| 麻豆国产精品一区| 丝袜美腿一区二区三区动态图| 日韩美女视频一区二区在线观看| 91精品国产自产| 香蕉视频国产精品| 日本久久久久久久久久久| 国产乱人乱偷精品视频| 久久激情综合网| 国产欧美va欧美va香蕉在| 中文字幕91爱爱| 美国毛片一区二区三区| 韩国成人av| 三级在线观看网站| 99视频精品在线| 免费不卡亚洲欧美| 韩国日本一区| 欧美精品少妇一区二区三区| 欧美又黄又嫩大片a级| 亚洲区小说区图片区qvod| 久久av中文字幕| 免费无码毛片一区二区app| 综合五月婷婷| 欧美日韩电影在线观看| 日韩av一二三区| 亚洲一区二区三区高清| 日韩美女主播视频| 人人妻人人澡人人爽人人欧美一区| 国产精品乱人伦一区二区| 国产成人黄色片| 欧美va在线观看| 欧美精品在线视频| 极品蜜桃臀肥臀-x88av| 亚洲精品一区二区在线看| 国产成人精品久久二区二区91| 亚洲成人av网址| 精品制服美女丁香| 99久久99久久| 深夜视频在线免费| 亚洲电影第三页| 国产高潮失禁喷水爽到抽搐 | 中文字幕综合| 日韩欧美一区二区免费| 三级黄色片在线观看| 欧美日韩综合| 2018日韩中文字幕| 中文字幕第31页| 国产亚洲一区二区三区在线观看| 一区二区三区|亚洲午夜| 免费在线国产视频| 在线精品视频一区二区三四| 李宗瑞91在线正在播放| 成人毛片在线| 久久青草精品视频免费观看| 日韩国产成人在线| 国产午夜精品理论片a级大结局| 国产又黄又大又粗视频| 伊人精品一区| 国产精品草莓在线免费观看| 高h放荡受浪受bl| 国产精品污网站| 福利视频一二区| 亚洲毛片在线免费| 久久成人这里只有精品| 精品人妻一区二区三区麻豆91| 久久久久久久久久久黄色| 欧美牲交a欧美牲交aⅴ免费真| 少妇精品久久久一区二区| 欧美激情在线观看视频| 一级黄色大片网站| hitomi一区二区三区精品| 久久久久久久久久网| 91麻豆精品一二三区在线| 欧美巨乳在线观看| 天天干视频在线观看| 色噜噜狠狠成人网p站| 战狼4完整免费观看在线播放版| 精品一二三四在线| 五月天久久狠狠| 欧美伦理91| 欧美本精品男人aⅴ天堂| 日韩成人免费观看| 国产精品女主播av| 日本xxxx免费| 久久精品综合| 成人在线观看毛片| 超碰国产精品一区二页| 亚洲欧美一区二区三区在线| 中文字幕乱码视频| 亚洲综合色区另类av| 亚洲一二三不卡| 亚洲精品乱码| 国产精品对白刺激久久久| 黄视频网站在线| 欧美日韩精品欧美日韩精品一| 成人乱码一区二区三区av| 麻豆极品一区二区三区| 三上悠亚久久精品| 久久一区二区三区电影| 国产精品视频精品| 成年人视频在线观看免费| 色婷婷一区二区三区四区| 欧美深性狂猛ⅹxxx深喉| 在线观看一区| 亚洲一区二区不卡视频| 日本福利一区| 欧洲中文字幕国产精品| 最爽无遮挡行房视频在线| 亚洲天堂色网站| 毛片在线免费播放| 亚洲国产裸拍裸体视频在线观看乱了| 国产真人做爰视频免费| 日本午夜精品一区二区三区电影| 日本亚洲自拍| 男人天堂久久| 欧洲亚洲免费视频| 成人免费高清观看| 日韩网站免费观看| 免费a在线观看| 欧美视频一区二区三区在线观看| 国产 日韩 欧美 成人| 成人av资源在线| 国产成人在线免费看| 女人丝袜激情亚洲| 精品久久久久久乱码天堂| 日韩免费一级| 91精品中国老女人| 超黄网站在线观看| 欧美成人午夜视频| 日韩一级在线播放| 日韩一级视频免费观看在线| 伊人精品一区二区三区| 一本久久综合亚洲鲁鲁五月天| 亚洲黄色一区二区| 亚洲成人黄色影院| 日韩av无码中文字幕| 亚洲成年人影院| 国产真实乱偷精品视频| 亚洲一区二区三区中文字幕| 成年人的黄色片| 大尺度一区二区| 国产二级一片内射视频播放| 成人免费视频播放| 日本美女视频网站| av午夜一区麻豆| 欧美肉大捧一进一出免费视频| 成人晚上爱看视频| 国产一级黄色录像| 久久香蕉国产线看观看99| 亚洲免费av一区| 国产精品一卡| 99视频在线免费播放| 中文欧美日韩| 丝袜老师办公室里做好紧好爽| 在线亚洲免费| 国产精品人人妻人人爽人人牛| 日韩精品一级二级| av女优在线播放| 亚洲少妇在线| 别急慢慢来1978如如2| 另类中文字幕网| 在线播放黄色av| 成人污污视频在线观看| 在线观看av中文字幕| 久久日韩粉嫩一区二区三区| 国产呦小j女精品视频| 国产福利精品导航| 成年女人免费视频| 久久久精品日韩欧美| 欧美午夜激情影院| 亚洲欧美色图小说| 1024在线看片| 亚洲女子a中天字幕| 成年人在线免费看片| 国产精品成人一区二区三区夜夜夜| 青青草视频播放| 国产欧美一区在线| 欧美无人区码suv| 久久久蜜桃精品| 成人一级黄色大片| 亚洲第一成人在线| jizz国产在线| 日韩免费电影网站| 免费看男男www网站入口在线| 日日噜噜噜夜夜爽亚洲精品| 成人爽a毛片免费啪啪动漫| 国产精品草莓在线免费观看| 在线视频亚洲欧美中文| 蜜桃视频在线观看91| 中文字幕免费一区二区三区| heyzo国产| 国产一区二区免费在线| 波多野结衣影院| 亚洲欧美日韩国产综合在线| 国内免费精品视频| 欧美福利视频导航| 日韩精品123| 日韩精品亚洲视频| 五月婷婷免费视频| 亚洲黄色在线看| 污污网站在线免费观看| 最近免费中文字幕视频2019| av大片在线看| 午夜精品久久久久久久99热| 欧美成人一二区| 久久精品中文字幕一区二区三区 | 操人在线观看| 久久久免费高清电视剧观看| 黄色精品视频| 精品日本一区二区三区在线观看| 天天插综合网| 黄色一级片av| 日本视频一区二区| 亚洲天堂成人av| 亚洲午夜电影在线观看| 国产又粗又猛又爽又黄的| 亚洲欧洲激情在线| www.视频在线.com| 97精品国产97久久久久久| 欧美h版在线观看| 亚洲午夜精品一区二区| 久久久精品午夜少妇| 亚洲男女在线观看| 亚洲激情一二三区| 国产女人高潮时对白| 日韩久久免费av| 日本福利在线| 欧美区二区三区| 高清在线一区二区| 亚洲欧美日韩另类精品一区二区三区 | 狠狠色狠狠色综合系列| 九九九视频在线观看| 欧美在线色视频| 成人全视频高清免费观看| 青青在线视频一区二区三区| 爽爽窝窝午夜精品一区二区| 女人和拘做爰正片视频| av一区二区久久| 亚洲精品www久久久久久| 亚洲成人黄色网| 女厕盗摄一区二区三区| 精品国产一区二区三| 一本色道88久久加勒比精品| 中文字幕乱码在线| 欧美日韩免费一区| 中文字幕一区二区三区四区免费看| 亚洲另类欧美自拍| 亚洲wwww| 成人毛片网站| 国产综合激情| 国产精品久久久久久久无码| 精品久久久免费| 国产男男gay体育生网站| 波霸ol色综合久久| 欧美经典一区| 野外做受又硬又粗又大视频√| 成人av在线网| 9i精品福利一区二区三区| 国产亚洲精品久久久久久牛牛| 电影一区二区| 男插女免费视频| 老司机免费视频久久| 亚洲欧洲国产视频| 亚洲成人综合在线| 欧美黄色小说| 国产女人18毛片水18精品| 欧美黄色aaaa| 尤物国产在线观看| 久久先锋影音av| 最近中文字幕在线观看视频| 亚洲精品99久久久久中文字幕| 亚洲一级少妇| 国产激情美女久久久久久吹潮| 在线观看不卡| 亚洲综合网在线观看| 欧美放荡的少妇| 国产网红在线观看| 快播亚洲色图| 久久99九九99精品| 国产乱码久久久久久| 亚洲色图第三页| 精品国产一区二区三区2021| 人妻少妇精品无码专区二区| 国产欧美一区二区三区网站| 国产乱人乱偷精品视频a人人澡| 午夜精品一区二区三区视频免费看| 久久91麻豆精品一区| 污免费在线观看| 亚洲视频免费看| 天天干视频在线观看| 91精品视频免费| 亚洲欧美日韩国产一区二区| 欧美xxxx×黑人性爽| 欧美日本视频在线| 白浆在线视频| 六月婷婷激情网| 国产午夜精品美女毛片视频| 黑人乱码一区二区三区av| 91精品国产自产在线观看永久| 日韩精品不卡一区二区|