嵌套规则¶
从geoserver 2.10开始,css模块支持规则嵌套,也就是说,可以在父规则的属性之间写入子规则。嵌套规则继承父规则选择器和属性,并添加自己的额外选择器和属性重写。
每个嵌套规则都可以正常写入,但是,如果遵循其他规则或属性,则必须使用分号(此字符是CSS语言中的分隔符)将其终止。
嵌套是一种纯粹的语法改进,因此除了更紧凑、更具可读性的样式之外,它实际上不提供额外的功能。
这是一个仅使用层叠的CSS样式的示例,用于获取点符号的不同形状、填充和笔划颜色,以防 type
属性等于 important
::
[@sd < 3000] {
mark: symbol(circle)
}
[@sd < 3000] :mark {
fill: gray;
size: 5
}
[@sd < 3000] [type = 'important'] {
mark: symbol('triangle')
}
[@sd < 3000] [type = 'important'] :mark {
fill: red;
stroke: yellow
}
第二个版本使用规则嵌套获取更紧凑的表达式,将相关符号元素放在附近::
[@sd < 3000] {
mark: symbol(circle);
:mark {
fill: gray;
size: 5
};
[type = 'important'] {
mark: symbol(triangle);
:mark {
fill: red;
stroke: yellow
}
}
}