我有這樣三個要素在GWT:移動元素與響應CSS的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/
這不會對我的工作有以下幾個原因,首先,我不能依賴於當前的HTML結構,因爲它可能會改變,其次這將,據我瞭解,當頁面大小調整時,將箭頭永久移動並保留在圖片下方。所以它也必須有一個聽衆。感謝您的努力! – spydon