CSS选择器

2020-04-17  本文已影响0人  小疏林er

1、三种引用方式

  • 行内样式:<h1 style="color:red;">内部样式</h1>
  • 内部样式表:<style>选择器{属性:属性值。。。}</style>
  • 外部样式表<link rel="stylesheet" type="text/css" href="css/test1.css"/>引入test1.css文件

2、常用的选择器

(1)基础选择器

  • 标签选择器 (标签名)

使用标签选择器可选中当前范围的所有该标签元素。
div {属性1 :属性值1;属性2 :属性值2;。。。}


  • 类选择器 (.+类名)

使用类选择器可选中标签中带有class='类名'的所有元素
.img {属性1 :属性值1;属性2 :属性值2;。。。}


  • id选择器 (#+id名)

使用类选择器可选中标签中带有id='id名'的所有元素,
#div1 {属性1 :属性值1;属性2 :属性值2;。。。}

(2)高级选择器

  • 所有选择器:* (not不选)

选择所有元素,注意和其他选择器一起使用,作用更大。
* {属性1 :属性值1;属性2 :属性值2;。。。}选中所有元素。

#ha *{属性1 :属性值1;属性2 :属性值2;。。。} 选中id名为ha的所有后代

:not(p){属性1 :属性值1;属性2 :属性值2;。。。}选中出来p元素外所有元素(:别忘了!)。


  • 组合选择器:选择器1,选择器2。。。。。

组合选择器就是选中选择器1和选择器2。选择器1、2可以是基础选择器和高级选择器的任意。
div,span{属性1 :属性值1;属性2 :属性值2;。。。}选中所有div和span元素。


  • 后代选择器:祖先选择器 后代选择器

div span{属性1 :属性值1;属性2 :属性值2;。。。}选择div内的所有span元素(不一定是子元素)


  • 父子选择器:父选择器>子选择器

div>span{属性1 :属性值1;属性2 :属性值2;。。。}选择所有父级元素是div内的span元素。


  • 兄弟选择器:兄选择器+弟选择器

.div1+p{属性1 :属性值1;属性2 :属性值2;。。。}选择紧挨着id='div1'的元素之后的p元素,只能由兄选弟,不可反过来(所谓的父子指的是内外层,兄弟则代表先后顺序)


  • 属性选择器:[属性名] /[属性名=属性值]/[属性*|^|$=属性值]

[titie] {属性1 :属性值1;属性2 :属性值2;。。。}选择所有带有title属性的元素。
(这个属性是写在标签内部的,并不是写在style里的属性1 属性2,style、title、href等等都是属性)

[titie=你好,欢迎] {属性1 :属性值1;属性2 :属性值2;。。。}选择所有带有title属性并且属性值为你好,欢迎的元素。

除了可以对准确的属性值进行选择,也可以进行模糊选择。

*包含:[titie*=a] {属性1 :属性值1;。。。}选择title的属性值之中含有a的元素。
^开头:[titie^=a] {属性1 :属性值1;。。。}选择title的属性值之中开头为a的元素。
$结尾:[titie$=a] {属性1 :属性值1;。。。}选择title的属性值之中结尾为a的元素。


  • nth选择器(也称为CSS3 结构类)
    span:nth-child(1){属性1 :属性值1;。。。}选择每个span是其父元素的第一个子元素。
    div:nth-of-type(2){属性1 :属性值1;。。。}选择每个div是其父元素的第二个儿子div元素。
    span:nth-last-of-type(3){属性1 :属性值1;。。。}选择每个span是其父元素的倒数第三个span元素。(这里面的123均可以更改,:可别忘了啊!)

(3)伪类选择器:选择某个元素的状态

   a:link {color: #FF0000}        /* 未访问的链接 */
   a:visited {color: #00FF00} /* 已访问的链接 */
   a:hover {color: #FF00FF}   /* 鼠标移动到链接上 */
   a:active {color: #0000FF}  /* 选定的链接 */
举一个栗子! 光标移到超链接上,字体变为蓝色
<!DOCTYPE html>
<html>
  <head>
      <meta charset="utf-8" />
      <title></title>
      <link rel="stylesheet" type="text/css" href="css/test1.css"/>
      <style type="text/css">
          a:hover{
              color: #0000FF; /* 光标移到超链接上,字体变为蓝色 */
          }
      </style>
  </head>
  <body>
      <a href="https://www.baidu.com">百度</a>
  </body>
</html>

3、选择器练习

css选择器有很多!上面列举的是常用的一些选择器,灵活搭配可解决大部分问题。

下面是我随意写的栗子,先写的各种嵌套的标签,然后再写的文字,最后用不同的选择器将它们的颜色和文字进行匹配,尽量不用重复的方法。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            #div1 span:nth-child(1){
                color: red;
            }
            body>div>span>div{
                color: green;
            }
            #div1_1 div:nth-of-type(1){
                color: yellow;
            }
            #div1_1 div:nth-child(1)+div{
                color: #999900;
            }
            #span_div_span_div1{
                color: #fa54ff;
            }
            #span_div_span_div1+div{
                color: blue;
            }
            #span_div_span_div1+div+span div{
                color: pink;
            }
            #div1:hover{
                color: #00FFFF;
            }
            span:nth-last-of-type(1){
                color: #00FFFF;
            }
        </style>
    </head>
    <body>
        <div id="div1">
            <span>俺想红</span>
            <span>
                <div id="">
                    不想绿
                </div>
            </span>
            <div id="div1_1">
                
                <div id="">
                    可别黄了
                </div>
                <div id="">
                    你说不黄就不黄啊
                </div>
            </div>
        </div>
        <span>
            <div id="span_div">
                <span id="span_div_span">
                    
                    <div id="span_div_span_div1">
                        紫了吧唧
                    </div>
                    <div id="">
                        蓝汪汪
                    </div>
                    <span>
                        <div id="">
                            粉嘟噜
                        </div>
                        <span>青出于蓝而胜于蓝</span>
                    </span>
                </span>
            </div>
        </span>
    </body>
</html>
效果图:
image.png

4、优先级

有的时候我们看到的效果和我们写的效果并不一样,一个html文件中可能用到上面的三种引入方式,他们之间存在优先级。优先级的大小导致你的哪个效果起作用。

  • 行内>>内部>外部(就近原则)
  • id>class>标签(相同方式引入)
上一篇下一篇

猜你喜欢

热点阅读