三种基本选择器

三种基本选择器

  • 标签选择器
  • 类选择器
  • id选择器

标签选择器:使用标签,例如<p>标签,表示选中所有的<p>标签

p{
	color:red;
}

**类选择器:**使用该标签会选中所有带有class标记的元素

.tag{
    color:red;
}
<p class="tag">
    示例1
</p>
<p class="tag">
    示例2
</p>

**id选择器:**只能有一个唯一的id,选中指定的id

#tag{
    color:red;
}
<p id="tag">
    示例1
</p>
<p class="tag">
    示例2
</p>

层次选择器

  • 后代选择器
  • 子代选择器
  • 相邻兄弟选择器
  • 通用选择器

**后代选择器:**选择后代的所有元素

body p{
    color:red;
}
<body>
    <p>
        <ul>
            <li>示例1</li>
            <li>示例2</li>
            <li>示例3</li>
    	</ul>
    </p>
    <p>
		<ul>
            <li><p>示例4</p></li>
		</ul>
    </p>
	<p>示例5</p>
</body>

示例4示例5会变成红色,而被<p>标签包裹的无序列表不会变红色

**子代选择器:**只选择后代中的第一代

body>p{
    color:red;
}
<body>
    <p>
        <ul>
            <li>示例1</li>
            <li>示例2</li>
            <li>示例3</li>
    	</ul>
    </p>
    <p>
		<ul>
            <li><p>示例4</p></li>
		</ul>
    </p>
	<p>示例5</p>
	<p>示例6</p>
</body>

示例5示例6都会变红色,因为他们是body的第一代

**相邻兄弟选择器:**只选择同辈相邻的一个兄弟,而且是在选择元素后面的兄弟,不会选择前面的兄弟

.tag + p{
    color: red;
}
<body>
    <p class="tag">
        <ul>
            <li>示例1</li>
            <li>示例2</li>
            <li>示例3</li>
    	</ul>
    </p>
	<p>弟弟</p>
    <p>
		<ul>
            <li><p>示例4</p></li>
		</ul>
    </p>
	<p class="tag">示例5</p>
	<p>示例6</p>
</body>

示例6会变红色,但是弟弟不会变红色,因为弟弟不在tag标记的相邻位置

**通用选择器:**选择后面所有的兄弟,但是不选择前面的兄弟

.tag ~ p{
    color: red;
}
<body>
    <p class="tag">
        <ul>
            <li>示例1</li>
            <li>示例2</li>
            <li>示例3</li>
        </ul>
    </p>
	<p>二哥</p>
    <p>弟弟</p>
    <p>
        <ul>
            <li><p>示例4</p></li>
        </ul>
    </p>
    <p>示例5</p>
    <p>示例6</p>
</body>

二哥、弟弟、示例5、示例6都变红,因为他们都是同一辈下的兄弟

结构伪类选择器

ul li:first-child{
background: red;
}

在ul的所有后代li中选择第一个孩子

p:nth-child(1){
background: red;
}

在p的父级中,所有的后代的第一个后代是p的话被选中但是在所有后代中,其他不是p的也会被算在其中,就是说,在后代中第一个不是p,第二个是p,就不会选中p

p:nth-of-type(1){
background: blue;
}

在p的父级中,所有的p后代中第一个后代被选中,即使后代中有不同的标签,用type就不会算其他的标签,只算p的第一个

属性选择器

标签名+[属性]{样式}

例如:a[id]{ color:red;},在所有a标签中,带有id属性的,都会选中;

a[id=tag]{color:red;},在所有a标签中,带有id属性且等于tag的,会被选中;tag不用加双引号。

a[class=“tag”]{color:red},在所有a标签中,带有class属性且等于tag的,都会被选中;tag要加双引号。

进行判断时:

= 是绝对等于,必须全部都相同;

*= 是包含等于,只要有一部分相同就可以;

^= 是以这个开头的都可以;

$= 是以这个结尾的都可以;

上一篇:win10安装spacemacs


下一篇:jQuery