Ulysses 樣式語(yǔ)法基礎(chǔ)

聲明: 本文編譯自 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-strongheading-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 +, -
最后編輯于
?著作權(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)容

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