仅在整个页面上选择第一个标题

时间:2014-11-20 16:40:47

标签: html css css3 twitter-bootstrap

我正在尝试选择第一个标题(h2)和第一个标题。 我可以选择标题,但由于标题嵌套在单独的div元素中,因此我得到了所有标题(这非常有意义)。

我尝试过选择:

CSS

div.row:first-child h2:first-of-type {
// do stuff //
}

但这并不好,因为有很多div有一类“行”。

目前我有这个:

CSS

div.row h2:first-of-type {
    background-color: red;
}

选择我的两个标题(我理解为什么)。但是,我只有一个是第一个。

感谢您的时间!

jsFiddle example

3 个答案:

答案 0 :(得分:1)

鉴于您的HTML,为什么不这样做:

.row .row:first-of-type h2 {
    background-color: red;
}

Demo fiddle

这将选择父包装.row中的第一个.row,其中HTML将包含第一个h2。如果它包含多个.row .row:first-of-type h2:first-of-type

,只需将其更改为h2即可

答案 1 :(得分:0)

SW4的答案在这种情况下运行正常,但是如果你改变HTML,它(可能)会失败。

你可以在h2上添加一个类吗?这可能是解决这个问题的最简单方法。

E.g:

一些标题 一些标题

这样很容易:

  1. 使用.heading
  2. 设置所有标题的样式
  3. 使用.heading--main类对主标题进行不同的样式设置,同时保留.heading类中的所有样式。

答案 2 :(得分:-1)

尝试下面的css,我使用了一个虚拟类.first你也可以使用id ...

  <div class="row">
            <div class="col-xs-12">
                <div class="row">
                    <div class="col-xs-12 col-md-4 text-center">
                        <!-- image goes here -->
                    </div>
                    <div class="col-xs-12 col-md-8 first">
                         <h2>My Headline</h2>

                        <p>My Text.</p>
                    </div>
                </div>
                <div class="row">
                    <div class="col-xs-12 col-md-4 text-center">
                        <!-- image goes here -->
                    </div>
                    <div class="col-xs-12 col-md-8">
                         <h2>My Headline</h2>

                        <p>My Text.</p>
                    </div>
                </div>
            </div>
        </div>

css

div.row .first h2:first-of-type {
    background-color: red;
}