Css權威指南(4th茬故,第四版中文翻譯)-1.CSS和Documents

Cascading Style Sheets(CSS)對于未document添加樣式是一個強有力的工具,而且已經(jīng)滲透到web開發(fā)的各個角落蚁鳖。舉幾個例子磺芭,基于Gecko的瀏覽器使用CSS來支持自己的chrome瀏覽器渲染,很多RSS的客戶端也支持用戶自定義feeds和feed entries的CSS樣式醉箕,另外很多即時通訊的客戶端也利用CSS來生成他們的聊天窗口钾腺。


web樣式的簡史

CSS首次被發(fā)布是在1994年,那時前端也才剛剛興起讥裤。瀏覽器將所有樣式的任務都交給了用戶-the Presentation preferences in Mosaic


Elements

待添加


多種方式連接CSS與HTML

待添加


Stylesheet 內容

待添加


Media Queries媒體查詢

最基本的媒體查詢形式就是media types放棒,首次是在CSS2被引入。下面就列舉下不同類型的媒體media:

  • all: 針對所有媒體己英;
  • print: 只有當為用戶打印文檔或顯示預覽時候使用间螟;
  • screen: 在電腦等屏幕上呈現(xiàn)時使用,所有的web瀏覽器都屬于屏幕介質

如果有多個媒體類型需要設置,只需要用逗號分隔厢破,下面舉例說明同時在scree和print下的樣式:

<link type="text/css" href="frobozz.css" media="screen, print"> 
<style type="text/css" media="screen, print">
  @import url(frobozz.css) screen, print; 
  @media screen, print {...}
</style>

當然樣式的特征屬性還不止以上這點邮府,用戶還可以添加特征描述符(feature-specific descriptors),例如屏幕分辨率的值或是給定介質的顏色深度溉奕。

媒體描述符

其實只要是media屬性可以設置的地方就可以設置對應的描述符褂傀,下面的例子就展示如何實現(xiàn):

// 添加描述符前
<link href="print-color.css" type="text/css" media="print and (color)" rel="stylesheet">
    @import url(print-color.css) print and (color);
// 添加描述符后
<link href="print-color.css" type="text/css"
media="print and (color), screen and (color-depth: 8)" rel="stylesheet">
    @import url(print-color.css) print and (color), screen and (color-depth: 8);

上面例子中任意一個媒體查詢?yōu)閠rue,則下面的樣式就會被應用加勤。上面的@import print-color.css將會在一個彩色的打印機上呈現(xiàn)仙辟。如果是一個黑白的打印機,那么兩個query都將是false鳄梅,所以print-color.css就不會應用叠国。同理對屏幕也是一樣的。

每一個媒體查詢都由兩部分組成戴尸,一個media type和一系列的media features粟焊,每個feature都要用括號包含。如果沒有指定media type孙蒙,那么默認為all项棠,所以說下面兩個query是一樣的:

@media all and (min-resolution: 96dpi) {...} 
@media (min-resolution: 96dpi) {...}

一般來說,一個media feature描述符就是一個css中的鍵值對挎峦,不過存在些許的不同香追,很多features不需要設定具體值。所以說針對有顏色的介質可以直接用color屬性坦胶,而針對16位色深的介質就要具體指定為color:16.事實上透典,不帶值的描述符其默認值為true或是false。

而多個feature描述符可以通過下面的邏輯關鍵詞來鏈接顿苇,事實上就以下兩種:

  1. and:邏輯與峭咒,鏈接的所有query都必須為true
  2. not:取反操作,舉個列子not (color) and (orientation: landscape) and (min-device-width: 800px)意思是三個條件都滿足纪岁,計算結果為false凑队。

注意not只能被用在查詢的開頭,用在中間例如(color) and not (min-device-width: 800px)是無效的蜂科。另外注意有些太老的瀏覽器因為無法識別前面加not的查詢就會直接跳過這個樣式顽决。

有些人想是不是還漏了個OR關鍵詞短条,但是在查詢里是沒有OR的导匣,對應的逗號分隔的一系列查詢就等于代替了OR。
還有一個關鍵詞only茸时,這個主要是為了向后兼容用的

  1. only: 只被用來隱藏那些不支持media query的老瀏覽器做兼容贡定,舉例說下,想要在能識別查詢的所有頁面上添加new.css可都,可以這樣寫@import url(new.css) only all缓待。那些太老的瀏覽器看到only就會直接忽略掉這個樣式蚓耽。跟not一樣,only也必須在查詢的開頭設置旋炒。

feature描述符和賭贏的類型

上面的很多例子中我們看到了不少的feature描述符步悠,但還不是全部,下面來看看截止到2017年末的最新的全部描述符吧:

  • width
  • min-width
  • max-width
  • device-width
  • min-device-width
  • max-device-width
  • height
  • min-height
  • max-height
  • device-height
  • min-device-height
  • max-device-height
  • aspect-ratio
  • min-aspect-ratio
  • max-aspect-ratio
  • device-aspect
  • ratio
  • min-device-aspect-ratio
  • max-device-aspect-ratio
  • color
  • min-color
  • max-color
  • color-index
  • min-color-index
  • max-color-index
  • monochrome
  • min-monochrome
  • max-monochrome
  • resolution
  • min-resolution
  • max-resolution
  • orientation
  • scan
  • grid

另外瘫镇,兩個新的值類型被加入鼎兽,它們是:

  • <radio>
  • <resolution>

如何使用它們將在后面的章節(jié)中介紹


Feature Queries

待添加


小結

借助CSS可以完全改變?yōu)g覽器渲染DOM元素的方式。既可以通過設置display屬性來實現(xiàn)铣除,也可以通過多種方式連接css和對應的document谚咬。用戶是永遠不會知道哪些樣式是外部的,哪些是內嵌的尚粘。而外部樣式賦予開發(fā)者將站點所有的信息都統(tǒng)一放到一個地方進行管理择卦,這不僅使得站點的升級和維護相當輕松,而且還因為所有的呈現(xiàn)都從document中移除而節(jié)省了帶寬郎嫁。另外借助@supports()秉继,我們可以對原生CSS做進一步的優(yōu)化。

為了想要完全掌握CSS的威力泽铛,開發(fā)人員需要了解如何將樣式綁定到對應的element中秕噪,而為了完全理解CSS背后的機制,則需要進一步通過下一章的選擇器來深入學習厚宰。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末腌巾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子铲觉,更是在濱河造成了極大的恐慌澈蝙,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撵幽,死亡現(xiàn)場離奇詭異灯荧,居然都是意外死亡,警方通過查閱死者的電腦和手機盐杂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門逗载,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人链烈,你說我怎么就攤上這事厉斟。” “怎么了强衡?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵擦秽,是天一觀的道長。 經(jīng)常有香客問我,道長感挥,這世上最難降的妖魔是什么缩搅? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮触幼,結果婚禮上硼瓣,老公的妹妹穿的比我還像新娘。我一直安慰自己置谦,他們只是感情好巨双,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著霉祸,像睡著了一般筑累。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丝蹭,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天慢宗,我揣著相機與錄音,去河邊找鬼奔穿。 笑死镜沽,一個胖子當著我的面吹牛,可吹牛的內容都是我干的贱田。 我是一名探鬼主播缅茉,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼婚瓜,長吁一口氣:“原來是場噩夢啊……” “哼票灰!你這毒婦竟也來了?” 一聲冷哼從身側響起佑淀,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤耗拓,失蹤者是張志新(化名)和其女友劉穎拇颅,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乔询,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡樟插,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了竿刁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片黄锤。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖食拜,靈堂內的尸體忽然破棺而出鸵熟,到底是詐尸還是另有隱情,我是刑警寧澤监婶,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布旅赢,位于F島的核電站,受9級特大地震影響惑惶,放射性物質發(fā)生泄漏煮盼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一带污、第九天 我趴在偏房一處隱蔽的房頂上張望僵控。 院中可真熱鬧,春花似錦鱼冀、人聲如沸报破。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽充易。三九已至,卻和暖如春荸型,著一層夾襖步出監(jiān)牢的瞬間盹靴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工瑞妇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稿静,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓辕狰,卻偏偏與公主長得像改备,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蔓倍,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348