2012-11-15 63 views
3

我正在使用GWT。GWT中的條件CSS

是否有可能使用CSS來執行以下if/else語句?

.unseen-activity div.unseen-label { 
    display: inline; 

    if using chrome { left: 510px; } 
    else { left: 470px; } 

    margin: 0 auto; 
} 

或者我的GWT Java代碼檢查瀏覽器,然後相應地添加樣式會更好嗎?

注 - 我不確定在GWT中是否有可能檢查瀏覽器。

感謝, 凱文

+0

你應該問爲什麼你需要根據瀏覽器來改變CSS。除非你做了非常罕見的事情,否則不應該發生。 – YardenST

+0

Chrome呈現我的CSS與Firefox不同,這就是爲什麼我需要這個條件CSS。他們使用不同的渲染器(Web Kit與Gecko)。 –

回答

5

GWT的CssResource可以這樣做:

@if user.agent safari { 
    .unseen-activity div.unseen-label { 
     left: 510px; 
    } 
} 
@else { 
    .unseen-activity div.unseen-label { 
     left: 470px; 
    } 
} 

.unseen-activity div.unseen-label { 
    display: inline; 
    margin: 0 auto; 
} 

https://developers.google.com/web-toolkit/doc/latest/DevGuideClientBundle#Conditional_CSS

注:safari用戶代理的所有webkits匹配;如果您需要其他的東西,請使用靜態方法作爲您的@if測試。

+0

工作。謝謝。 –

+0

這個答案的[最近編輯](http://stackoverflow.com/revisions/13404821/2):'@ if' /'@ else',雖然沒有必要,但更明顯的是這裏發生了什麼比依靠更隱含的_override_。 –

0

CSS是一個純粹的樣式表語言,並有決策集成任何選項。在使用GWT或使用JavaScript時,您需要在java中執行此操作。

+1

尊敬的是,我收回了我的Up-Vote,正如Thomas指出的那樣,可以向CSS添加決策邏輯。 –

+0

那不是CSS。這是一個需要由服務器端預處理並轉換爲有效的css文件的文件。 –

+0

我說這是簡單的舊CSS不好。 –