0

我正在尝试在 dotnetnuke 框架中实现媒体查询。有没有办法有条件地选择要使用的css?我试图阻止不支持媒体查询的 IE6/7/8 不访问媒体查询 CSS:

继承人并从我的代码中提取不起作用:

<%@ Register TagPrefix="ddn" TagName="MENU" src="~/DesktopModules/DDRMenu/Menu.ascx" %>
<%@ Register TagPrefix="ddn" TagName="MOBMENU" src="~/DesktopModules/DDRMenu/Menu.ascx" %>
<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>

<![if !(IE 6)|(IE 7)|(IE 8)]>
    <dnn:DnnCssInclude runat="server" FilePath="mq.css" PathNameAlias="SkinPath" />                    
<![endif]>


        <div id="wrapper">


            <div id="header">
                <div id="logo">
                    <dnn:LOGO runat="server" id="dnnLOGO" />
                </div>
4

2 回答 2

0

你可以使用这个皮肤对象来实现CSS的条件加载:

40fingers 风格的辅助皮肤对象

于 2012-09-06T08:43:59.353 回答
0

DnnCssInclude 没有“条件”属性,您必须改用此皮肤对象:

<%@ Register TagPrefix="dnn" TagName="STYLES" Src="~/Admin/Skins/Styles.ascx" %>
<dnn:STYLES runat="server" ID="StylesIE7" Name="IE7Minus" StyleSheet="ie7skin.css" Condition="LT IE 8" UseSkinPath="true"/>

上面的代码取自 DNN6 附带的 DarkKnight 皮肤。

你真的需要隐藏来自旧浏览器的媒体查询吗?不支持媒体查询的浏览器会忽略它们。

编辑:您的媒体查询的语法是什么?如果你使用

@media screen and (min-width: 300px) {.box  { background-color: red; }}

然后IE6,7会忽略它,我刚刚测试过。如果你使用这样的东西:

@media screen {.box  { background-color: red; }}

或者

@media screen, all and (min-width: 300px) {.box  { background-color: red; }}

然后 IE6,7 会选择这些样式。您可能需要调整语法。阅读这篇文章,它很旧,但仍然适用于 IE6,7。

于 2012-09-05T12:43:45.380 回答