第一个孩子不在我的代码中工作

时间:2013-04-13 17:54:19

标签: html css

我不知道为什么a:first-child无效。这是我的HTML:

<!DOCTYPE html>
<link href='http://fonts.googleapis.com/css?family=Geo' rel='stylesheet'>
<title>Mira's place</title>
<header>
    <a href="index.html">Mira's place</a><br>
    <h2>&#8220;<span id="quote">If nothing, then this.</span>&#8221;</h2>
        <ul>
            <li><a href="#">Home</a>
            <li><a href="#">Games</a>
            <li><a href="#">Pixel Art</a>
            <li><a href="#">Contact</a>
        </ul>
</header>
<section>
    <h2>This is test H2</h2>
    <p>This is lorem ipsum shitsum, blah <a href="#">Test</a> blah baldflksafdjsl adslkf ajfdlks ajfldsa jflksda lfhsdalf jdsalfh sdlfdshfdsk fjsdl ajfl
</section>
<footer>
    <p>(C) MiraCZ 2013 - You can copy anything here! 
</footer>

这是我的CSS

html {
    background-color: #002240;
    font-family: "Geo", sans-serif;
    margin: 0;
}
header {
    background-color: #001629;
    margin: 0 -10px 0 -10px;
}
a:first-child {
    color: #FF628C;
    font-size: 36px;
}
header h2 {
    color: #80FFBB;
}
li {
    display: inline-block;
    font-size: 18px;
}
p {
    color: white;
}

我只想让第一个a大小为36px。任何人都可以帮助为什么它会影响其他a?这是我的jsfiddle http://jsfiddle.net/dsT4Z/

这是我看到的。我添加了红色箭头来显示哪些a我不想成为那么大的等等。

enter image description here

3 个答案:

答案 0 :(得分:2)

导航中的所有<a>代码都是包含<li>代码的第一个子代,因此符合规则。

文本区域中的那个是包含<p>的第一个(元素)子项,因此符合规则。

在您真正想要影响的元素上使用ID或类名称要容易得多。

答案 1 :(得分:1)

在我看来,您只希望第一个<a>立即嵌套<header>作为目标。将a:first-child规则更改为:

/* only target an <a> element which is the first immediate child of a <header> element */
header > a:first-child {
    /* ... */
}

这样只会影响<header>的第一个直接孩子。 http://jsfiddle.net/dsT4Z/1/

答案 2 :(得分:-1)

我认为您应该考虑使用:nth-of-type()选择器。这似乎更适合这个应用程序。

first-child只会选择第一个孩子。使用nth-of-type,您可以保证选择标题元素的第一个直接锚子项。

header > a:nth-of-type(1) {
color: #FF628C;
font-size: 36px;
}

jsFiddle
Documentation