css选择内部标签

时间:2013-06-18 14:16:05

标签: html css

我有这个css:

.test1 {
font-size:10pt;
}

.test2 {
font-size:12pt;
}

我有这个html:

<div class='test1'>name</div>
<div class='test2'>desc_name</div>


<div class='test1'>family</div>
<div class='test2'>desc_family</div>


<div class='test1'>password</div>
<div class='test2'>desc_pass</div>

我要做的是选择类test1,但只选择标签内包含“family”的标签并给出背景


我只需要一个css的解决方案,我不需要在html内部进行更改
可能吗 ? 谢谢

4 个答案:

答案 0 :(得分:4)

纯CSS无法实现。您无法使用CSS(3及更高版本)选择元素内容。

唯一可以做的是指定一些属性,如:

<div class='test1' data-value="family">family</div>

然后用CSS选择它:

div.test1[data-value='family'] { /* ... */ }

答案 1 :(得分:1)

如果您使用的是CSS3以下的任何内容 -

div.test1:contains("family") {
  background: *;
}

CSS3中不推荐使用:contains()伪类 - 我不推荐使用它,也不完全肯定任何浏览器完全支持它。这个答案完全是主观的。

编辑:显然:contains() psuedo类在jQuery中运行(在第1.9版中测试过)。

您可以使用jQuery更改样式。 (此解决方案需要仅限CSS的解决方案,但如果可以,请使用它!)

$("div.test1:contains('family')").css({ background: "whatever" });

答案 2 :(得分:0)

你可以使用像这样的多个类,

.test1 {
font-size:10pt;
}
.test2 {
font-size:12pt;
}
.family {
/* style */
}

和HTML代码,

<div class='test1 family'>family</div>
<div class='test2'>desc_family</div>

答案 3 :(得分:0)

    <div class='test1 family'>family</div>
    <div class='test2'>desc_family</div>

我会建议这个以防止覆盖

    .test1 {
    font-size:10pt;
    }
    .test2 {
    font-size:12pt;
    }
    .test1.family {
    /* style */
    }