我继承了许多传统的GWT代码,可以简洁地描述为"Web开发人员最糟糕的噩梦".开发人员使用了许多具有内联样式的元素 - 例如,GWT DeckPanel.
我想删除这些内联样式,以便我可以应用外部样式表,但我似乎无法找到任何方法来执行此操作.我知道可以通过这个设置内联样式:DOM.setStyleAttribute(container1, "height", "100%");或类似,但似乎没有任何类型的对应removeStyleAttribute.有一个,DOM.removeElementAttribute但这不适用于样式.
有没有办法从属性中明确删除所有内联样式?我尝试使用谷歌搜索,但我最终找到了与UIBinder相关的内容以及来自GWT的许多防守帖子"你为什么要这样做?" 我不能做太多的代码修改,因为这个应用程序是庞大的,我在截止日期.我们没有使用UIBinder.
像这样设置内联CSS样式:
Style style = widget.getElement().getStyle();
style.setPosition(Position.ABSOLUTE);
style.setTop(50, Unit.PX);
style.setLeft(0, Unit.PX);
// etc.
Run Code Online (Sandbox Code Playgroud)
要删除样式:
style.clearPosition();
style.clearTop();
style.clearLeft();
Run Code Online (Sandbox Code Playgroud)
或者:
DOM.setStyleAttribute(element, "height", "");
Run Code Online (Sandbox Code Playgroud)
要删除元素的所有内联样式:
DOM.setElementProperty(element, "style", "");
Run Code Online (Sandbox Code Playgroud)
您还可以通过附加!important到样式定义来覆盖具有外部样式的内联样式.例如
.my-gwt-widget {
height: 150px !important;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6535 次 |
| 最近记录: |