声明: 本文编译自 Ulysses Style Sheets Reference , 本人文科生,计算机术语不懂,因为使用 Ulysses,所以编译出来自己参考、学习,勿喷。
什么是样式?
通过设定Ulysses的样式,可以自定义导出的文本的具体排版样式。
Ulysses的样式语法,由样式类别定义,每个样式类别包含两部分:样式选项,样式设置。(A style class consists of a style selector and some style settings .)如:
inline-strong {
font-family: "Cochin"
font-weight: bold
}
也可以写成:
inline-strong { font-family: "Cochin"; font-weight: bold; }
其中 inline-strong 是样式选项。
样式选项
样式选项又分两种,一种就是普通的关于某一选项,比如 inline-strong 或 heading-1,还有一种是关于某类选项,比如 list-all ,它就包含了所有的 list 选项——有序列表和无序列表。又 heading-all ,就包含了所有的标题。都有哪些选项,具体参见:Ulysses Style Sheets Reference 。
选项之间的关联
选项之间可以有四种关联,如下:
关联 | 举例 | 说明 |
---|---|---|
独立选项 | strong | 所有符合 strong 选项的内容 |
主项+辅项 | heading1 + all-paragraphs | 紧跟在主项 heading1 之后的辅项 all-paragraphs的内容 |
父项 子项 | area-footnotes image | 在父项 area-footnotes 嵌套范围之内,任何位置的子项 image 的内容 |
父项 > 子项 | orderedList > unorderedList | 在父项 orderedList 嵌套范围之内,紧跟其后的子项 unorderedList 的内容 |
运用这些关联,可以灵活地为特定位置的内容定义特殊样式。
伪类别
伪类同样可以实现特定位置内容的样式。
伪类名称 | 适用选项 | 说明 |
---|---|---|
:first-page | Headers, footers | 文档第1页的天头或地脚两个位置 |
:left-page | Headers, footers | 文档左侧页面的天头或地脚 |
:right-page | Headers , footers | 文档右侧页面的天头或地脚 |
:anchor | area-footnotes | 脚注区域的脚标的样式,默认为上角标 |
:first | Inline, Headers, footers, area-footnotes, Media, Footnotes, Paragraph, Divider, Block, List, List enumerator, Technical | 父项的第1个子项 |
:last | Inline, Headers, footers, area-footnotes, Media, Footnotes, Paragraph, Divider, Block, List, List enumerator, Technical | 父项的最后1个子项 |
:anchor | Footnotes | 脚注的编码数字 |
:enumerator | List | 列表的编码数字或符号 |
顺序
有时候,同一项内容,有几个选项都定义了它的样式。如:
list-all {
margin-top: 5pt
margin-left: 10pt
}
list-ordered {
margin-left: 20pt
}
defaults {
font-size: 14pt
}
所以它的样式会按定义的顺序来实现。上例中,有序列表中的内容,会先实现 list-all ,然后是 list-ordered ,最后是 defaults。
margin-top: 5pt // from list-all
margin-left: 20pt // from list-ordered
font-size: 14pt // from defaults
继承
一个样式嵌套在另一个样式当中的时候,内层的内容将继承外层的格式。比如,在块引用当中有一个一级标题,一级标题中又有行内强调:
block-quote {
font-family: "Cochin"
font-slant: italic
}
heading-1 {
font-family: "Futura"
font-size: 24pt
}
inline-strong {
font-weight: bold
}
在这种情况下,运用了行内强调的文字,其格式为:
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
预设组件
有些样式会用到一些相同的设置,这时候,就可以把这些需要用到的相同的设置预设成一个组件,然后在用到这些设置的样式当中进行引用就可以了,比如:
@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
}
而且一个样式还可以引用多个组件,语法如下:
some-style : @first-mixin, @second-mixin, @third-mixin {
}
怎样对样式进行设置?
样式设置,又包括两部分,设置样式的某类属性,以及将这一属性设定为某个值。如:
inline-strong {
font-weight: bold;
}
font-weight 就是字体的粗细属性,这里设定为粗体 bold。
属性值
不同的属性,对应的属性值是不同的。类别如下:
值的类别 | 举例 | 说明 |
---|---|---|
泊林值 | YES,NO,true,false | 二选一 |
数值 | -3.141 | 就是普通的十进位数字,正负都可以 |
长度 | 5pt,10cm,30%,4em | 长度可以用字体的点数pt,可以是常用的 mm,cm,in 之类,还有一些特别的,如 en,ex,% 等。em 是指字符数。 |
字符串 | "Arial" | 字体名称一类,或是自定义的文字,可以包含空格 |
符号 | bold,italic | 根据特定的样式设置而定 |
颜色值 | #ff0000,rgb(255,0,0) | RGB颜色值,可以有两种写法 |
数列 | [5pt, 3pt, 2pt] | 根据特定的样式设置而定 |
表达式
某些值是可以进行四则运算的,比如长度值:
$base-size = 12pt
heading-1 {
font-size: $base-size * 2
}
heading-2 {
font-size: $base-size * 0.5
}
变量
像上面讲的预设组件一样,可以预设一些变量,后面的设定就可以在变量基础上进行四则运算来实现设置,如:
$base-size = 12pt
$heading-size = $base-size * 2
运算
四则运算也是可以嵌套的,如:
$some-variable = 4 * (5 / (2 + 3))
当然,并不是所有的属性值都可以进行四则运算。具体见下表:
左侧值 | 右侧值 | 允许的运算 |
---|---|---|
Number | Number | +, -, *, / |
Length | Number | *, / |
Number | Length | * |
Color | Number | *, / |
Number | Color | * |
Length | Length | +, - |
Color | Color | +, - |