Thymeleaf 还允许在 CSS 的 <style> 标记中使用内联 CSS,例如:
<style th:inline="css"> ... </style>
例如,假设我们有两个变量设置为两个不同的字符串值:
classname = 'main elems' align = 'center'
我们可以像这样使用它们:
<style th:inline="css"> .[[${classname}]] { text-align: [[${align}]]; } </style>
输出结果如下:
<style th:inline="css"> .main\ elems { text-align: center; } </style>
注意,CSS 内联表达式也具有一定的智能性,就像 JavaScript 内联表达式一样。具体来说,通过 [[${classname}]] 这样的转义表达式输出的表达式将被转义为 CSS 标识符。这就是为什么我们的 classname='main elems' 在上面的代码片段中变成了 main\ elems。
与之前对 JavaScript 自然模板的解释相同,CSS 内联表达式也允许我们的 <style> 标记静态和动态地工作,即作为 CSS 自然模板,通过在注释中包含CSS 内联表达式。例如:
<style th:inline="css"> .main\ elems { text-align: /*[[${align}]]*/ left; } </style>
注意,在静态运行 CSS 模板时,text-align 的值为 left,如果动态运行 CSS 模板,则 text-align 为 ${align} 表达式结果。