css - 为类的组合定义样式

标签 css

有没有办法为类的组合定义样式?例如,我希望我的 HTML 看起来像这样,但输出以适当的颜色呈现:

<span class="red">Red Text</span><br/>
<span class="green">Green Text</span><br/>
<span class="red green">Yellow Text</span><br/>

编辑: 当上面只是一个例子时,似乎让人感到困惑;所以这是另一个例子:

<style>
    .style1 { background-color: #fff; }
    .style2 { background-color: #eee; }
    .style1.highlight { color: red; }
    .style2.highlight { color: blue; }
</style>

<ul>
    <li class="action style1">Do Action 1</li>
    <li class="action style2">Do Action 2</li>
    <li class="action style1 highlight">Do Action 1</li>
    <li class="action style2 highlight">Do Action 2</li>
</ul>

<script language="javascript" type="text/javascript">
$("li.action").bind("click", function(e) {
    e.preventDefault();

    // Do some stuff 

    $(this).addClass("highlight");
    $(this).unbind("click");
});
</script>

同样,这只是一个示例,所以不要纠结于交替元素或类似的东西。我试图避免的是必须为每个不同的 styleN 复制绑定(bind)函数,或者必须编写一个 elseif 结构来检查每个 styleN 类。不幸的是,此代码在 IE 6 或 7 中不起作用 - .style1 和 .style2 元素的突出显示文本最终变为蓝色。

最佳答案

您可以选择多个类:

span.red.green { color: yellow; }

这将适用于任何具有红色和绿色类的 span 元素。这可能不是您想要的,因为它也适用于:

<span class="red green blue">white</span>

请注意,这在 IE 6 中不起作用。

关于css - 为类的组合定义样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/360421/

相关文章:

html - 使用显示 :flex only work properly in index. html 的 div 容器

html - 动态居中行内的元素

html - 如何居中 "position: relative"- 导航栏?

html - 强制 IE9 呈现为 IE8,但仍使用 CSS3 属性

javascript - 图像 slider 如何在附加代码中从一张幻灯片进展到另一张幻灯片?

jquery - 无法将样式更改为 jQuery :s autocomplete element

php - 可以向 WordPress 管理面板添加 css 修改吗?

javascript - 如何向下滚动到 ng-repeat 中的最新条目(AngularJS 或 Javascript)

javascript - 除了某些元素,Angular JS 禁用触摸滚动

CSS 未在本地环境的 PrestaShop 站点上编译 (theme.css)