Javascript 禁用或隐藏样式表,您是如何做到的?

Javascript 禁用或隐藏样式表,您是如何做到的?,javascript,html,css,Javascript,Html,Css,我正在建立一个网站,它必须完全在一个窗口之外运行——它永远无法加载另一个页面。因此,我使用了大量的JS来交换屏幕上显示的内容,实际上效果相当不错。然而,我已经没有好的选择器了,我不希望我的样式表太长。因此,我想知道:是否可以通过将样式表放在设置为display:none的div中来禁用样式表 例如: <div style="display:none;"> <style type="text/css"> #my_image{

我正在建立一个网站,它必须完全在一个窗口之外运行——它永远无法加载另一个页面。因此,我使用了大量的JS来交换屏幕上显示的内容,实际上效果相当不错。然而,我已经没有好的选择器了,我不希望我的样式表太长。因此,我想知道:是否可以通过将样式表放在设置为
display:none
div
中来禁用样式表

例如:

<div style="display:none;">
    <style type="text/css">
        #my_image{
            height:100px;
            background-color:red;
        }
    </style>
</div>
<style type="text/css">
    #my_image{
        height:30px;
    }
</style>

#我的偶像{
高度:100px;
背景色:红色;
}
#我的偶像{
高度:30px;
}
在这种情况下,以下哪项适用?我知道,如果两个都加载了,那么第二个将是最新的,因此它将是被读取的。但是假设
div
从一开始就没有着色。当这个脚本运行时,它会是红色的吗


如果这不是一个可行的禁用样式的解决方案,那么请告诉我是什么。

理想情况下,您应该为每个“主题”使用单独的样式表

然后只能在运行时加载正确的样式表,或者:

  • 使用javascript在头部创建/销毁css链接元素
  • 使用javascript将类添加到主体标记“red”或“blue”等。然后让主题中的每个选择器以该类名开头:

    .blue.header{背景:红色;}


要禁用样式表,您需要将其删除,而不仅仅是将其填充到隐藏的div中。样式表不是“显示”材质,因此在div中“隐藏”样式表不会禁用它们。@MarcB那么禁用样式表的方法是什么呢。我过去一直在搞砸这件事,我永远无法让它正常工作。当我用JS设置它时,它是
elem.disabled=true
elem.disabled='true'
elem.disabled=“disabled”
如果需要禁用css,则css的设计很糟糕。使用适当的id选择器和级联继承来确保只处理正确的主题。使用类似于
的东西,然后根据它来设计样式,等等。