2010-04-30 134 views
3

我有一个客户前端网站,其中有一个目录,主页,联系页面,关于我们页面等。还有一个管理前端。我想实现一种层次结构,其中具有类“admin”的元素中的任何元素都将继承管理样式表中设置的属性,并从客户样式表继承其他任何内容。这样做的目的是让管理员可以在管理员前端登录,他们可以访问许多高级内容,但他们也可以导航到客户前端,在那里他们可以执行基本任务(例如隐藏目录项目,运行如果客户报告问题,则为调试脚本等)。我希望客户前端的所有管理工具都具有来自管理样式表而不是客户的属性 - 这将改变背景颜色和内容。CSS - 类层次结构?

有没有简单的方法来建立类似命名空间,使事情变得更简单,例如:

.admin { 
    .list { 
     .list-subtitle 
     { 
     } 
     .list-item 
     { 
     } 
    } 
    a 
    { 
    } 
} 
.customer 
{ 
    .list 
    { 
     .list-subtitle 
     { 
     } 
     .list-item 
     { 
     } 
    } 
    a 
    { 
    } 
} 

我知道这可能是这样的:

.admin .list {} 
.admin .list .list-item {} 
.admin a 

我只是不希望有始终坚持把.admin。

有没有人对我如何做到这一点有任何建议?我想我可以编写一个.net类来设置它,并根据输入的内容写入一个样式表,但之后我无法读取样式,所以很容易添加,会有各种类似Classes.Add(blah ) 等等。

预先感谢任何答复......

问候,

理查德

<ul class="customer"> 
    <li>Will appear as a customer control</li> 
    <li>Will appear as a customer control</li> 
    <li class="admin">Will appear as an admin control</li> 
</ul> 
<div class="customer"> 
    <ul class="admin"> 
     <li>Will appear as an admin control</li> 
     <li>Will appear as an admin control</li> 
     <li>Will appear as an admin control</li> 
    </ul> 
</div> 

基本上,你可以看到,我想带班 “admin” 的任何元素,或在一个类为“admin”的元素将在管理前端显示。否则,它们会像在客户前端那样出现。这也可以用于其他方式,因此管理员可以在将其提交到数据库之前预览他们所输入的内容,因为它会出现在客户前端。

如果在CSS中允许命名空间,这将是没有问题的 - 不幸的是像Less这样的东西似乎是我唯一可以轻松实现的选项。 (我说不幸,因为我以前从未使用过它,而且我对此非常严格的时间限制 - 我没有反对像Less这样的工具!)。

问候,

理查德

回答

7

您是否使用Less CSSSASS

+0

看起来像这些答案都是我在找什么..谢谢.. 并不像我希望的那么简单(只是因为我希望它可以直接在CSS中,而不必下载和安装任何东西) Ta 。 – ClarkeyBoy 2010-04-30 17:26:11

+0

不幸的是,你可以做的不多,以避免在香草CSS中重复自己。 根据您的场景,可以动态地包含样式表的管理版本(将两者都更改为无法使用.client和.admin限定后)?包括两个,当一个管理员登录时,第二个样式表可以覆盖第一个任何东西... – 2010-04-30 17:47:39

+0

我想我可以只包括admin.css,就像你说的,如果用户登录。我曾经想过并得出结论,我可能仍然需要将.admin前缀放在样式之前 - 否则整个页面会应用管理样式,而我不希望这样。基本上我想要有一个List控件,如果它包含管理链接,则父级div应用类“admin”,以便所有子元素都像管理员前端一样显示。它有点复杂的解释..将jst看我是否可以张贴代码片断,挂上.. – ClarkeyBoy 2010-04-30 18:09:49

5

有没有本地CSS方法,但你可以使用类似LESS,这将使你把它写这样的,把它编译成真正的CSS。

还有HSS,它也支持像您指定的嵌套规则。

+0

貌似这两个答案都在寻找什么即时通讯的..感谢.. 并不是这么简单,我所希望的(不仅是因为我希望它直接在CSS是可能的,而不必下载和安装任何东西) Ta。 – ClarkeyBoy 2010-04-30 17:26:38