我在页面中使用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样式表。
@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行左右,这几乎是一项简单的任务。
对于较大的样式表,我强烈建议您编写自己的样式,这将花费您更少的时间,并且您将知道发生了什么。