html – 如何封装CSS,特别是对于弹出窗口而不涉及iframe?

刚刚从设计团队获得了一个带有css的新网页,用于制作精美的盒子弹出窗口;

他们不知道或不关心寻找现有的课程和ID;

我需要一个没有任何IFRAME的工作解决方

问题是主css文件中已经有超过20,000个css行,并且在某些时候某些东西会被覆盖,整个网站将会发生大爆炸!

这个新的网页有很常见的类和id名称,我说的是几乎100个带有css属性标签;

我想知道是否有一种方法来封装这个新的css属性和未来的属性;

如果有办法做到这一点,怎么办呢?

有了这个网页,我很幸运,我用内容粘贴了标签,就在此之前,我使用了样式类型“text / css”标签;但我不会总是很幸运;

仅仅因为我们得到了由不同人编写的css代码的网页,如果某些属性名称或id彼此相交,创建新的css类对我来说是不公平的.

我现在有大约10个类的标签,而且大多数情况下,属性是相同的;

解决方法

使用目标规则,让级联为您处理.将弹出窗口放在一个包装器中,并附上您喜欢的名称详细信息.

<div id="myPopupDivWithCommonIds">
    <!-- rest of popup -->
</div>

并将你的css规则定位到该div.

#myPopupDivWithCommonIds .error { color: bright-pink; }
#myPopupDivWithCommonIds #main { width: 93.21%; }

等等.这会处理css规则并防止你的新东西溢出.你必须小心确保没有其他规则涓涓细流;最好的方法是明智地覆盖任何定义的属性(Pekka说的).你也可以对它进行核处理并包含一个自定义的’reboot’或’bootstrap’样式表,并再次将所有规则重新定位到你的新弹出div(就像你说的那样,对于20k行的css很难;但是包括一个文件通过附加#id选择器如上所述的重置规则以你的div为目标有点帮助.

哦,这仍然没有解决重复ID在技术上是无效标记的问题,并且很可能会干扰您尝试在该页面上运行的任何JavaScript.

如果这听起来像一团糟,那就好了.你的开发人员和设计人员已经达到了这一点,并且缺乏严肃的重构,你不会回到一个干净的解决方案.对于你的用例来说,iFrame可能看起来像是一个黑客或者不可能,但它确实会清理你正确预见到的许多问题.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些