網(wǎng)頁(yè)設(shè)計(jì)中的生成引號(hào)

生成內(nèi)容有一種特殊形式,即引號(hào),網(wǎng)站建設(shè)提供了一種有效的方式來(lái)管理引號(hào)及其嵌套行為。由于提供了open-quote等成對(duì)的content值以及屬性quotes,使得生成引號(hào)的管理成為可能。

quotes

值:[<string><string>]+ | none | inherit

初始值:取決于具體的用戶代理

應(yīng)用于:所有元素

繼承性:有

計(jì)算值:根據(jù)指定確定

研究值的語(yǔ)法時(shí)可以發(fā)現(xiàn),除了關(guān)鍵字none和inherit外,唯一合法的值是一對(duì)或多對(duì)串。在一對(duì)串中,前一個(gè)串定義了開(kāi)始引號(hào)(open-quote),第二個(gè)串定義了結(jié)束引號(hào)(close-quote)。因此,以下兩個(gè)聲明中僅第一個(gè)合法:

quotes:'"'"'"./* valid */

quotes:'"';/* NOT VALID */

串本身是引號(hào)時(shí),也可以用引號(hào)將其包圍,第一個(gè)規(guī)則就展示了這樣一種方法。雙引號(hào)可以由單引號(hào)包圍,反之亦然。

下面來(lái)看一個(gè)簡(jiǎn)單的例子。假設(shè)創(chuàng)建了一個(gè)XML格式,存儲(chǔ)最常用的引用列表。以下是列表中的一項(xiàng):

<quotatidn>

<quote>I hate quotations.</quote>

<quotee>Ralph Waldo Eraerson</quotee>

</quotation>

要用一種有意義的方法表示數(shù)據(jù),網(wǎng)頁(yè)設(shè)計(jì)人員可以采用以下規(guī)則,其結(jié)果見(jiàn)圖12-20所示:

值open-quote和close-quote用于插入合適的引號(hào)符號(hào)(因?yàn)椴煌Z(yǔ)言有不同的引號(hào))。它們使用quotes值來(lái)確定如何工作。因此,quotation以一個(gè)雙引號(hào)開(kāi)始,并以一個(gè)雙引號(hào)結(jié)束。

如果想使用“彎引號(hào)”而不是普通的直引號(hào)(這在大多數(shù)打印媒體中很常見(jiàn)),quote 規(guī)則要寫(xiě)作:

quote {quotes:'\201C''\201D';}

這里使用了“彎引號(hào)”的十六進(jìn)制Unicode值,如果應(yīng)用到前面的quotation, Emerson 的引用會(huì)包圍在彎引號(hào)中,而不像圖12-20中所示那樣包圍在直引號(hào)中。

利用quotes,只要網(wǎng)頁(yè)設(shè)計(jì)人員愿意,可以定義任意多層嵌套引用模式。例如,在英語(yǔ)中,一種常用的做法是先以雙引號(hào)開(kāi)頭,在其中嵌套的引用使用單引號(hào)。通過(guò)以下規(guī)則,就可以利用“彎引號(hào)”做到這一點(diǎn):

quotation: display: block;}

quote {quotes:'\201C''\201D''\2018''\2019';}

quote:before, q:before{content: open-quote;}

quote:after, q:after {content: close-quote;}

應(yīng)用到以下標(biāo)記時(shí),這些規(guī)則的效果如圖12-21所示:

<quotation>

<quote> In the beginning, there was nothing. And God said:<q>Let there be light!</q> And there was still nothing, but-you could see it.</quote>

</quotation>

如果引號(hào)的嵌套層次大于已定義的引號(hào)對(duì)數(shù),最后一對(duì)引號(hào)將重用于更深層次的嵌套。因此,如果向圖丨2-21所示的標(biāo)記應(yīng)用以下規(guī)則,內(nèi)層引用將與外層引用一樣使用雙引號(hào):

quote {quotes:'\201C''\201D';}

利用生成引號(hào),還能實(shí)現(xiàn)另外一種常見(jiàn)的排版效果。如果有多段引用文本,通常會(huì)忽略毎一段的結(jié)束引號(hào)(close-quote),而只顯示開(kāi)始引號(hào),只是最后一段例外,可以使用no-close-quote值達(dá)到這個(gè)效果:

blockquote (quotes:'"'  '"' "'" '"' '"' '"';}

blockquote p:before {content: open-guote;}

blockquote p:after {content: no-close-quote;}

利用這個(gè)規(guī)則,每一段的開(kāi)始處會(huì)有一個(gè)雙引號(hào),不過(guò)沒(méi)有結(jié)束引號(hào)。最后一段也是如此,所以如果想為最后一段增加一個(gè)結(jié)束引號(hào),需要為最后一段指定類(lèi)(class),并為其:after內(nèi)容聲明一個(gè)close-quote。

這個(gè)值很重要,因?yàn)檫@樣可以使引用嵌套層次遞而不必真正生成一個(gè)符號(hào)。正因如此,在第三段之前,每個(gè)段落都以一個(gè)雙引號(hào)開(kāi)始,而不是交替使用雙引號(hào)和單引號(hào)。no-close-quote在各段的最后結(jié)束了引用嵌套,因此每一段都從相同的嵌套層次開(kāi)始。

這很重要,正如網(wǎng)站建設(shè)規(guī)范所指出的,"引用深度不依賴于源文檔或格式化結(jié)構(gòu)的嵌套”。換句話說(shuō),開(kāi)始一個(gè)引用層次時(shí),所有元素都有相同的嵌套層次,直到遇到一個(gè)close-quote,此時(shí)引用嵌套層次減1。

為保證完備,還有一個(gè)no-open-quote關(guān)鍵字,其效果與no-close-quote對(duì)稱。這個(gè)關(guān)鍵字會(huì)讓引用嵌套層次增1,但不生成符號(hào)。

網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)咨詢專(zhuān)線:0871-63535511(點(diǎn)擊可一鍵撥號(hào))