zoukankan      html  css  js  c++  java
  • CSS 小结笔记之选择器

    Css选择器主要分为以下几类

    1、类选择器:通过.classname 来选择

    例如

     .color2 {
                color: rebeccapurple;
            }

    同一个标签可以通过多个类名来指定多个样式,但是若其中有重叠部分,则按权重值重叠,若在同一权重级别中,如都是内部样式表中的,则按照上下关系,下面的覆盖上面的。

    例如:

      .classtest1 {
                font-size: 25px;
                color: blue;
            }
            
      .classtest2 {
                color: red;
            }
     <p class="classtest1 classtest2">classtest</p>

    则p标签内容显示红色,样式覆盖只与样式定义的顺序有关,与指定的循序无关,如果将上述的p标签中的class顺序调换,则结果不会改变。例如

     <p class="classtest2 classtest1">classtest</p>

    显示结果与上面的显示结果一致。

    2、Id选择器通过#id来选择

    例如

     #id1 {
                color: palegreen;
            }
     <p id="id1">idTest</p>

    在网页中一般来说一个id对应一个元素,多个元素使用同一id值虽然不会报错,并且可以使用同一样式,但是用js进行操作时会出现问题。

    3、通配符选择器 * 

    通配符选择器是选择所有元素。

    *{
    background-color:yellow;
    }

    4、标签选择器element 

    例如 为所有的div设置样式:

     div {
                color: blue;
                font-size: 20px
            }

    5、伪类选择器

    (a)连接伪类选择器  :link |:visited |:hover |:active

         a:link {/* 链接的颜色 */
                color: blue;
            }
            
            a:visited {/* 已访问过的颜色 */
                color: green;
            }
            
            a:hover {/* 鼠标放上去的颜色 */
                color: red;
            }
            
            a:active {/*点击瞬间的颜色 */
           color: yellow; 
       }
    <a href="#">a链接</a>

    连接伪类选择器的顺序尽量不要改变,因为hover放在link和visited后才有效,active再hover后才有效

    (b)结构伪类选择器 

    • :first-child 选取第一个元素
    • :last-child 选取最后一个元素
    • :nth-chlid(n) 选取第n个元素(n从1开始,n小于等于0时没有匹配项)
    • :nth-last-child
            li:first-child {
                color: blue;
            }
            
            li:last-child {
                color: green;
            }
            
            li:nth-child(5) {
                color: red;
            }
            
            li:nth-last-child(5) {
                color: orange;
            }
            /* even、2n指定偶数项 odd、2n+1 奇数 */
            
            li:nth-child(odd) {
                font-size: 25px;
            }
            
            li:nth-last-child(2n+1) {
                font-size: 35px;
            }
     <ul>
            <li>li1</li>
            <li>li2</li>
            <li>li3</li>
            <li>li4</li>
            <li>li5</li>
            <li>li6</li>
        </ul>

    结果如下图所示

     上述的选择器是将父元素中所有的元素进行排序来计算n的,所以当目标元素中穿插了其他元素,此种方法会出现问题。需要用到以下选择器

    • :first-of-type            同种类型元素的第一个
    • :last-of-type            同种类型元素的最后一个
    • :only-of-type           同种类型元素的单独的一个  
    • :nth-of-type(n)        同种类型元素的第n个
    • nth-last-of-type(n)  同种类型元素的倒数n个
    span:nth-of-type(even) {
                color: blue;
            }
     <div>
            <span>span1</span>
            <p>p1</p>
            <span>span2</span>
            <span>span3</span>
            <p>p1</p>
            <span>span4</span>
            <span>span5</span>
            <span>span6</span>
        </div>

    这时用nth-of-type(n)没有问题而使用 nth-child(n)会出现问题,可以自己试一下。

    (c)目标选择器 :target

    只对当前目标有效

     :target {
                color: blue;
                font-size: 30px;
            }
        <a href="#div1">div1的链接</a>
        <a href="#div2">div2的链接</a>
        <div id="div1">div1Text</div>
        <div id="div2">div2Text</div>

    点击div1的链接则div1处于活动状态,此时div1的样式改变

    6、复合选择器

     (1)交集选择器

    交集选择器是标签选择器+类选择器(中间没有空格!)。

     p.pred {
                color: red;
            }
     <span class="pred">spanText </span>
     <p class="pred">Ptext</p>

    对于上面的例子中,只有p标签改变了颜色

    (2)并集选择器 element,element 

    当多个标签需要设置同种样式时,使用并集选择器,并集选择器用逗号隔开,如:

     div,
     span,
     .cla1{
                color:pink;
            }
    <div>divtext</div>
    <span>spantext</span>
    <h3 class="cla1">h3text</h3>

    上面三中结果显示样式一致。

    (3)后代选择器 element element 

    后代选择器用空格隔开,例如

     div span {
                color: orange;
            }

    指定div下面的span标签是橙色

    <div>divText</div>
    <span>SpanText</span>
    <div>
        <span>divspanText</span>
    </div>

    只有 divspanText 文本变成橙色

    (4)子元素选择器 element>element

     后代选择器只要是满足前一个标签内的子孙元素都可以,而子元素选择器只有子元素才可以。

     div>p {
                color: hotpink
            }
      <div>
            <p>divpText</p>
            <h1>
                <p>h1pText</p>
             </h1>
        </div>

    只有divptext颜色改变,而h1ptext颜色不变。

    (5) 下一级选择器 element+element

    选择紧接着在上一个元素之后的元素

     div+p {
                color: green;
            }
       <div>
         <p>divpText</p>
          <h1>
              <p> h1pText</p>
          </h1>
        </div>
        <p>ptext</p> 

    只有ptext颜色改变。

     (6)属性选择器 E[attr] 

    具体用法在下例给出

        div[class=cla] {
                color: pink;
            }
            
            div[class^=div] {
                /*以div开头的class*/
                color: blue;
                font-size: 15px;
            }
            
            div[class$=div] {
                /*以div结尾的class*/
                color: orange;
                font-size: 15px;
            }
            
            div[class*=Text] {
                /*包含Text的class*/
                color: green;
                font-size: 15px;
            }
        <div class="cla">claText</div>
        <div class="div1">div1Text</div>
        <div class="div2">div2Text</div>
        <div class="div3">div3Text</div>
        <div class="1div1Text">1div1Text</div>
        <div class="1div1Text">2div1Text</div>
        <div class="1div1Text">3div1Text</div>
        <div class="1div">1divText</div>
        <div class="2div">2divText</div>
        <div class="3div">3divText</div>

    (7)伪元素选择器 

    • ::first-letter 首字母
    • ::first-line  首行
    • ::selection 选中的元素
    • ::brfore     在元素开始添加内容与content一起使用
    • ::after       在元素结尾添加内容与content一起使用
          p::first-letter {
                color: red;
                font-size: 30px;
            }
            
            p::first-line {
                color: palegreen;
                font-size: 25px;
            }
            
            p::selection {
                color: blue;
                font-size: 25px;
            }
            
            P::after {
                content: '-结尾'
            }
            
            p::before {
                content: '开头:';
            }
     <p>层叠样式表(英文全称:Cascading Style Sheets) 是一种用来表现HTML(标准通用标记语言的一个应用) 或XML(标准通用标记语言的一个子集) 等文件样式的计算机语言。 CSS不仅可以静态地修饰网页, 还可以配合各种脚本语言动态地对网页各元素进行格式化。
        </p>

    伪元素与伪类选择器的区别:

    首先,在Css3标准中伪元素选择器使用两个冒号'::',而伪类选择器使用一个冒号‘ : ’。再就是如果不使用伪元素选择器,想要达成相同的效果需要多添加元素才能实现,而不使用为例选择器想要达成相同的效果需要增加一个类来实现。

    例如对于上面的伪元素选择器,想要改变第一个字母的颜色大小则需要增加一个标签:

            span {
                color: red;
                font-size: 30px;
            }
     <p><span></span>叠样式表(英文全称:Cascading Style Sheets) 是一种用来表现HTML(标准通用标记语言的一个应用) 或XML(标准通用标记语言的一个子集) 等文件样式的计算机语言。 CSS不仅可以静态地修饰网页, 还可以配合各种脚本语言动态地对网页各元素进行格式化。
        </p>

    而不使用伪类选择器想要改变第一个元素的样式需要增加一个类,例如

     .first {
                color: blue;
            }
    <li class="first">li1</li>

     

  • 相关阅读:
    mem 预留内存
    关于内核反汇编,同时显示源文件
    读些笔记
    platform设备驱动
    glut 右键子菜单
    获取HINSTANCE
    window窗口样式style
    opengl 直线拾取
    glut弹出式菜单
    读取大恒采集卡c++代码
  • 原文地址:https://www.cnblogs.com/Assist/p/9406197.html
Copyright © 2011-2022 走看看