Gwt 以像素为单位设置div的精确宽度?

Gwt 以像素为单位设置div的精确宽度?,gwt,Gwt,我在iPhone4S设备上看到了以像素单位指定div大小的奇怪行为 我的iphone纵向宽980像素 作为第一个测试,我刚刚创建了一个简单的html实现。这完全符合预期-div占据了我屏幕的整个宽度,但没有更宽: <body> <div style="width:980px; height: 30px; background-color: red;"></div> </body> 但在我的iphone上加载时,div似乎是屏幕宽度的两倍。GW

我在iPhone4S设备上看到了以像素单位指定div大小的奇怪行为

我的iphone纵向宽980像素

作为第一个测试,我刚刚创建了一个简单的html实现。这完全符合预期-div占据了我屏幕的整个宽度,但没有更宽:

<body>
  <div style="width:980px; height: 30px; background-color: red;"></div>
</body>
但在我的iphone上加载时,div似乎是屏幕宽度的两倍。GWT是否自动进行某种缩放?我知道iPhone4S是视网膜显示器,因此它的像素比是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>
但还是一样的行为——在iPhone4S屏幕上,div是显示屏宽度的两倍。dom看起来与我的手写版本完全相同。在非视网膜设备上,大小正确


谢谢

我建议您尝试以下方法:

  • 做:

    getElement().getStyle.setWidth(x,Style.Unit.PX);
    getElement().getStyle.setHeight(y,Style.Unit.PX)

  • 这相当于你的
    style=“宽度:980px;高度:30px;背景色:红色;

  • 另一种选择是在css样式中定义一个类,如
    .yourCss
    {
    宽度:980px;高度:30px;背景色:红色;
    }
    

  • 然后在你的代码中执行
    flowPanel.setStyleName(“yourCss”);

    好主意,刚刚尝试过,但遗憾的是仍然是相同的行为,div是它应该的宽度的2倍。oof所以看起来MobileSafari在我的gwt页面实现中自动放大了,但在手写的页面实现中却没有。真不敢相信我错过了这段时间。
    // What GWT outputs - looks the same as my hand-written version:
    <div style="width: 980px; height: 30px; background-color: red;"></div>
    
    .sanityTest {
    width: 980px;
    height: 30px;
    background-color: green;
    }
    
    FlowPanel fp = new FlowPanel();
    fp.setStyleName("sanityTest");