2011-09-22 65 views
1

我有以下UiBinder的代碼:造型普通HTML元素與UiBinder的

... 
    <div> 
     <g:Label>Hello,</g:Label> 
     <g:Button ui:field="button" /> 
    </div> 
... 

現在我想樣式div元素,並讓說,給它一個紅色邊框。據我所知道的是明確的方式來定義風格attrinute這樣的:

<ui:style> 
    .redborder { 
     border: 1px solid red; 
    } 
    ... 

</ui:style> 

這樣的代碼一切的一切應該是這樣的:

... 
     <div styleName="{style.redborder}"> 
      <g:Label>Hello,</g:Label> 
      <g:Button ui:field="button" /> 
     </div> 
... 

但在HTML頁面中的紅色邊框不繪製。現在我用Firebug(或者你怎麼稱呼谷歌瀏覽器中的東西)來看看這個頁面,並看到div元素有正確的類名,但是borwser找不到該類。如果在另一方面,我把相同的樣式元素的按鈕一切正常。

有沒有人有一個想法是什麼樣的行爲?

問候, 斯特凡

回答

8

在常規的DOM元素,你在這種情況下DIV,沒有setStyleName()方法,因此就使用class屬性:在GWT部件

<div class="{style.redborder}"> ... </div> 

styleName="..."作品因爲它被翻譯爲調用setStyleName()方法。

順便說一下,您可能需要考慮在您的小部件上使用addStyleNames="...",因爲這允許您添加(多個)CSS類名,而不會意外刪除已存在的類名。

+0

謝謝,我剛剛發現它。 http://code.google.com/webtoolkit/doc/latest/DevGuideUiBinder.html#Hello_Stylish_World – Stefan

0

要像普通的HTML一樣使用它,你必須考慮使用普通的HTML!

讓我們把你的情況下,例如:

<ui:style> 
    .redborder { 
    border: 1px solid red; 
    } 
    ... 
</ui:style> 

... 

<div class="{style.redborder}"> <!--Notice I used class instead of styleName--> 
    <g:Label>Hello,</g:Label> 
    <g:Button ui:field="button" /> 
</div> 

.... 

所以只使用 「類」 屬性而不是 「styleName來」。