iPhone 4s デバイスで div のサイズをピクセル単位で指定すると、奇妙な動作が見られます。
私のiPhoneは縦向きで幅980ピクセルです。
最初のテストとして、単純な html 実装を作成しました。これは期待どおりに機能します-divは画面の幅全体を占めますが、幅は広くありません:
<body>
<div style="width:980px; height: 30px; background-color: red;"></div>
</body>
今GWTで、私は同じことを試みます(少なくとも同等だと思います):
FlowPanel fp = new FlowPanel();
fp.setWidth("980px");
fp.setHeight("30px");
fp.getElement().getStyle().setBackgroundColor("red");
RootPanel.get().add(fp);
しかし、iPhone にロードすると、div は画面の幅の 2 倍に見えます。GWT はある種のスケーリングを自動的に行っていますか? iPhone 4S は Retina ディスプレイなので、ピクセル比は 2 倍です。それと何か関係あるの?
iPhone で出力 html を調べることはできませんが、Firefox で GWT のバージョンを見ると、GWT が指定した 980px サイズを実際に出力していることがわかります。
// What GWT outputs - looks the same as my hand-written version:
<div style="width: 980px; height: 30px; background-color: red;"></div>
では、GWT バージョンが div を 2 倍の幅でレンダリングするのはなぜでしょうか?
- - - アップデート - - - - -
Woojah が推奨したように、スタイル定義を使用してみました。
.sanityTest {
width: 980px;
height: 30px;
background-color: green;
}
FlowPanel fp = new FlowPanel();
fp.setStyleName("sanityTest");
それでも同じ動作 - iphone 4s 画面では、div はディスプレイの幅の 2 倍です。ドムは私の手書きバージョンとまったく同じに見えます。サイズは非 Retina デバイスで正しく動作します。
ありがとうございました