聲明: 本文編譯自 Ulysses Style Sheets Reference , 本人文科生,計(jì)算機(jī)術(shù)語(yǔ)不懂,因?yàn)槭褂?Ulysses,所以編譯出來(lái)自己參考、學(xué)習(xí),勿噴。
什么是樣式?
通過(guò)設(shè)定Ulysses的樣式,可以自定義導(dǎo)出的文本的具體排版樣式。
Ulysses的樣式語(yǔ)法,由樣式類(lèi)別定義,每個(gè)樣式類(lèi)別包含兩部分:樣式選項(xiàng),樣式設(shè)置。(A style class consists of a style selector and some style settings .)如:
inline-strong {
font-family: "Cochin"
font-weight: bold
}
也可以寫(xiě)成:
inline-strong { font-family: "Cochin"; font-weight: bold; }
其中 inline-strong 是樣式選項(xiàng)。
樣式選項(xiàng)
樣式選項(xiàng)又分兩種,一種就是普通的關(guān)于某一選項(xiàng),比如 inline-strong 或 heading-1,還有一種是關(guān)于某類(lèi)選項(xiàng),比如 list-all ,它就包含了所有的 list 選項(xiàng)——有序列表和無(wú)序列表。又 heading-all ,就包含了所有的標(biāo)題。都有哪些選項(xiàng),具體參見(jiàn):Ulysses Style Sheets Reference 。
選項(xiàng)之間的關(guān)聯(lián)
選項(xiàng)之間可以有四種關(guān)聯(lián),如下:
| 關(guān)聯(lián) | 舉例 | 說(shuō)明 |
|---|---|---|
| 獨(dú)立選項(xiàng) | strong | 所有符合 strong 選項(xiàng)的內(nèi)容 |
| 主項(xiàng)+輔項(xiàng) | heading1 + all-paragraphs | 緊跟在主項(xiàng) heading1 之后的輔項(xiàng) all-paragraphs的內(nèi)容 |
| 父項(xiàng) 子項(xiàng) | area-footnotes image | 在父項(xiàng) area-footnotes 嵌套范圍之內(nèi),任何位置的子項(xiàng) image 的內(nèi)容 |
| 父項(xiàng) > 子項(xiàng) | orderedList > unorderedList | 在父項(xiàng) orderedList 嵌套范圍之內(nèi),緊跟其后的子項(xiàng) unorderedList 的內(nèi)容 |
運(yùn)用這些關(guān)聯(lián),可以靈活地為特定位置的內(nèi)容定義特殊樣式。
偽類(lèi)別
偽類(lèi)同樣可以實(shí)現(xiàn)特定位置內(nèi)容的樣式。
| 偽類(lèi)名稱(chēng) | 適用選項(xiàng) | 說(shuō)明 |
|---|---|---|
| :first-page | Headers, footers | 文檔第1頁(yè)的天頭或地腳兩個(gè)位置 |
| :left-page | Headers, footers | 文檔左側(cè)頁(yè)面的天頭或地腳 |
| :right-page | Headers , footers | 文檔右側(cè)頁(yè)面的天頭或地腳 |
| :anchor | area-footnotes | 腳注區(qū)域的腳標(biāo)的樣式,默認(rèn)為上角標(biāo) |
| :first | Inline, Headers, footers, area-footnotes, Media, Footnotes, Paragraph, Divider, Block, List, List enumerator, Technical | 父項(xiàng)的第1個(gè)子項(xiàng) |
| :last | Inline, Headers, footers, area-footnotes, Media, Footnotes, Paragraph, Divider, Block, List, List enumerator, Technical | 父項(xiàng)的最后1個(gè)子項(xiàng) |
| :anchor | Footnotes | 腳注的編碼數(shù)字 |
| :enumerator | List | 列表的編碼數(shù)字或符號(hào) |
順序
有時(shí)候,同一項(xiàng)內(nèi)容,有幾個(gè)選項(xiàng)都定義了它的樣式。如:
list-all {
margin-top: 5pt
margin-left: 10pt
}
list-ordered {
margin-left: 20pt
}
defaults {
font-size: 14pt
}
所以它的樣式會(huì)按定義的順序來(lái)實(shí)現(xiàn)。上例中,有序列表中的內(nèi)容,會(huì)先實(shí)現(xiàn) list-all ,然后是 list-ordered ,最后是 defaults。
margin-top: 5pt // from list-all
margin-left: 20pt // from list-ordered
font-size: 14pt // from defaults
繼承
一個(gè)樣式嵌套在另一個(gè)樣式當(dāng)中的時(shí)候,內(nèi)層的內(nèi)容將繼承外層的格式。比如,在塊引用當(dāng)中有一個(gè)一級(jí)標(biāo)題,一級(jí)標(biāo)題中又有行內(nèi)強(qiáng)調(diào):
block-quote {
font-family: "Cochin"
font-slant: italic
}
heading-1 {
font-family: "Futura"
font-size: 24pt
}
inline-strong {
font-weight: bold
}
在這種情況下,運(yùn)用了行內(nèi)強(qiáng)調(diào)的文字,其格式為:
font-family: "Futura" // heading-1 overwrites the font-family of block-quote
font-slant: italic // Inherited form block-quote
font-size: 24pt // Set by heading-1
font-weight: bold // Set by inline-strong
預(yù)設(shè)組件
有些樣式會(huì)用到一些相同的設(shè)置,這時(shí)候,就可以把這些需要用到的相同的設(shè)置預(yù)設(shè)成一個(gè)組件,然后在用到這些設(shè)置的樣式當(dāng)中進(jìn)行引用就可以了,比如:
@general-code-style {
font-family: "Courier"
font-size: 12pt
}
inline-code : @general-code-style {
color: #0000ff
}
block-code : @general-code-style {
color: #ffffff
background-color: #0000ff
}
而且一個(gè)樣式還可以引用多個(gè)組件,語(yǔ)法如下:
some-style : @first-mixin, @second-mixin, @third-mixin {
}
怎樣對(duì)樣式進(jìn)行設(shè)置?
樣式設(shè)置,又包括兩部分,設(shè)置樣式的某類(lèi)屬性,以及將這一屬性設(shè)定為某個(gè)值。如:
inline-strong {
font-weight: bold;
}
font-weight 就是字體的粗細(xì)屬性,這里設(shè)定為粗體 bold。
屬性值
不同的屬性,對(duì)應(yīng)的屬性值是不同的。類(lèi)別如下:
| 值的類(lèi)別 | 舉例 | 說(shuō)明 |
|---|---|---|
| 泊林值 | YES,NO,true,false | 二選一 |
| 數(shù)值 | -3.141 | 就是普通的十進(jìn)位數(shù)字,正負(fù)都可以 |
| 長(zhǎng)度 | 5pt,10cm,30%,4em | 長(zhǎng)度可以用字體的點(diǎn)數(shù)pt,可以是常用的 mm,cm,in 之類(lèi),還有一些特別的,如 en,ex,% 等。em 是指字符數(shù)。 |
| 字符串 | "Arial" | 字體名稱(chēng)一類(lèi),或是自定義的文字,可以包含空格 |
| 符號(hào) | bold,italic | 根據(jù)特定的樣式設(shè)置而定 |
| 顏色值 | #ff0000,rgb(255,0,0) | RGB顏色值,可以有兩種寫(xiě)法 |
| 數(shù)列 | [5pt, 3pt, 2pt] | 根據(jù)特定的樣式設(shè)置而定 |
表達(dá)式
某些值是可以進(jìn)行四則運(yùn)算的,比如長(zhǎng)度值:
$base-size = 12pt
heading-1 {
font-size: $base-size * 2
}
heading-2 {
font-size: $base-size * 0.5
}
變量
像上面講的預(yù)設(shè)組件一樣,可以預(yù)設(shè)一些變量,后面的設(shè)定就可以在變量基礎(chǔ)上進(jìn)行四則運(yùn)算來(lái)實(shí)現(xiàn)設(shè)置,如:
$base-size = 12pt
$heading-size = $base-size * 2
運(yùn)算
四則運(yùn)算也是可以嵌套的,如:
$some-variable = 4 * (5 / (2 + 3))
當(dāng)然,并不是所有的屬性值都可以進(jìn)行四則運(yùn)算。具體見(jiàn)下表:
| 左側(cè)值 | 右側(cè)值 | 允許的運(yùn)算 |
|---|---|---|
| Number | Number | +, -, *, / |
| Length | Number | *, / |
| Number | Length | * |
| Color | Number | *, / |
| Number | Color | * |
| Length | Length | +, - |
| Color | Color | +, - |