2013-11-04 58 views
0

在web2py視圖中,是否有一種簡潔的方式來將CSS類添加到基於條件的html標籤?我想是這樣的僞代碼:如何在web2py中有條件添加css類?

<div class="details {{if product.inventory == 0 then 'highlight'}}">...</div> 

如果product.inventory == 0,那麼該觀點產生下面的HTML:

<div class="details highlight">

否則:

<div class="details">

我知道我可以在視圖中使用普通的舊if塊,但我正在尋找一個簡潔的方法來做到這一點。或者,有更好的方法來解決這個問題嗎?

回答

2

你已經基本得到它:

<div class="details{{=' highlight' if product.inventory == 0 else ''}}"> 
+0

謝謝嘗試這樣的事情,但我想我錯過了else子句。在這種情況下顯示它是強制性的? – User

+1

這是一個Python [條件表達式](http://docs.python.org/2/reference/expressions.html#conditional-expressions)(也稱爲* ternary *運算符),它需要'else'(否則,條件爲假的情況下的值將是未知的)。還有其他方法(例如,您可以在if/else子句中定義一個變量並將變量粘貼在那裏)。 – Anthony

0

看到this answer

這(在CSS JS)在IE瀏覽器僅支持雖然。爲什麼不只有一個JavaScript功能來完成這項工作?

+0

謝謝雖然我非常喜歡非JavaScript的解決方案 – User

+0

那麼你不能做到這一點在CSS。如果你想完全避免js,可能只有在代碼後面。 –

+0

@nevercode,@User未在CSS中使用JS - 「{{...}}」分隔符是web2py的服務器端模板系統的一部分。 – Anthony