[草稿] CSS Reset 中應該處理那些元素呢?
目前前端開發比較趨向於標準化,比如都要處理一下 body 的 padding 和 margin 好讓不同的瀏覽器都達到意向的顯示效果,又比如字型的處理,中文比較多是用雅黑,可是這個不是所有系統都支援的(MacOS 10% 的市場不要了嗎?那也是大概1億左右的使用者呀!Linux?也有2~3千萬的使用者喲),不同的系統還要設定不同的字型,要讓每個系統都有比較好的表現,字型也是應該要注意的。
本篇文章就來整理一下 CSS 的 Reset 中都有哪些內容,好讓你的開發國際標準化。
1. padding 與 margin
觀察了幾大公司中 CSS 的 reset 內容一般都會處理到這些元素(我把都有涉及到的整理出來):
body,ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset{margin:0;padding:0;}
其他的設定包括:
div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,blockquote,p{padding:0; margin:0;}
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0}
看上去涉及到的元素還蠻多的,有人會說為什麼不用 * {margin:0;padding:0;}
呢?這樣不是更加乾淨?這個增加瀏覽器的工作量,所以一般不這麼設定。當然,你懶的時候可以這麼搞下,或者測試的時候,不過實際產品,還是要盡善盡美的。
2. 字型(Font-Family)
字型不僅僅是因為不同系統的相容問題,不同國家可能也有不同的字型標準,除了標準的 Arial 作為英文公用字型外,其他國家,比如中國是雅黑,同一時期日本則推出了類似的字型明瞭體(Meiryo),所以有跨國業務的網站要注意啦。
我這裡整理了一些一下,如下:
body, html {font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', '黑體', '宋體', 'Hiragino Sans GB', 'Hiragino Sans GB W3', Meiryo, 'Helvetica Neue', Helvetica, 'Lucida Grande', Arial, 'WenQuanYi Micro Hei', sans-serif;}
看不懂?好吧,我來解釋一下:
'Microsoft YaHei UI', 'Microsoft YaHei', '黑體', '宋體'
這幾個是目前流行的中文字型。
Microsoft YaHei UI 是 2011 年推出的補充字型,而 Microsoft YaHei 是 2009 年推出的字型[via],所以 UI 字型應該優先。
黑體是比較傳統的類似雅黑的字型,最早是在 Window XP 的時候出現的。有一種說法,其實傳統的黑體也是有襯字型(serif, 而不是 san-serif),不過襯邊不明顯(就帶點小喇叭),所以歐美人把黑體列為了無襯字型(sans-serif)[via]。那麼比黑體更早之前用什麼字型?就是宋體啦。
'Hiragino Sans GB', 'Hiragino Sans GB W3'
這幾種字型是 MacOS 中使用的亞洲字型(其實漢語字型基本上包含中日韓;日韓字元,也就幾千個而已; 真要學日韓語,也不見得難事,每天看100個字元,1個月就學會了,每天看10個字元,也只需要1年)
Meiryo
日文中的明瞭體,前面說過的,和雅黑同一時期推出的。
'Helvetica Neue', Helvetica, 'Lucida Grande', Arial
'Helvetica Neue', Helvetica
是歐美中類似的黑體,Lucida Grande 是 MacOS X 中的黑體, Arial 是經典的無襯體(換句話說是過時的,不過為了比較好的相容處理,還是要放上去)。
'WenQuanYi Micro Hei'
這個是 Linux 下的中文字型,文泉驛,用這個搞定 2% 的系統市場份額(當然,Linux 下其實都未必有文泉驛的,這個只是主流 Linux 系統上的中文漢字字型,比如 Ubuntu)。
sans-serif
sans-serif 是系統無襯字型,實際上是一個變數,換句話說,如果一個系統中沒有前面提到的字型,那麼就讀取系統中定義好的無襯體。可能有人會說,那麼為什麼不直接用 sans-serif 就好了?其實不直接用 sans-serif 是有原因的。在 Windows 預設下,sans-serif 是 Arial,那麼 Arial 不支援中文漢字呀,所以就用系統預設的 宋體
作為顯示方式,可是這個是 serif 字型呀,這樣介面上的文字就不搭調了。可能有會說,作業系統真夠笨的,為什麼不盡善盡美的設定好一些呢?好吧,這個解釋起來有點長,主要有這幾個原因:
歷史性因素導致的,作業系統剛剛開始的推出時候就是用宋體,就繼續用唄,為什麼要修改呢?萬一出什麼問題(比如客戶抱怨,影響了市場佔有率之類的),誰來負責呢?
另外畢竟作業系統都是歐美人開發的,他們自然以歐美為中心,為什麼為亞洲人投入那麼多精力?況且他們不一定對亞洲文字有一定的瞭解。
可能是最關鍵的,不像歐美文字就26個字母,亞洲文字都是數千來計算,完整的字元達到數十萬,工作量巨大,自然願意投入的資源和關注度相對也少一些;對他們來說,一想到國際化文書處理就頭大。
話說回來,基本上完成了亞歐的文字相容,全球90%以上的經濟體的部署就搞定了,這麼重大的國際問題,處理起來就這麼簡單。
相關文章
- 熱點塊處理是首先應該處理物件呢?還是優化sql。物件優化SQL
- 關於CSS Reset那些事(3):架構CSS基礎庫CSS架構
- 關於CSS Reset那些事(2):Normalize.css 原始碼解讀CSSORM原始碼
- 關於CSS Reset 那些事(三)之 Normalize-zh.css 出爐CSSORM
- Java中處理SocketException: Connection reset”異常的方法JavaException
- css resetCSS
- 關於CSS Reset那些事(1):歷史演變與Normalize.cssCSSORM
- 草稿 9206 1128需處理
- 關於CSS Reset 那些事(一)之 歷史演變與Normalize.cssCSSORM
- css-resetCSS
- 爬蟲抓了那麼多的資料,該如何處理呢?爬蟲
- SHELL技巧:處理檔名中的那些空格
- airflow 進行後端大資料中ETL處理(草稿)AI後端大資料
- 如何處理內聯元素中的空隙(譯)
- CSS 前處理器中的迴圈CSS
- #求教# 公共less模組中的背景圖片地址應該怎麼處理?
- gRPC 中的異常該如何處理?RPC
- 供應鏈攻擊是什麼?應該如何處理?
- [草稿]關於網頁全屏背景圖片的處理方案網頁
- css Reset程式碼分享CSS
- CSS-reset&規範CSS
- 糟糕,在錯誤的分支開發了新功能,該怎麼處理呢?
- 工廠出產流程中的這些問題,應該怎麼處理?
- LINUX中埠是否被佔用應該如何檢視呢?Linux
- CSS初始化-KISSY CSS Reset 1.0CSS
- 保稅品怎麼處理呢?
- 測試應該怎麼學 Java 呢Java
- CSS 的空格處理CSS
- CSS 前處理器CSS
- CSS 小數 處理CSS
- Flask 應用中的 URL 處理Flask
- 許可權系統設計中,組織機構應該怎麼處理?
- 最簡單的css resetCSS
- CSS3 counter-resetCSSS3
- Jquery中為後生成或插入的Html元素先設定響應事件處理方法jQueryHTML事件
- CSS Tricks - 你應該知道的 CSS 技巧CSS
- 現代 CSS 解決方案:Modern CSS ResetCSS
- reset database的用處Database