如果在Haml中条件为真,如何附加类?
我们将研究根据某些条件的评估将类附加到元素的两种方法。本质上,它们背后的逻辑是相同的。
- 使用三元运算符
- 使用“除非”条件检查
初始代码:首先,让我们编写一些基本的HAML代码。它将在head部分包含一个样式元素。 style元素将包含为类定义的所有样式。最初,在正文部分有一个锚元素,它有一个“添加背景”类。在style元素中为此类定义的样式将为锚元素的文本提供浅灰色背景。
- 程序:
%head %title Appending class based on condition evaluation -# defining styles for the classes %style /.add-background{ background-color: lightgrey; } %body -# an anchor element with class "add-background" %a{ :class => "add-background" } Geeks for Geeks
- 输出:
方法 1:假设我们要附加一个名为“make-red”的类。在style
元素中为此类定义的样式使得文本的颜色变为红色。如果某些条件评估为真,则此类只会附加到已经存在的“添加背景”。
让我们使用一个布尔变量“flag”。只有当“flag”的值为真时,才会附加“make-red”类,否则不附加。
- 程序:
%head %title Appending class based on condition evaluation -# defining styles for the classes %style /.add-background{ background-color: lightgrey; } /.make-red{ color: red; } %body -# declaring local boolean type variable - flag = true -# using ternary operator to append class to the anchor element -# if "flag" is true, "make-red" class is appended -# else nothing is appended %a{ :class => "add-background" + ((flag == true) ? " make-red" : "") } GeeksforGeeks
- 输出:
方法2:使用“除非”条件检查。这种类型的检查确保只要某些条件不成立,就会执行某个操作。因此,如下所示,在这种情况下,如果“flag”为假,但不会评估为真,则将附加“make-red”类。也就是说,如果“flag”为假,则不会附加该类,否则将附加该类。
- 程序:
%head %title Appending class based on condition evaluation -# defining styles for the classes %style /.add-background{ background-color: lightgrey; } /.make-red{ color: red; } %body -# declaring local boolean type variable - flag = true -# using the "unless" conditional check to append class to the anchor element -# if the "flag" is true, "make-red" class is appended -# else nothing is appended %a{ :class => "add-background" + (" make-red" unless (flag == false)) } Geeks for Geeks
- 输出: