2012-02-24 59 views
0

我想使用CSS更改stacklayoutpanel標題的背景顏色,我嘗試了一切。GWT StackLayoutPanel:如何更改標題背景顏色

.gwt-StackLayoutPanel .gwt-StackLayoutPanelHeader .gwt-StackLayoutPanelContent .gwt-StackLayoutPanelItem { 
    color: red; 
    border:red; 
    border-color: red; 
    background:red; 
    background-color:red; 
} 

但只改變了文字顏色,我不想那樣。請你能解釋我該怎麼做?

回答

0

您的CSS樣式不正確。它試圖將目標定位到以下層級:

.gwt-StackLayoutPanel 
    .gwt-StackLayoutPanelHeader 
    .gwt-StackLayoutPanelContent 
     .gwt-StackLayoutPanelItem 

這是完全不正確的。如果你想與這些類的所有元素具有相同的背景顏色,你會寫你的CSS規則是這樣的:

.gwt-StackLayoutPanel, 
.gwt-StackLayoutPanelHeader, 
.gwt-StackLayoutPanelContent, 
.gwt-StackLayoutPanelItem 
{ 
    background-color: red; 
} 
0

您更好地創建自己的CSS文件基於GWT的默認,並進行更改。您還需要從your_module.gwt.xml中排除gwt默認css,並在那裏放置您新創建的

1

StackLayoutPanel將小時頁眉小部件/文本包裝爲名爲Header的內部類,該類不能公開訪問。一種方法是通過將默認的clean.css .gwt-StackLayoutPanel .gwt-StackLayoutPanelHeader樣式複製到您自己的css文件中,然後將!重要樣式添加到您想要更改的樣式中。 然而,更好的和更清潔的解決辦法是做到以下幾點:

// add/insert your item first 
myStackLayoutPanel.add(widget, header, size); 
// retrieve the Header internal widget (AFTER ADDING!) 
Widget internHeader = header.getParent(); 
// replace default style 
internHeader.setStyleName("my_custom_style"); 

如果你不喜歡使用類CSS樣式,你可以交替做這樣的事情:

... same as above 
// reset the default style 
internHeader.setStyleName(""); 
// then add your styles programmatically 
Style style = internHeader.getElement().getStyle(); 
style.setBackgroundColor(); 
etc. 

重要的是要找回調用添加/插入後的內部頭部小部件!