css 在 Opera 中的一个问题。
其实,Opera 浏览器我并不经常用,但是最近发现,css的opera上,却有点小问题。 看下面的一个例子。
在页面上放一个Menu control并定义它的cssclass, 把这个menu放在一个id为mainmenu的div中:
<div id="mainmenu">
<asp:Menu ID="MainNavMenu" runat="server" SkinID="MainMenu"
EnableViewState="false" OnMenuItemClick="MainNavMenu_MenuItemClick" Orientation="Horizontal">
<Items>
<asp:MenuItem Text="Home" Value="Default"></asp:MenuItem>
<asp:MenuItem Text="Reports" Value="Reports">
<asp:MenuItem Text="Default" Value="Default" />
</asp:MenuItem>
<asp:MenuItem Text="Editing" Value="DefaultEditing">
<asp:MenuItem Text="Header" Value="QccReportHeader" />
<asp:MenuItem Text="Piar Component" Value="PiarComponentEditing" />
<asp:MenuItem Text="Iar Component" Value="IarComponentEditing" />
<asp:MenuItem Text="Comments Response" Value="CommentsResponseEditing" />
<asp:MenuItem Text="Piar Completion" Value="PiarCompletionEditing" />
<asp:MenuItem Text="Iar Completion" Value="IarCompletionEditing" />
</asp:MenuItem>
<asp:MenuItem Text="Auditee" Value="Auditee"></asp:MenuItem>
<asp:MenuItem Text="Audit Organization" Value="AuditOrganization"></asp:MenuItem>
</Items>
<StaticMenuStyle CssClass="MenuStyle" />
<StaticMenuItemStyle CssClass="MenuItemStyle" ItemSpacing="1px" />
<staticSelectedStyle CssClass="SelectedStyle" ItemSpacing="1px" />
<StaticHoverStyle CssClass="HoverStyle" />
<DynamicMenuStyle CssClass="DynamicMenuStyle" />
<DynamicMenuItemStyle CssClass="DynamicMenuItemStyle" />
<DynamicHoverStyle CssClass="DynamicHoverStyle" />
<DynamicSelectedStyle CssClass="DynamicSelectedStyle" />
</asp:Menu>
</div>
The css style code 如下:
#mainmenu { position: absolute; bottom: 0; left: 0; width: 100%; font-size: 93%; font-weight: bold; border-bottom: solid 2px #C3D8EF; } #mainmenu .MainMenuControl {margin-left: 40px;} #mainmenu .MenuItemStyle { background: url(Images/NavImageOff.gif) no-repeat top right; color: #0171BA; } #mainmenu .MenuItemStyle a { display: block !important; padding: 5px 15px; background-image: none !important; background-repeat: no-repeat; } #mainmenu .HoverStyle, #mainmenu .SelectedStyle { background: url(Images/NavImageOn.gif) no-repeat top right; color: #A1BC00; } #mainmenu .DynamicMenuStyle { border-top: solid 1px #C3D8EF; border-left: solid 1px #C3D8EF; border-right: solid 1px #C3D8EF; } #mainmenu .DynamicMenuItemStyle { border-bottom: solid 1px #C3D8EF; } #mainmenu .DynamicMenuItemStyle a { display: block !important; padding: 3px 25px 3px 10px; color: #0171BA; } #mainmenu .DynamicHoverStyle, #mainmenu .DynamicSelectedStyle { background: url(Images/NavImageOn.gif) no-repeat top right; color: #A1BC00; } #mainmenu .DynamicHoverStyle a, #mainmenu .DynamicSelectedStyle a { color: #A1BC00; }
最后用浏览器查看, 在IE 7.0, 和firefox下,menu的显示一切正常,但是在用opera浏览, 却发现在css 中style却没有应用,本以为可能是某些css的标签不符合opera
的标准, 但是无论如何修改,发现都是徒劳。
后来,在删除 css中class定义中,div的id之后,menu才可以在opera中正常显示。
#mainmenu
{
bottom: 0;
left: 0;
width: 100%;
font-size: 93%;
font-weight: bold;
border-bottom: solid 2px #C3D8EF;
}.MainMenuControl {margin-left: 40px;}
.MenuItemStyle
{
background: url(Images/NavImageOff.gif) no-repeat top right;
color: #0171BA;
}
.MenuItemStyle a
{
display: block !important;
padding: 5px 15px;
background-image: none !important;
background-repeat: no-repeat;
}.HoverStyle, .SelectedStyle
{
background: url(Images/NavImageOff.gif) no-repeat top right;
color: #A1BC00;
}.DynamicMenuStyle
{
border-top: solid 1px #C3D8EF;
border-left: solid 1px #C3D8EF;
border-right: solid 1px #C3D8EF;
}.DynamicMenuItemStyle
{
border-bottom: solid 1px #C3D8EF;
}.DynamicMenuItemStyle a
{
display: block ;
padding: 3px 25px 3px 10px;
color: #0171BA;
}.DynamicHoverStyle, .DynamicSelectedStyle
同样的问题在asp.net fourm: http://forums.asp.net/t/1250075.aspx
{
background: url(Images/NavImageOff.gif) no-repeat top right;
color: #A1BC00;
}
.DynamicHoverStyle a, .DynamicSelectedStyle a
{
color: #A1BC00;
}