CSS新增选择器

 目标选择器

  • 子代选择器 div>p
  • 兄弟选择器 div+p  针对的是向下寻找紧挨着的元素(这里是div下紧挨着的p元素)
  • 同级选择器 div~p 针对的也是以下的元素,上面的选不到
  • 属性选择器 【属性名】下面详述

新增的属性选择器

注意:类选择器、属性选择器、伪类选择器,权重都是10。

选择符简介
①E[att]选择具有att属性的E元素
②E[att="val"]选择具有att属性且属性值等于val的E元素
③E[att^="val"]选择具有att属性且值以val开头的E元素
④E[att$="val"]选择具有att属性且值以val结尾的E元素
⑤E[att*="val"]选择具有att属性中含有val的E元素
<style>
      input[value] {
        color: pink;
      }
    </style>
  </head>
  <body>
    <input type="text" value="请输入用户名" />
    <input type="text" />
input[type="text"] {
        color: pink;
      }
    </style>
  </head>
  <body>
    <input type="text" name="" />
    <input type="password" name="" />
<style>
      /* 选择首先是div 然后 具有class属性 并且属性值 必须是icon开头的这些元素 */
      div[class^="icon"] {
        color: red;
      }
    </style>
  </head>
  <body>
    <div class="icon1">小图标1</div>
    <div class="icon2">小图标2</div>
    <div class="icon3">小图标3</div>
    <div class="icon4">小图标4</div>
  </body>
  <style>
      section[class$="data"] {
        color: pink;
      }
    </style>
  </head>
  <body>
    <section class="icon1-data">小图标1</section>
    <section class="icon2-data">小图标2</section>
    <section class="icon3-ico">小图标3</section>
    <section class="icon4-i">小图标4</section>
  </body>
  <style>
      section[class*="icon"] {
        color: pink;
      }
    </style>
  </head>
  <body>
    <section class="icon1-data">小图标1</section>
    <section class="icon2-data">小图标2</section>
    <section class="icon3-ico">小图标3</section>
    <section class="icon4-i">小图标4</section>
  </body>

结构伪类选择器

结构伪类选择器主要根据文档结构来选择元素,常用于根据父级选择器里面的子元素

选择符简介
E:first-child匹配父元素中的第一个子元素E
E:last-child匹配父元素中的最后一个E元素
E:nth-child(n)匹配父元素E第n个子元素E
E:first-of-type指定类型E的第一个元素
E:last-of-type指定类型E的最后一个
E:nth-of-type(n)指定类型E的第n个

nth-child(n)

  1. n可以是数字,关键字和公式
  2. n如果是数字,就是选择第n个子元素,里面的数字从1开始
  3. n可以是关键字:even偶数,odd奇数

 完整写法

ul li:first-child {
        background-color: pink;
      }
      ul li:nth-child(2) {
        background-color: powderblue;
      }

nth:child和nth-of-type的区别 

  1. nth:child对父元素里面所有的孩子排序选择(序号是固定的) 先找到第n个孩子,然后看看是否和E匹配
  2. nth-of-type 对父元素里面指定的元素进行排序选择。先去匹配E,然后再根据E找第n个孩子
    <style>
          /* 都选不中,因为div的第一个孩子是p,跟 div 匹配不上 */
          section div:nth-child(1) {
            background-color: red;
          }
        </style>
      </head>
      <body>
        <section>
          <p>光头强</p>
          <div>熊大</div>
          <div>熊二</div>
        </section>
     <style>
          /* 光头强和熊大都选中 */
          section :nth-of-type(1) {
            background-color: pink;
          }
        </style>
      </head>
      <body>
        <section>
          <p>光头强</p>
          <div>熊大</div>
          <div>熊二</div>
        </section>
     <style>
          /* 正确写法,选中熊二 */
          section div:nth-of-type(2) {
            background-color: red;
          }
        </style>
      </head>
      <body>
        <section>
          <p>光头强</p>
          <div>熊大</div>
          <div>熊二</div>
        </section>

伪类元素选择器(重点)

伪元素选择器可以帮助我们利用css创建新标签元素,而不需要HTML标签,从而简化HRML结构。

选择符简介

::before

在元素内部的前面插入内容

::after

在元素的后面插入内容

注意: 

  • before和after创建一个元素是属于行内元素
  • 新创建的这个元素在文档中是找不到的,所以我们称为伪元素
  • 语法:element::after{}【element是任何元素】
  • before和after 必须有content属性 

  • before在父元素内容的前面创建元素,after在父元素的后面插入元素

  • 伪元素选择器标签选择器一样,权重为1

      <style>
          /* 效果:我是小猪 */
          div {
            width: 200px;
            height: 200px;
            background-color: pink;
          }
          div::before {
            content: "我";
          }
          div::after {
            content: "小猪";
          }
        </style>
     
      <body>
        <div>是</div>
      </body>

    模糊处理 

    滤镜filter:

  • filter : 函数(); 例如filter:blur(5px); blur模糊处理,数值越大越模糊,为0时图片还原

img {
      filter: blur(15px);
    }
      img:hover {
          filter: blur(0);
      }

calc函数

  • calc()c此CSS函数让你在声明CSS时执行一些计算。
  •  width: calc(100% - 30px); 
  • 括号里面可以使用(+ - * /)
<style>
      .father {
        width: 300px;
        height: 200px;
        background-color: pink;
      }
      .son {
          /* 100% 是父元素额宽,子元素的宽度永远比父元素小30px */
        width: calc(100% - 30px);
        height: 30px;
        background-color: skyblue;
      }
    </style>
  </head>
  <body>
    <div class="father">
      <div class="son"></div>
    </div>
  </body>

过渡

  • 谁过渡就给谁加
  • transition: 要过渡的属性 花费时间 运动曲线 何时开始;
  1. 属性:想要变化的css属性,宽高、背景颜色、内外边距都可以。如果想要所有的属性都变化过渡,写一个all就可以
  2. 花费时间:单位是s,(必须写单位)
  3. 运动曲线:默认是ease(可以省略)
  4. 何时开始:单位是秒(必须写单位)可以设置延迟出发时间 默认是0s(可以省略)
div {
        width: 200px;
        height: 100px;
        background-color: pink;
        transition: width 0.5s;
     /* transition: width 0.5s, height 0.5s; */
        /* transition: all 0.5s; */
      }
      div:hover {
        width: 400px;
        height: 200px;
      }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值