Thymeleaf:如何使用条件来动态添加/删除CSS类

vde*_*ris 86 html css thymeleaf

通过使用Thymeleaf作为模板引擎,是否可以div使用th:if子句向/从一个简单的动态添加/删除CSS类?

通常,我可以使用条件子句如下:

<a href="lorem-ipsum.html" th:if="${condition}">Lorem Ipsum</a> 
Run Code Online (Sandbox Code Playgroud)

我们将创建一个指向lorem ipsum页面的链接,但仅限于条件子句为真.

我正在寻找不同的东西:我希望块始终可见,但根据情况可变类.

nil*_*lsi 211

还有th:classappend.

<a href="" class="baseclass" th:classappend="${isAdmin} ? adminclass : userclass"></a>
Run Code Online (Sandbox Code Playgroud)

如果isAdmintrue,那么这将导致:

<a href="" class="baseclass adminclass"></a>
Run Code Online (Sandbox Code Playgroud)

  • 我认为这应该是公认的答案.`th:class`替换/重写你的class属性.`th:classappend`就是你想要的. (3认同)

小智 32

是的,可以根据情况动态更改CSS类,但不能th:if.这是由elvis运营商完成的.

<a href="lorem-ipsum.html" th:class="${isAdmin}? adminclass : userclass">Lorem Ipsum</a> 
Run Code Online (Sandbox Code Playgroud)


小智 5

为此目的,如果我没有布尔变量,我使用以下内容:

<li th:class="${#strings.contains(content.language,'CZ')} ? active : ''">
Run Code Online (Sandbox Code Playgroud)


xxL*_*Txx 5

另一个非常相似的答案是使用"等于"而不是"包含".

<li th:class="${#strings.equals(pageTitle,'How It Works')} ? active : ''">
Run Code Online (Sandbox Code Playgroud)


Ste*_*e L 5

如果您只想在发生错误时附加一个类,您可以使用文档th:errorclass="my-error-class"中提到的

\n\n
<input type="text" th:field="*{datePlanted}" class="small" th:errorclass="fieldError" />\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

应用于表单字段标签(input、select、textarea\xe2\x80\xa6),它将从同一标签中的任何现有 name 或 th:field 属性中读取要检查的字段名称,然后附加指定的字段标签的 CSS 类(如果该字段有任何关联错误)

\n
\n