Home >Web Front-end >CSS Tutorial >CSS descendant selector

CSS descendant selector

php中世界最好的语言
php中世界最好的语言Original
2018-03-20 15:22:023842browse

This time I will bring you the CSS descendant selector. What are the precautions when using the CSS descendant selector? Here is a practical case, let’s take a look.

The descendant selector is used to select all descendants of a tag, including children and grandchildren, etc.; while the descendant selector only selects the descendant tags of the specified parent (the first generation child elements of the specified tag element) .

The descendant selector uses an extra symbol (angle brackets > ) to indicate the relationship between two elements.

For example: body>h1 selects all the first-generation

tags in the tag.

Relationship diagram of HTML tag

##HTML code

<h1>body里面的h1标题</h1>
<p>
    <h2>p里面的h2</h2>
    <p>
        p里面的p标签,p标签里面有一个<strong><a href="#">加粗的链接</a></strong>
    </p>
</p>
<h2>body里面的h2标题</h2>
<ul>
    <li>列表1
        <ul>
            <li>小列表a</li>
            <li>小列表b</li>
            <li>小列表c</li>
        </ul>
    </li>
    <li>
        <a href="#">列表2(带链接)</a>
    </li>
    <li>
        <a href="#">列表3(带链接)</a>
    </li>
</ul>
After understanding the above structure, you can try the following code:

CSS code

body>h2 {
    color: orange;
}

In the above HTML code, there are a total of 2 < ;h2> tag, but has only one child of

, and the other

is inside

, so the above CSS code only works on the first

Label.

The following is a more interesting child selector

:first-child

Select the first sub-tag.

CSS code

h2:first-child {
    color: orange;
}

The function of this selector is: first find all

tags in the web page, and then find them through the

tag parent element, and then determine whether the

tag is ranked first in its parent element.

Here because the first tag of is

, the child element

of is not affected by the style.

Because

in

is the first child element of

, so the

in

becomes orange.

:last-child

This selector is similar to the :first-child selector, but it selects the last child of an element.

CSS code

li:last-child {
    font-size: 2em;
}

You can see that the font size of "Small List C" and "List 3 (with link)" has become larger. Because these two items are the last items specified.

:only-child

Select the only child of an element.

HTML code

<p>
    <p>第一个p的p</p>
</p>
<p>
    <p>第二个p的第一个p</p>
    <a href="#">第二个p的第一个a</a>
</p>
CSS code

p:only-child {
    color: orange;
}

The above styles only apply to the first

element. Since there are not only

elements in the second

, but also an element, the

element of the second

will not be affected by the above style.

This selector is difficult to understand. The style defined by this selector is only effective if the specified tag is the only descendant of another tag. In other words, it is not enough if there is only one specified tag in the descendant. If the specified tag has other sibling tags, the style defined by this selector will be invalid.

:nth-child

This selector is more complicated to use, but it is also particularly useful.

This selector can easily define styles for rows in a table, items two items apart in a list, or other numbers of descendant elements.

This selector requires a value to determine which descendants are selected.

The simplest values ​​are keywords, namely odd and even.

  1. odd用于选取奇数子代元素。

  2. even用于选取偶数子代元素。

HTML代码

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
</ul>

CSS代码

li:nth-child(odd) {
    background: pink;
}
li:nth-child(even) {
    background: teal;
}

第一个子元素的下标是 1。

需要注意的是,如果在第一个

  • 之前还有其他元素,那第一个
  • 的下标就不是1了。
    比如

    HTML代码

    <ul>
        <a href="#">a</a>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
    </ul>

    这时的效果是

    li:nth-child(odd) 的意思是找到

  • 元素的父元素,通过父元素来检测每一个
  • 的下标的奇偶。

    因为

  • Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn