我在 GWT 中有三个这样的元素:
HorizontalPanel picturePanel = new HorizontalPanel();
picturePanel.setStylePrimaryName("picturePanel");
image.setStylePrimaryName("picture");
leftArrow.setStylePrimaryName("arrow-left");
rightArrow.setStylePrimaryName("arrow-right");
picturePanel.add(leftArrow);
picturePanel.add(image);
picturePanel.add(rightArrow);
目前GWT编译后变成如下结构:
<table class="picture-container">
...
<td align="left" style="vertical-align: top;">
<img class="arrow-left" src="../images/icons/left2.svg"></img>
</td>
<td align="left" style="vertical-align: top;">
<img class="picture mission-picture" src="../pictures/d5edc879-fe9b-4980-92e3-9bb4ac020abb.jpg"></img>
</td>
<td align="left" style="vertical-align: top;">
<img class="arrow-right" src="../images/icons/right2.svg"></img>
</td>
</table>
这种 HTML 结构很可能(希望)在 GWT 的下一个版本中得到改变。对于这个问题,是否可以为此编写 CSS(不关心当前的 HTML 结构),以便左箭头和右箭头将出现在图像下方的中心,而不是两侧?请注意,图片的大小是动态的。我最好不想更改 GWT 代码,因为 CSS 代码仅在页面小于某个宽度时使用,例如
@media only screen and (max-width: 420px) {
.arrow-left{}
.arrow-right{}
}
更新:
我尝试了一种不同的方法,即在 GWT 代码中使用 ResizeHandler,一旦宽度小于 420 像素,它将箭头移动到图像下方的不同面板。它可以工作,但我认为将它放在 CSS 中会更高效、更方便。这个解决方案感觉有点像一个丑陋的黑客,这让我很难过。
这是一个 jsfiddle,您可以在其中尝试描述的问题:http: //jsfiddle.net/YZSAr/