Image img = new Image( HandleImages.instance.green().getURL() );
DOM.setStyleAttribute( img.getElement(), "position", "absolute" );
DOM.setStyleAttribute( img.getElement(), "left", "100px" );
DOM.setStyleAttribute( img.getElement(), "top", "100px" );
img.setPixelSize( 12, 12 );
img.setSize( "12px", "12px" );
// img.getElement().getStyle().clearRight(); // no effect
// img.getElement().getStyle().clearBottom(); // no effect
RootLayoutPanel.get().add( img );
So, try this:
img.setSize("12px", "12px");
LayoutPanel panel = new LayoutPanel();
panel.add(img);
panel.setWidgetTopHeight(img, 100, Unit.PX, 12, Unit.PX);
panel.setWidgetLeftWidth(img, 100, Unit.PX, 12, Unit.PX);
RootLayoutPanel.get().add(panel);
Alternatively, you can use a FlowPanel and set CSS style on the image, as you tried, and then add this FlowPanel to the root.