我有一个Web服务,人们可以在其中编辑他们的页面CSS,但是我在该页面的页脚上有一个栏,我想在每个页面上进行编结...
人们现在可以使用CSS来“删除”它,而我真的不想去解析CSS来删除与该栏有关的规则...是否可以保留样式或重新使用样式加载后保持栏始终可见?
最佳答案
如果您在保存时修改了用户创建的CSS,将后代选择器添加到其所有规则中,您可以将其样式的效果限制为您选择的元素。如果您使用以下HTML:
<html>
<body>
<div id="userEditableArea">
<h2>Stylable</h2>
<p>Users can style this section.</p>
</div>
<div id="footerBar">
Users can't style this section.
</div>
</body>
</html>
用户创建以下样式表,尝试隐藏页脚:
h2 {font-size:2em;}
p {font-color:#333;}
#footerBar {display:none;}
当用户保存样式时,您可以解析并向所有规则中添加
#userEditableArea
,因此它们仅适用于<div id="userEditableArea">
中的元素。使用一两个正则表达式可以很容易地做到这一点。#userEditableArea h2 {font-size:2em;}
#userEditableArea p {font-color:#333;}
#userEditableArea #footerBar {display:none;}
您不希望它们惹的任何麻烦,请放在#userEditableArea之外。
这应该非常健壮-比使用!important规则或高特定性选择器更重要,并且不需要任何JS。