Я пытаюсь заставить мой модный редизайн CSS3 работать для приложения GWT, но ни один из объектов CSS3Pie vml не отображается правильно, когда они применяются к заголовку DialogBox GWT. Более того, любой контент внутри DialogBox или PopupPanel, такой как GwtButton, не получает должным образом примененный CSS3Pie (, даже если те же самые GwtButtons работают везде, но всплывающие окна ).
Я предполагаю, что способ, которым GWT манипулирует DOM и стилями CSS для всплывающего окна, приводит к тому, что все стили становятся fubared . CSS3Pie определенно правильно привязывается к этим элементам, поскольку фоновый цвет и стили границ удаляются, а элементы css3-container
добавляются.
Вот CSS, который применяется к DialogBox
.gwt-PopupPanel,.gwt-DecoratedPopupPanel,.gwt-DialogBox,.gwt-SuggestBoxPopup
{
z-index: 999;
}
.gwt-PopupPanelGlass {
background: #000;
opacity: 0.3;
filter: alpha(opacity = 30);
z-index: 990;
}
.gwt-DialogBox .dialogTopCenterInner{
}
/** Copied from titled region **/
.gwt-DialogBox .Caption {
padding: 8px 0 0 14px;
background: #6c6d70;
background: -moz-linear-gradient(#6c6d70, #595a5c);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6c6d70), color-stop(100%,#595a5c));
background: -webkit-linear-gradient(#6c6d70, #595a5c);
background: -o-linear-gradient(#6c6d70, #595a5c);
background: -ms-linear-gradient(#6c6d70, #595a5c);
background: linear-gradient(#6c6d70, #595a5c);
height: 25px;
border: 1px solid #4a4a4a;
-webkit-border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
-webkit-box-shadow: inset 0 1px 1px #8e8f93;
-moz-box-shadow: inset 0 1px 1px #8e8f93;
box-shadow: inset 0 1px 1px #8e8f93;
color: #fff;
font-size: 14px;
font-weight: bold;
cursor: move;
-pie-background: linear-gradient(#6c6d70, #595a5c);
position: relative;
behavior: url(/resources/css/PIE.htc);
}
.gwt-DialogBox .dialogContent {
border: 1px solid #6a6a6a;
border-top: none;
background: #f9f9f9;
padding: 10px;
}
А вот сгенерированный HTML-код для диалогового окна, взятый из панели инструментов разработчика IE.
<DIV style="CLIP: rect(auto,auto,auto,auto); POSITION: absolute; VISIBILITY: visible; OVERFLOW: visible; TOP: 374px; LEFT: 743px" class=gwt-DialogBox __eventBits="124"><DIV>
<TABLE cellSpacing=0 cellPadding=0>
<TBODY>
<TR class=dialogTop>
<TD class=dialogTopLeft>
<DIV class=dialogTopLeftInner></DIV></TD>
<TD class=dialogTopCenter>
<DIV class=dialogTopCenterInner>
<css3-container style="Z-INDEX: auto; POSITION: absolute; DIRECTION: ltr; TOP: 0px; LEFT: 0px"><background style="POSITION: absolute; TOP: 0px; LEFT: 0px"><group2><?xml:namespace prefix = css3vml ns = "urn:schemas-microsoft-com:vml" /><css3vml:shape style="POSITION: absolute; WIDTH: 413px; HEIGHT: 35px; BEHAVIOR: url(#default#VML); TOP: 0px; LEFT: 0px" coordsize = "826,70" coordorigin = "1,1" fillcolor = "#6c6d70" stroked = "f" path = " m0,10 qy10,0 l816,0 qx826,10 l826,70 qy826,70 l0,70 qx0,70 x e"><css3vml:fill></css3vml:fill><css3vml:fill></css3vml:fill></css3vml:shape></group2></background><border style="POSITION: absolute; TOP: 0px; LEFT: 0px"><css3vml:shape style="POSITION: absolute; WIDTH: 413px; HEIGHT: 35px; BEHAVIOR: url(#default#VML); TOP: 0px; LEFT: 0px" coordsize = "826,70" coordorigin = "1,1" filled = "f" stroked = "t" strokecolor = "#4a4a4a" strokeweight = ".75pt" path = " m1,10 qy10,1 l816,1 qx825,10 l825,70 qy826,69 l0,69 qx1,70 x e"><css3vml:stroke></css3vml:stroke><css3vml:stroke></css3vml:stroke></css3vml:shape></border></css3-container>
<DIV class="Caption pie_first-child pie_first-child" _pieId="_208">Change Region</DIV></DIV></TD>
<TD class=dialogTopRight>
<DIV class=dialogTopRightInner></DIV></TD></TR>
<TR class=dialogMiddle>
<TD class=dialogMiddleLeft>
<DIV class=dialogMiddleLeftInner></DIV></TD>
<TD class=dialogMiddleCenter>
<DIV class="dialogMiddleCenterInner dialogContent">
Fancy content here.
</DIV>
</TD>
<TD class=dialogMiddleRight>
<DIV class=dialogMiddleRightInner></DIV></TD></TR>
<TR class=dialogBottom>
<TD class=dialogBottomLeft>
<DIV class=dialogBottomLeftInner></DIV></TD>
<TD class=dialogBottomCenter>
<DIV class=dialogBottomCenterInner></DIV></TD>
<TD class=dialogBottomRight>
<DIV class=dialogBottomRightInner></DIV></TD></TR></TBODY></TABLE></DIV></DIV>
Вот некоторые вещи, которые я пробовал:
- Копирование и вставка HTML на страницу вместо того, чтобы позволить GWT манипулировать свойствами DOM css3, работать
- Пользовательские всплывающие окна, которые используют абсолютное позиционирование и пользовательский код скрытия / показа Свойства css3 работают
- Применение
position:relative
исправило некоторые свойства css3pie в других местах, но здесь не действует
Кто-нибудь успешно получил GWT PopupPanel и DialogBox для работы с CSS3Pie? Этот проект , кажется, указывает, что кто-то имеет. Чего мне не хватает?