从外部CSS查询静音媒体



我在页面中使用W3CSS样式表来使用ul列表显示菜单。它工作得很好,但是对于我的需要,它切换到最小的样式的方式太快了。

当视口大小等于或小于600px时,在第158行、159行和160行涉及到3个媒体查询:

@media screen and (max-width:600px){.w3-topnav a{display:block}.w3-navbar li:not(.w3-opennav){float:none;width:100%!important}.w3-navbar li.w3-right{float:none!important}} 
@media screen and (max-width:600px){.w3-topnav .w3-dropdown-hover .w3-dropdown-content,.w3-navbar .w3-dropdown-click .w3-dropdown-content,.w3-navbar .w3-dropdown-hover .w3-dropdown-content{position:relative}}    
@media screen and (max-width:600px){.w3-topnav,.w3-navbar{text-align:center}}

我希望它切换到350px,但我想避免编辑w3.css文件,每次我需要应用任何修改,也因为我在其他页面使用该文件,我需要那里的默认行为。

是否有办法从我的任何CSS中静音w3.css媒体查询?基于javascript的解决方案是可以接受的,但如果可能的话,我希望避免这些。

提前谢谢你

编辑

我不确定我的请求是否足够清楚,所以我将尝试在这里重新定义它。

我想从w3.css文件中静音这些媒体查询,所以我可以在我的CSS文件中覆盖它们,使用max-width: 350px而不是600px

你所能做的就是创建一个custom.css样式表并将其加载到标题区域。这将反过来加载你的css样式表作为覆盖。

查看了应用于元素的各种样式,并隔离了与.w3-navbar类相关的样式后,我已经能够修改行为以满足我的需要,而无需修改原始的w3.css样式表。

首先,我已经恢复了媒体查询的样式在600px:
@media screen and (max-width:600px){
    /* reverting the effects of the original @media query */
    .w3-navbar li:not(.w3-opennav){float:left; width: initial!important}
    .w3-navbar li.w3-right{float: right !important;}
    .w3-navbar .w3-dropdown-click .w3-dropdown-content,
    .w3-navbar .w3-dropdown-hover .w3-dropdown-content{position:static}
    .w3-navbar{text-align:initial}
}

然后我将原来的w3.css样式添加到350px:

的媒体查询中
@media screen and (max-width:350px){
    /* these styles are the same as the ones in the original w3.css stylesheet,
       in @media screen and (max-width: 600px), lines 158 to 160 */
    .w3-navbar li:not(.w3-opennav){float: none; width: 100%!important}
    .w3-navbar li.w3-right{float: none !important;}
    .w3-navbar .w3-dropdown-click .w3-dropdown-content,
    .w3-navbar .w3-dropdown-hover .w3-dropdown-content{position:relative}
    .w3-navbar{text-align:center}
}

上面的样式需要放在一个自定义样式表加载after w3.css样式表。

这不是一个快速的解决方案,涉及到对原始样式表的大量研究。在我的例子中,有200行左右,这几乎是一项简单的任务。

对于较大的样式表,我强烈建议您编写自己的样式,这将花费您更少的时间,并且您将知道发生了什么。

最新更新