css选择器

 css  -层叠样式表

             -网页实际上是一个多层的结构,通过css可以分别为网页的每一层来设置样式

               而最终我们能看到的只有最上边的一层

             -设置网页中元素的样式

 css样式表三种使用方法

第一种方式:内联样式/行内样式

       写在开始标签里,写一个style属性,在style属性值里面写样式

       样式分为  样式名:样式值;   名值对的结构

       可以写多组样式,以 ; 隔开即可

       缺点:1、结构和样式耦合   2、不容易修改

第二种方式:内部样式表

        在head标签中,写一个style标签,在style里先选中对应的元素,然后设置样式

        可以多组样式,以;隔开即可,最后一个样式,可以不写 ; ,但我们一般都写

        缺点: 不方便复用

第三种方式:外部样式表

      在html文件外新建一个css文件,在css文件内书写样式,然后通过link标签

      引入css文件

      最推荐使用

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>

    <link rel="stylesheet" href="./index.css" /> 
    <!-- 新建一个.css的样式表  在head里面加link并关联.css样式表就是:外部样式表 -->

    <tbody></tbody>

    <style>
      .s1{ color: brown;}
      .l1~li{ background-color: green;}
      li:nth-of-type(1){ color: brown;}
      li:not(.l1){ font-size: 25px;}
      /* 在style的就是:内部样式表 */
    </style>

  </head>
  <body>
    <h1>沁园春·雪</h1>
    <h3>毛泽东</h3>
    <ul>

      <span style="color: brown;">测试</span>
      <!-- 在span里面加style再加想要的元素就是:内联样式/行内样式 -->
      
      <li>北国风光,千里冰封,万里雪飘。</li>
      <li>望长城内外,惟余莽莽;大河上下,<span class="s1">顿失滔滔</span></li>
      <p>山舞银蛇,原驰蜡象,欲与天公试比高。</p>
      <p>须晴日,看红装素裹,分外妖娆。</p>
      <li class="l1">江山如此多娇,引无数英雄竞折腰。</li>
      <li>惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。</li>
      <li>一代天骄,成吉思汗,只识弯弓射大雕。</li>
      <li>俱往矣,数风流人物,还看今朝。</li>
    </ul>
  </body>
</html>

CSS的语法:

          选择器  声明块    

        选择器:选中你想设置样式的内容/标签/元素,写{}

        声明块:

          一组一组的名值对结构      

常用选择器

 

1、元素选择器

   作用:选中对应的标签

   语法:标签名{}

   例如:h1{},h3{},p{}

  属性值{

    color: red;

  }

 2、id选择器  

  作用:选中对应的id属性值的内容,id属性值不能复用

  语法:#id属性值{}

  #属性值{

    color: red;

  }
 

 3、class选择器

 作用:选中对应的class属性值的内容,可以复用属性值

 语法:.class属性值{}

.属性值{

  color: red;

}

4、通配选择器

   语法:*{}

  *{

    color: red;

  }

复合选择器

1、交集选择器

      作用:选中符合多个选择器条件的内容

      语法:选择器1选择器2选择器3···{}

      例如:div.red{},#div2.red{}

       注意:如果选择器中有元素选择器,必须把元素选择器放在前面

      2、并集选择器

        作用:同时选中符合多个选择器对应的内容

        语法:选择器1,选择器2,选择器3····{}

        例如:.red,#p2,h1{}

关系选择器

需求一:通过父元素div,给它的子元素p设置一个字体颜色红色 */

      #加元素值 > p {

        color: red;

      }  

      1、子元素选择器

      作用:通过指定的父元素找到指定的子元素

      语法:父元素>子元素{}

 需求二:div里的span元素字体都变为30px

 #school span {

        font-size: 30px;

      }

 2、后代选择器

       作用:通过指定的祖先元素找到指定的后代元素

       语法:祖先元素 后代元素{}

 需求三: 通过前端,找到java,然后java字体颜色变为blue

3、选择下一个兄弟选择器

      作用:通过指定的元素找到下一个兄弟元素

      语法:兄+弟{}

.p1 + .p2 {

           color: blue;

          }

四:选择下面所有的兄弟(前面的不选)

      语法:兄~弟{}  

      .p1 ~ p {

        font-size: 40px;

      }

属性选择器

1:属性选择器

            语法:[属性名]{} 选择含有指定属性的元素

                 [属性名=属性值]{} 选择含有指定属性和属性值的元素

                 [属性名^=属性值]{} 选择属性值以指定值开头的元素  

                 [属性名$=属性值]{} 选择属性值以指定值结尾的元素

                 [属性名*=属性值]{} 选择属性值含有某值的元素

需求一:有title属性的p标签,颜色变为红色 
<body>
    <h1 title="a" id="hh" class="hhh">满江红·写怀</h1>
    <h3 title="b">岳飞·宋</h3>
    <p>····</p>
    <p title="abc">靖康耻,犹未雪。臣子恨,何时灭!</p>
    <p title="abcda">驾长车,踏破贺兰山缺。</p>
    <p>壮志饥餐胡虏肉,笑谈渴饮匈奴血。</p>
    <p>待从头、收拾旧山河,朝天阙。</p>
  </body>

实现:
 [title*="ab"] {
        color: red;
      }

 伪类选择器

 一 、伪类(不存在的类,特殊的类)

          -伪类用来描述一个元素的特殊状态

          -比如:第一个元素,被点击的元素,鼠标移入的元素···

          -特点:一般请情况下,使用:开头

             1、 :first-child  第一个子元素

             2、 :last-child   最后一个子元素

             3、 :nth-child()  选中第n个子元素

                   特殊值: n    所有的

                          2n或even  选中偶数

                          2n+1或odd  选中奇数

          —以上这些伪类都是根据所有的子元素进行排序

             1、:first-of-type   第一个子元素

             2、:last-of-type     最后一个子元素

             3、:nth-of-type()    选中第n个子元素

                  功能跟上面相似,

              不同的是,这是在同类型的子元素中去选择          

 二、:not() 否定伪类

           -将符合条件的元素从选择器中去除

 例如将ul里的第一个li一直设置为红色

实现:

li:not(.l1){

        color: red;

      }

a元素的伪类

需求一:给未访问过的标签为a的超链接加红色字体

      :link  用来表示未访问过的链接(正常链接)

      a:link {

        color: red;

      }

     

      需求二:给访问过的超链接加绿色字体

      2、:visited 用来表示访问过的链接

               由于隐私的原因,所以visited只能改颜色

      a:visited {

        color: green;

      }

      需求三:鼠标移入a标签,链接字体变大到30px

      3、:hover 用来表示鼠标移入的状态

      a:hover {

        font-size: 40px;

        color: grey;

      }

      /* div:hover{

        color: orange;

      }*/

      需求四:鼠标点击后,增加背景色pink

      4、:active  鼠标点击后的状态

      div:active{

        background-color: palegreen;

      }

     

      :link      :visited只针对超链接a标签

      :hover     :active 针对所有的标签

伪元素选择器

伪元素,表示页面中一些特殊的并不真实存在的元素(元素的位置)

          ::first-letter  表示第一个字母

          ::first-line  表示第一行

          ::selection  选中的内容

          ::before  元素的开始位置

          ::after   元素的结束位置

               before和after必须要结合content使用

/* 需求一:让文章的首字母一直为字体为24px */
      /* 需求二:让文章的第一行添加背景色黄色 */
      /* 需求三:让选中的内容,字体为红色 */
      /* 需求四:在元素开始的位置前+'abc' */
<p>
     psum dolor sit amet consectetur adipisicing elit. Porro fugiat maiores sit ex expedita beatae, sint quisquam amet quod cupiditate, tempora omnis impedit deleniti, iure fuga illo
      quibusdam. Alias, soluta?
    </p>


实现:   p::first-letter{
          font-size: 34px;
        }
        p::first-line{
          background-color: yellow;
        }
        p::selection{
          color: red;
        }
        p::before{
          content: '你好';
        }
        p::after{
          content: '大家好';
        }

 继承

 样式的继承(继承祖先的样式)

            定义:为一个元素设置的样式,同时也会应用到它的后代元素上

            优势:方便我们开发,讲一些通用的样式统一设置到共同的祖先元素上,子元素的样式都可以获取到样式

            注意:并不是所有的样式都会被继承,比如:背景相关的,布局相关等不会被继承

1、共同的祖先元素,设置统一的字体大小

body {
        font-size: 24px;
      }


2、span 的背景色是透明的,你给p设置了背景色,给p设置,透出来,就是这个色了
   背景图片等,也都不会被继承
p {
        color: red;
        background-color: cadetblue;
        font-size: 20px;
      }


<body>
    <p>
      我是一个p元素
      <span
        >我是p元素的span元素
        <em>我是span里面的em元素,我也可以继承</em>
      </span>
    </p>
    <span>我是p元素外的span元素,我不会继承</span>
  </body>

 

选择器权重

从上到下依次为:

1、  !important               (最高优先级)慎用,一般不用  

2、 内联样式                                

3、  id选择器                               

4、   类和伪类选择器/属性选择器              

5、  元素选择器                            

6、  通配符、子选择器、相邻选择器等。如*、>、+     

(其中)继承的样式      没有优先级

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值