繁体   English   中英

css 更改 javascript 后 css 媒体查询不起作用

[英]css media query don' t work after a css change made by javascript

我不明白为什么在使用javascript更改 HTML 元素的宽度后, media query不起作用。 例如,如果一个元素最初的宽度等于200 像素,然后我使用 javascript 100px 200px方式将其宽度更改为 100 像素。因此,当我期望由于媒体查询而对该宽度进行另一次更改时,它不起作用,实际上它保持最后一个大小由 javascript 制造,如下图所示。 那么你能向我解释为什么并且可以解决这个问题吗?

// Embedded CSS : initial width 
 #main { width:48%} 

let main = document.getElementById("main"); // html element
main.style.width="48%";

// css media query code which does not work due to javascript change
@media(max-width: 550px) {
  #main { width:100%}
}

注意:如果 JAVASCRIPT 没有进行任何更改,一切正常

您可以尝试!import ...即使您尝试通过JavaScript更改宽度,宽度将为100 %,对于小于 550 像素的屏幕,宽度将为 100%

完整的工作示例

 const btn = document.getElementById("btn"); const main = document.getElementById("main"); btn.addEventListener("click",function(){ main.style.width="60%"; })
 #main{ height:20px; width:48%; background-color:#00f; margin:auto; } @media(max-width: 550px) { #main { width:100% !important} }
 <div id="main"></div> <button id="btn">set style to 60% by js</button>

您使用了什么 javascript 语法? 例如,如果您使用此语法

document.getElementById("elem").style.width = "500px";

然后它将返回到元素的属性而不是其 css 样式

<div id="elem" style="width: 500px">Hello World!</div>

仅供参考,媒体查询只有在内联样式上没有添加任何样式时才有效,除非您在 css 上添加!important查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM