Разные стили в UiBinder - PullRequest
       18

Разные стили в UiBinder

0 голосов
/ 13 декабря 2011

У меня есть определение стиля, определенное с атрибутом стиля в UiBinder.Пример:

<ui:style
    type="example.client.SomeClass.Style">

        .div1b {
            margin: 10px;               
        }
    </ui:style>
<g:HTMLPanel
    <g:Widget styleName="{style.div1b}" ui:field="widget">
    </g:Widget>
</g:HTMLPanel>

Этот стиль отлично работает в Google Chrome, но в Firefox (и более поздних версиях IE) я хочу использовать другой стиль.Поэтому я хочу определить другой стиль для Firefox.

Теперь, насколько я понимаю, Google предлагает создать совершенно новый класс для стиля Firefox и использовать аргумент замены в * gwt.xml.Что-то вроде:

<replace-with class="example.client.SomeClassFireFox">
    <when-type-is class="example.client.SomeClass" />
    <any>
        <when-property-is name="user.agent" value="gecko1_8" />     </any>
</replace-with>

Это правильный путь или есть более простой, где я просто определяю новый стиль внутри UiBinder?

С уважением, Стефан

1 Ответ

1 голос
/ 13 декабря 2011

На самом деле это проще, чем это: вы можете использовать @if@else блоки в вашем ui:style, основываясь на свойстве user.agent:

/* Use padding in Firefox and margin in other browsers. */
@if user.agent gecko1_8 {
   .div1b {
      padding: 10px;
   }
}
@ else {
   .div1b {
      margin: 10px;
   }
}

См. http://code.google.com/webtoolkit/doc/latest/DevGuideClientBundle.html#Conditional_CSS

...