CSS值类型

此页简要概述了此项目使用的CSS类型。请注意,这些可以重复,如中所述 多值属性 .

数字

数值由数字组成,或由测量值注释的数字组成。一般来说,在大多数情况下使用测量注释是明智的,以避免歧义,并防止将来对默认单位进行可能的更改。

目前,支持的单位包括:

  • 长度

    • px 像素

    • m

    • ft

  • 角度

    • deg

  • 比率

    • % 百分比

当使用表达式代替数值时,假定为测量类型列出的第一个单位。

由于CSS模块在渲染之前将样式转换为SLD,因此其度量单位模型与SLD模型相关联。在实践中,这意味着对于任何特定的符号来说,只有一个度量单位适用于样式。因此,CSS模块从每个符号类型的一个特殊属性中提取度量单位。下面列出了这些类型供参考:

  • fill-size 确定多边形符号的度量单位(但这并不重要,因为它是与填充关联的唯一度量单位)

  • stroke-width 确定线条符号的度量单位

  • mark-size 确定点符号的度量单位

  • font-size 确定文本符号和关联光环的度量单位

字符串

字符串值由一小段文本组成。例如,字符串可以是用于道路子集的文字标签:

[lanes>20] {
        label: "Serious Freaking Highway";
}

Strings can be enclosed in either single or double quotes. It's easiest to simply use whichever type of quotes are not in your string value, but you can escape quote characters by prefixing them with a backslash \. Backslash characters themselves must also be prefixed. For example, '\\\'' is a string value consisting of a single backslash followed by a single quote character.

标签

虽然标签实际上不是一种特殊的值类型,但它们值得特别提及,因为标签比其他CSS值更可能需要特殊的字符串操作。

如果标签是一个简单的字符串值,那么它的工作方式与任何其他字符串一样:

[lanes > 20] {
    label: "Serious Freaking Highway";
}

但是,如果一个标签有多个值,则所有这些值都将连接成一个标签:

[lanes > 20] {
   label: "Serious " "Freaking " "Highway";
}

注意这里标签字符串中的空白空间; no blank-space is added 当连接字符串时,因此必须明确表示要将其包括在何处。您还可以在此处将cql表达式与文本字符串值混合:

states {
   label: [STATE_NAME] " (" [STATE_ABBR] ")";
}

备注

这种自动连接目前是一种仅为标签提供的特殊功能。但是,通过使用 strConcat 过滤功能:

* { fill: [strConcat('#', color_hex)]; }

这种形式的连接可用于支持表达式的任何属性。

颜色

颜色值对样式设置相对重要,因此有多种方法可以指定它们。

格式

解释

#RRGGBB

十六进制编码的颜色值,红、绿、蓝各有两个数字。

#RGB

十六进制编码的颜色值,红色、绿色和蓝色各有一个数字。这相当于每个信道的两位数编码,每个位数重复。

rgb(r, g, b)

由三部分组成的颜色值,每个通道由0到1或0到255之间的值表示。如果任何值包含小数点,则使用0到1,否则为0到255。

简单名称

颜色的简单英文名称。http://www.w3.org/tr/svg/types.html colorkeywords上提供了受支持颜色的完整列表。

外部引用

当使用外部图像装饰地图特征时,需要通过URL引用它们。这是通过呼叫 url 功能。URL值可以用单引号或双引号括起来,也可以不加引号。与字符串值相同的转义规则。这个 url 函数也是一种特殊情况,通常可以省略周围的引号。一些例子:

/* These properties are all equivalent. */

* {
    stroke: url("http://example.com/");
    stroke: url('http://example.com/');
    stroke: url(http://example.com/);
}

备注

虽然支持相对URL,但在转换为SLD的过程中,它们将被完全解析,并作为绝对URL写出。这可能会导致在重新定位数据目录等时出现问题。通过在演示编辑器中打开样式并使用其中的提交按钮,可以使用当前正确的URL重新生成样式。

驰名商标

如SLD标准中所定义,地理服务器 css 模块还允许使用一组已知的标记类型,而无需显式提供图形资源。其中包括:

  • circle

  • square

  • cross

  • star

  • arrow

以及其他。此外,供应商还可以提供一套扩展的知名标记,这是一些Geotools插件利用该标准的一个方面来提供动态地图功能,例如使用TrueType字体中的字符作为地图符号或动态图表。为了支持这些扩展标记名,CSS模块提供了 symbol 功能类似于 url .除了函数名之外,语法是相同的:

* {
    mark: symbol(circle);
    mark: symbol('ttf://Times+New+Roman&char=0x19b2');
    mark: symbol("chart://type=pie&x&y&z");
}
Previous: 属性清单
Next: 指令