Используя Thymeleaf в качестве механизма шаблонов, можно ли динамически добавлять / удалять класс CSS в / из простого div
с th:if
предложением?
Обычно я мог бы использовать условное предложение следующим образом:
<a href="lorem-ipsum.html" th:if="${condition}">Lorem Ipsum</a>
Мы создадим ссылку на страницу lorem ipsum , но только если условие условия истинно.
Я ищу что-то другое: я бы хотел, чтобы блок всегда был виден, но с изменяемыми классами в зависимости от ситуации.
Ответы:
Также есть
th:classappend
.Если
isAdmin
естьtrue
, то это приведет к:источник
th:class
заменяет / переписывает атрибут вашего класса.th:classappend
это то, что вы хотите.th:classappend="${theRightClass}"
th:classappend
атрибутов. Допускается максимум один.Fatal error during parsing org.xml.sax.SAXParseException: Attribute "th:classappend" was already specified for element "img".
th:classremove
удалить один класс, не затрагивая другие, или жестко кодировать весь список классов в вашем привязке xml? Или оставить какой-либо динамический класс и условно добавить его единственный способ?Да, можно динамически изменять класс CSS в зависимости от ситуации, но не с помощью
th:if
. Это делается с помощью оператора elvis .источник
Для этой цели, и если у меня нет логической переменной, я использую следующее:
источник
Другой очень похожий ответ - использовать «равно» вместо «содержит».
источник
Если вы просто хотите добавить класс в случае ошибки вы можете использовать
th:errorclass="my-error-class"
упоминались в ДоПе .источник
Просто чтобы добавить свое мнение, на случай, если оно кому-то будет полезно. Это то, что я использовал.
источник
Еще одно использование th: class, такое же, как у @NewbLeech и @Charles, но упрощенное до максимума, если нет случая "else":
Не включает атрибут класса, если # fields.hasErrors ('password') ложно.
источник
То, что упомянул @Nilsi, совершенно правильно. Однако adminclass и user class должны быть заключены в одинарные кавычки, так как это может не сработать из-за того, что Thymeleaf ищет переменные adminClass или userclass, которые должны быть строками. Тем не менее,
так должно быть: -
или просто:
источник
Если вы хотите добавить или удалить класс соответственно, если URL-адрес содержит определенные параметры или нет. Это то, что вы можете сделать
Если URL-адрес содержит «дом», тогда будет добавлен активный класс, и наоборот.
источник
На всякий случай, если кто-то использует Bootstrap, я смог добавить более одного класса:
источник