Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 媒体查询不再更新CSS属性,如果这些属性已经在JS中操作过_Javascript_Css_Html_Media Queries - Fatal编程技术网

Javascript 媒体查询不再更新CSS属性,如果这些属性已经在JS中操作过

Javascript 媒体查询不再更新CSS属性,如果这些属性已经在JS中操作过,javascript,css,html,media-queries,Javascript,Css,Html,Media Queries,我正在使用浮动元素和负边距设置一个响应性布局 调整浏览器大小一切都很好:桌面的内容+左侧和右侧边栏,平板电脑的内容和右侧边栏以及画布左侧边栏,手机的左侧和右侧边栏 我使用JavaScript来改变负边距,例如,当单击按钮时,左边栏会出现在画布上,当再次单击时,会将其移回画布之外的位置(在调试中确认) 但是,现在我已经用JavaScript操作了边距,调整浏览器的大小现在破坏了布局,因为当我通过媒体查询阈值时,我用JavaScript更新的属性不再更新 媒体查询仍在“工作”--例如,菜单按钮的显示

我正在使用浮动元素和负边距设置一个响应性布局

调整浏览器大小一切都很好:桌面的内容+左侧和右侧边栏,平板电脑的内容和右侧边栏以及画布左侧边栏,手机的左侧和右侧边栏

我使用JavaScript来改变负边距,例如,当单击按钮时,左边栏会出现在画布上,当再次单击时,会将其移回画布之外的位置(在调试中确认)

但是,现在我已经用JavaScript操作了边距,调整浏览器的大小现在破坏了布局,因为当我通过媒体查询阈值时,我用JavaScript更新的属性不再更新

媒体查询仍在“工作”--例如,菜单按钮的显示在媒体查询中设置为打开和关闭


我需要做些什么来“刷新”我的媒体查询,以便它们使用JavaScript更新可能已更改的属性,然后再更改回来?

当您直接在DOM元素上更新属性时,这些样式的优先级高于CSS样式表中的样式。没有办法“刷新”事物;这不是浏览器的工作方式


为了避免此类问题,可以通过在元素中添加/删除类来间接更新DOM。然后,您可以控制这些类如何以受媒体查询影响的方式影响样式表中的显示。

css与javascript一起添加,作为内联样式,将胜过任何外部样式标记或样式表!我应该能够重新调整东西,让它在这个基础上工作。谢谢你的帮助!