嵌套规则

从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
      }
   }
}