CSS3 の再設計を GWT アプリで機能させようとしていますが、CSS3Pie vml オブジェクトが GWT DialogBox Caption に適用されたときに正しく表示されないようです。さらに、GwtButton などの DialogBox または PopupPanel 内のコンテンツは、CSS3Pie が適切に適用されていません (たとえ同じ GwtButtons がpopups 以外のすべての場所で正常に機能したとしても)。
私の推測では、GWT がポップアップの DOM と CSS スタイルを操作する方法が原因で、すべてのスタイルが fubared になっているということです。css3-container
背景色と境界線のスタイルが削除され、要素が追加されているため、CSS3Pie は間違いなくこれらの要素に正しく関連付けられています。
DialogBox に適用される CSS は次のとおりです。
.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;
}
そして、IE Developer Toolbar から取得した、ダイアログ ボックス用に生成された HTML を次に示します。
<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>
ここに私が試したいくつかのことがあります:
- GWT に DOM のcss3 プロパティを操作させる代わりに、HTML をコピーしてページに貼り付ける
- 絶対配置とカスタムの非表示/表示コードcss3 プロパティを使用するカスタム ポップアップが機能する
- 適用すると
position:relative
、他の場所でいくつかの css3pie プロパティが修正されましたが、ここでは効果がありません
GWT PopupPanel と DialogBox を CSS3Pie で正常に動作させた人はいますか? このプロジェクトは、誰かが持っていることを示しているようです。私は何が欠けていますか?