css基础--选择器(中)

css基础–选择器(中)


三、伪类选择器

1.动态伪类:共五种
​ 什么时候用?一般和超链接的a标签配合使用。
​ (1) link{} 链接初始的样式, 指的是a标签。
我是超链接
​ 样式:a:link {
​ color: red;
​ }
​ 效果图:
在这里插入图片描述

(2).a:visited{} 链接访问过后的样式, 指的是a标签。
我是超链接
​ 样式:a:visited {
​ color: pink;
​ }
​ 效果图:
在这里插入图片描述

(3).a:hover{} 鼠标悬停,可以是任何标签。
我是超链接
​ 样式:a:hover {
​ color: blue;
​ }
​ 效果图:

在这里插入图片描述

(4).a:active{} 链接按住不动的时候的样式。
我是超链接
​ 样式:a:active {
​ color: green;
​ }
​ 效果图:
在这里插入图片描述

(5).input:focus{} 选择获得焦点的输入字段之后的样式。
html <input type="text" value="请输入文字"/>
​ 样式:input:focus {
​ width: 300px;
​ height: 100px;
​ }
​ 效果图:
在这里插入图片描述

注意:前4个如果都是同时给a的话,顺序不要乱

​ 2.UI状态伪类选择器:
​ 什么时候用?主要是表单相关使用
​ (1)input:disabled{} 禁用的时候

  		<form>
           <input type="text">
           <input type="password" disabled="disabled">
            <input type="radio" />
           <input type="checkbox" />
            <input type="submit" />
      </form>

​ 样式:input:disabled{width: 300px; height: 300px;}
效果图:
在这里插入图片描述

​ (2)input:enabled{} 可用状态下的时候

 <form>
          <input type="text">
          <input type="password" disabled="disabled">
          <input type="radio" />
	  <input type="checkbox" />
         <input type="submit" />
 </form>

​ 样式:input:enabled{width: 300px; height: 300px;}
​ 效果图:
在这里插入图片描述

​ (3)input:checked{} 选中的时候

<form>
  <input type="text">
 <input type="password" disabled="disabled">
 <input type="radio" />
 <input type="checkbox" />
 <input type="submit" />
</form>

​ 样式:input:checked{width: 300px; height: 300px;}
​ 效果图;
在这里插入图片描述

3.结构伪类选择器

(1)-child结尾的
​ 含义:某个父元素下面的某个或者某些子元素变
01. :first-child{}
这个表示的意思是box下面所有的第一个子元素变

				<div class="box">
					<div></div>
					<div></div>
					<div></div>
					<div></div>
				</div>

样式:.box:first-child {
​ width: 50px;
​ height: 50px;
​ margin-bottom: 10px;
​ background-color: red;
​ }
效果图:
在这里插入图片描述

02 :last-child{}
.box下面的最后一个子元素是ul的话就变

				<div class="box">
					<div>11111</div>
					<div>22222</div>
					<div>33333</div>
					<div>44444</div>
					<ul>
						<li>55555</li>
					</ul>
				</div>

样式:.box ul:last-child {
​ width: 100px;
​ height: 50px;
​ background-color: red;
​ }
效果图:
在这里插入图片描述

03 :nth-child(){} 可以带参数,只能是n,n从0开始,如:nth-child(4)
.box下面的第2个子元素是p的变

					<div class="box">
						<div>11111</div>
						<p>22222</p>
						<div>33333</div>
						<div>44444</div>
						<ul>
							<li>55555</li>
						</ul>
					</div>

样式:.box p:nth-child(2) {
​ width: 100px;
​ height: 50px;
​ background-color: red;
​ }
效果图:
在这里插入图片描述

04 :nth-last-child(){}
在所有的子元素里面倒数第2个且是p的变化

            <div class="box">
              <div>11111</div>
              <h3>22222</h3>
              <div>33333</div>
              <div>44444</div>
              <ul>
                   <li>55555</li>
              </ul>
              <div>
                  <h3>00000</h3>
                  <h3>121212</h3>
              </div>
              <p>66666</p>
              <div>77777</div>
           </div>

样式:.box p:nth-last-child(2) {

                     border: 3px solid red;

   }

效果图:在这里插入图片描述
05 :only-child{}
只有一个子元素是p的时候变,不止一个p的时候没变化

<div class="box">
		<div>11111</div>
		<p>22222</p>
		<div>33333</div>
		<p>44444</p>
		<ul>
			<li>55555</li>
		</ul>
</div>

样式:.box p:only-child {
​ width: 100px;
​ height: 50px;
​ background-color: red;
​ }
效果图:
在这里插入图片描述
因为不止一个p,所以无变化。

<div class="box">
		<div>11111</div>
		<p>22222</p>
		<div>33333</div>
		<div>44444</div>
		<div>
			<p></p>
		</div>
		<ul>
			<li>55555</li>
		</ul>
</div>

样式:.box p:only-child {
​ width: 100px;
​ height: 50px;
​ background-color: red;
​ }
效果图:在这里插入图片描述
因为只有一个p,所以样式发生了变化
(2).-type结尾的:同类型的某个或者某些变化
​ 01 :first-of-type{}
​ box下面的所有的h3里面的第一个

                <div class="box">
                  <div>11111</div>
                  <h3>22222</h3>
                  <div>33333</div>
                  <h3>44444</h3>
                  <ul>
                      <li>55555</li>
                  </ul>
              </div>

​ 样式:.box h3:first-of-type {
​ width: 100px;
​ height: 50px;
​ background-color: red;
​ }
​ 效果图:
在这里插入图片描述

​ 02 :last-of-type{}
​ box下面的所有的h3里面的最后一个

				<div class="box">
					<div>11111</div>
					<h3>22222</h3>
					<div>33333</div>
					<h3>44444</h3>
					<ul>
						<li>55555</li>
					</ul>
				</div>

​ 样式:.box h3:last-of-type {
​ width: 100px;
​ height: 50px;
​ background-color: red;
​ }
​ 效果图:

在这里插入图片描述

​ 03 :nth-of-type(n){}
​ 选择相同标签的第n个元素变化

				<div class="box">
						<div>11111</div>
						<h3>22222</h3>
						<div>33333</div>
						<h3>44444</h3>
						<ul>
							<li>55555</li>
						</ul>
						<h3>66666</h3>
				</div>

​ 样式:.box h3:nth-of-type(3) {
​ width: 100px;
​ height: 50px;
​ background-color: red;
​ }
​ 效果图:
在这里插入图片描述
​ 04 :nth-last-of-type(n){}
​ 选择相同标签的倒数第n个元素变化

				<div class="box">
					<div>11111</div>
					<h3>22222</h3>
					<div>33333</div>
					<h3>44444</h3>
					<ul>
						<li>55555</li>
					</ul>
					<h3>66666</h3>
					<h3>77777</h3>
				</div>

​ 样式:.box h3:nth-last-of-type(2) {
​ width: 100px;
​ height: 50px;
​ background-color: red;
​ }
​ 效果图:
在这里插入图片描述

​ 05 :only-of-type{}
​ 选择父元素下的相同标签的唯一子元素变化

				<div class="box">
					<div>11111</div>
					<h3>22222</h3>
					<div>33333</div>
					<div>44444</div>
					<ul>
						<li>55555</li>
					</ul>
					<div>
						<h3>00000</h3>
						<h3>121212</h3>
					</div>
					<div>66666</div>
					<div>77777</div>
				</div>

​ 样式:.box h3:only-of-type {
​ width: 100px;
​ height: 50px;
​ background-color: red;
​ }
​ 效果图:
在这里插入图片描述

(3) :empty 当元素为空的时候变化
​ 例题:

<div class="box">
		<div>11111</div>
		<h3>22222</h3>
		<div>33333</div>
		<div>44444</div>
		<ul>
			<li>55555</li>
		</ul>
		<div>
			<h3>00000</h3>
			<h3>121212</h3>
		</div>
		<p></p>
		<div>77777</div>
		</div>

样式:
​ .box p:empty {
​ border: 3px solid red;
​ }
​ 效果图:
在这里插入图片描述

(4) :root 根元素变化
例题:

<div class="box">
		<div>11111</div>
		<h3>22222</h3>
		<div>33333</div>
		<div>44444</div>
		<ul>
			<li>55555</li>
		</ul>
		<div>
			<h3>00000</h3>
			<h3>121212</h3>
		</div>
		<p></p>
		<div>77777</div>
		</div>

样式:
​ :root{
​ border: 3px solid red;
​ }
​ 效果图:
在这里插入图片描述
4.否定伪类::not(否定的条件) {}
​ 除某个东西以外如p标签的其它标签改变
​ 例题:

<ul>

      <li>11111</li>
      <p>22222</p>
      <li>33333</li>
      <li>44444</li>
      <li>55555</li>
      <p>77777</p>
     <li>66666</li>
    </ul>

​ 样式:ul :not§ {

​ border: 3px solid red;

​ }

​ 效果图:

在这里插入图片描述

​ 拓展:将否定伪类与其他伪类结合使用:
​ 除了偶数的li,其它的li变化

  <ul>

      <li>11111</li>
      <li>22222</li>
      <li>33333</li>
      <li>44444</li>
      <li>55555</li>
      <li>66666</li>
      <li>77777</li>
      <li>88888</li>
    </ul>

​ 样式:ul li:not(:nth-of-type(2n)) {
​ border: 3px solid red;
​ }

​ 效果图:
在这里插入图片描述
注意:否定伪类除了:nth-of-type()可以和其它的结构伪类相互结合从而实现更灵活的样式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值