重識(shí) Cascading Style Cheets

Cascading Style Sheets (CSS) 是一門(mén)指定文檔該如何呈現(xiàn)給用戶的語(yǔ)言。

為什么要使用CSS

css 幫助我們 將文檔的內(nèi)容和如何展示內(nèi)容的細(xì)節(jié)分離開(kāi)來(lái) ,以便我們能

  • 避免重復(fù)

  • 如您的網(wǎng)站可能有成千上萬(wàn)的頁(yè)面外觀相似。使用CSS,您可以將樣式信息存儲(chǔ)在公共的文件中以供所有的頁(yè)面共用。

  • 更容易維護(hù)

  • 當(dāng)用戶顯示頁(yè)面時(shí),用戶的瀏覽器將樣式信息和頁(yè)面內(nèi)容一同加載。

  • 為不同的目的使用不同樣式而內(nèi)容相同

  • 當(dāng)用戶打印頁(yè)面時(shí),您可以提供不同的樣式信息,以便于打印出來(lái)的頁(yè)面更易于閱讀。

CSS 如何工作的

瀏覽器在展現(xiàn)一個(gè)文檔的時(shí)候,必須要把文檔內(nèi)容和相應(yīng)的樣式信息結(jié)合起來(lái)展示。 這個(gè)處理過(guò)程一般分兩個(gè)階段:

  • 瀏覽器先將標(biāo)記語(yǔ)言和CSS轉(zhuǎn)換成DOM (文檔對(duì)象模型)結(jié)構(gòu)。 這時(shí)DOM 就代表了電腦內(nèi)存中的相應(yīng)文檔,因?yàn)樗呀?jīng)融合了文檔內(nèi)容和相應(yīng)的樣式表。
  • 最后瀏覽器把 DOM的內(nèi)容展示出來(lái)。

層疊和繼承

一個(gè)元素的樣式,可以通過(guò)多種方式來(lái)定義,而多種定義方式之間通過(guò)復(fù)雜的影響關(guān)系決定了元素的最終樣式。這種復(fù)雜既造就了CSS的強(qiáng)大,也導(dǎo)致CSS顯得如此“混亂”而且難以調(diào)試。
對(duì)于層疊來(lái)說(shuō),共有三種主要的樣式來(lái)源:

  • 瀏覽器對(duì)HTML定義的默認(rèn)樣式。

  • 用戶定義的樣式。

  • 開(kāi)發(fā)者定義的樣式,可以有三種形式:

    • 定義在外部文件(外鏈樣式):本教程中案例主要是通過(guò)這種形式定義樣式。
    • 在頁(yè)面的頭部定義(內(nèi)聯(lián)樣式):通過(guò)這種形式定義的樣式只在本頁(yè)面內(nèi)生效。
    • 定義在特定的元素身上(行內(nèi)樣式):這種形式多用于測(cè)試,可維護(hù)性較差。

掌握CSS選擇器的含義和用法

除了標(biāo)簽名稱,你還可以在選擇器中使用屬性值。這樣你就可以更具體的描述你的規(guī)則.

  • 類選擇器

  • ID 選擇器

  • 偽類選擇器

    • :link
    • :visited
    • :active
    • :hover
    • :focus
    • :first-child
    • :nth-child
    • :nth-last-child
    • :nth-of-type
    • :first-of-type
    • :last-of-type
    • :empty
    • :target
    • :checked
    • :enabled
    • :disabled
  • 基于關(guān)系的選擇器

    • A E 元素A的任一后代元素E (后代節(jié)點(diǎn)指A的子節(jié)點(diǎn),子節(jié)點(diǎn)的子節(jié)點(diǎn),以此類推)
    • A > E 元素A的任一子元素E(也就是直系后代)
    • E:first-child 任一是其父母結(jié)點(diǎn)的第一個(gè)子節(jié)點(diǎn)的元素E
    • B + E 元素B的任一下一個(gè)兄弟元素E
    • B ~ E B元素后面的擁有共同父元素的兄弟元素E

可以通過(guò)添加空白字符和注釋來(lái)提高樣式表的可讀性, 也可以把不同的選擇器放到一組中來(lái),這樣同一樣式可以應(yīng)用到這一組中。

實(shí)踐并掌握CSS的顏色、字體、背景、邊框、盒模型、簡(jiǎn)單布局等樣式的定義方式

文本樣式

font

p {font: italic 75%/125% "Comic Sans MS", cursive;}

這條規(guī)則定義了字體的幾個(gè)屬性,使整個(gè)段落文本都變成斜體。

字體大小設(shè)置為每個(gè)段落父元素字體大小的3/4,行高設(shè)置為125%(比常規(guī)的間隔稍大一些)。

文本字體設(shè)置為 Comic Sans MS,假如該字體不被瀏覽器支持則使用默認(rèn)字體:cursive。

這條規(guī)則還把bold和small-caps這些效果給去掉了(設(shè)置它們的值為normal)。

特別的:

  • 使用font-style: italic;指定文本為斜體;

  • 使用 font-variant: small-caps;指定文本為小型大寫(xiě)字母;

圖片內(nèi)容

特別的:
可以通過(guò)將content 屬性值設(shè)置為某個(gè)圖片的URL,可以將圖片插到元素的前面或后面。

a.glossary::after {content: " " url("../images/glossary-icon.gif");}

列表

下面的規(guī)則為不同類的列表項(xiàng)指定了不同的標(biāo)記:

li.open {list-style: circle;}
li.closed {list-style: disc;}

特別的:

counter 計(jì)數(shù)器

可以用計(jì)數(shù)器來(lái)計(jì)數(shù)任何元素,不僅是列表元素。比如,在某些文檔中你可能想計(jì)數(shù)標(biāo)題和段落。

要想計(jì)數(shù),你必須定義一個(gè)計(jì)數(shù)器。

在計(jì)數(shù)開(kāi)始前的某個(gè)元素上,設(shè)置 counter-reset屬性以重置計(jì)數(shù)器。被計(jì)數(shù)元素的父節(jié)點(diǎn)是一個(gè)不錯(cuò)的選擇。當(dāng)然,任何出現(xiàn)在被計(jì)數(shù)元素前面的元素都可以。

設(shè)置每個(gè)需要計(jì)數(shù)的元素的counter-increment 屬性為你的計(jì)數(shù)器名。

通過(guò)為選擇器增加 :before 或 :after 并設(shè)置 content 屬性來(lái)顯示計(jì)數(shù)器。 (如上一節(jié)所示, 內(nèi)容).

在content屬性的值中設(shè)置 counter(),在括號(hào)內(nèi)填上計(jì)數(shù)器的名字??蛇x的是設(shè)置計(jì)數(shù)器類型。其類型和前面一節(jié) 有序列表 中相同。

正常情況下,顯示計(jì)數(shù)器的元素也會(huì)遞增計(jì)數(shù)器。

h3.numbered {counter-reset: mynum;}
p.numbered:before { content: counter(mynum) ": "; counter-increment: mynum; font-weight: bold;}
}

盒模型

外邊距-邊框-內(nèi)邊距-內(nèi)容

盒模型目前有 border-box content-box 兩種,前者把邊框的寬度也算在 width中,后者則不算

媒體

之前曾經(jīng)遇到定義打印時(shí)候需要隱藏頁(yè)面部分元素的問(wèn)題,這個(gè)時(shí)候才知道 style標(biāo)簽有media 屬性以及CSS的 @media 語(yǔ)法

為了網(wǎng)頁(yè)在被打印的時(shí)候去掉無(wú)用的信息,我們?cè)跇邮奖碇屑右粭l適配規(guī)則,使導(dǎo)航區(qū)域在打印時(shí)是被隱藏起來(lái)的:

@media print { \#nav-area {display: none;} }

一些常見(jiàn)的媒介類型:

  • screen 彩色計(jì)算機(jī)顯示
  • print 打印(分頁(yè)式媒體)
  • projection 投影
  • all 所有媒體 (默認(rèn))

拓展鏈接

重識(shí) Cascading Style Cheets

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,167評(píng)論 1 92
  • 1995年10月我生了屬豬的寶仙女,可是,問(wèn)題來(lái)了,誰(shuí)幫我?guī)Ш⒆友??這時(shí)候,天上掉餡餅,整好砸在我孩子姑姑的...
    一霏姐姐學(xué)寫(xiě)作閱讀 279評(píng)論 0 0
  • 雞蛋3只(普通大?。?低筋面粉150克 糖適量(我做的感覺(jué)太甜了根據(jù)自己口味放) 純牛奶一瓶 黃油40克 篩網(wǎng)(必...
    如實(shí)對(duì)境閱讀 283評(píng)論 0 1
  • 1.About Apple Pay Apple Pay是一種移動(dòng)支付技術(shù),讓使用者把它們對(duì)真實(shí)的物品和服務(wù)的支付信...
    NEWWORLD閱讀 5,313評(píng)論 14 51

友情鏈接更多精彩內(nèi)容