css选择器

css选择器
1、关系选择器
(1)包含选择器(E F)    【父子关系】
     <1>包含选择符(E F)
         选择所有被E元素包含的F元素,中间用空格隔开
         只要是包含都会被选中
         例如:
         <style>
             ul li{color:blue;}
         </style>
(2)子选择器(E>F)
     <1>选择所有作为E元素的直接子元素F,对更深一层的元素不起作用,用大于号表示
       例如:
       <style>
         di>a{color:red;}  只对子元素起作用,对子孙元素不起作用
         p>a{color:green;} 这个才是对p标签的a元素起作用
       </style>
       <div>
        <a href="#">这是子元素</a>
        <p><a href="#">这是子孙元素</a></p>
    </div>
(3)相邻选择器(E+F)
     <1>选择器贴在E元素之后的F元素,用加号表示,选择相邻的第一个兄弟元素
     例如:
     <style>
         p+span{color:purple;}  第一个span的颜色就会变成紫色
     </style>
     <p>这是p元素</p>
    <span>这是紧挨着p元素的第一个span</span><br/>
    <span>这是第二个span</span>
(4)兄弟选择器(E~F)
     <1>选择E元素之后的所有兄弟元素F,作用于多个元素,用~号隔开
     例如:
     <style>
         #p2~span{color:blue;}    p2后面所有的span都会被选中变为蓝色
     </style>
     <p id="p2">这是段落</p>
    <span>选择</span>
    <span>选择</span>
    <span>选择</span>
    <span>选择</span>
    
2、属性选择器:通过html的属性来选择元素
   写法:元素[属性名=“属性值”],符号不固定,可换其他符号
(1)E[att]{}:选择具有att属性的E元素
     例如:
     <style>
        option[disabled]{color:red;}  表示选中option元素中带有disabled的属性
    </style>
      <select namae="" id="">
        <option value="0">汽车</option>
        <option value="1" disabled>火车</option>
        <option value="2">灰机</option>
        <option value="3">飞船</option>
    </select>
(2)E[att="val"]{}:选择具有att属性且属性值等于val(确切的属性值)的E元素(就是通过属性值来选择)
     例如:在<input type="">各种类型里面使用就非常合适
     <style>
         input[type="text"]{height:100px;}  就操作了单行文本框这一类
     </style>
     <form section="">
        <input type="text"/>
        <input type="password"/>
        <input type="radio"/>
    </form>
(3)E[att~="val"]{}:选择有att属性的元素,且属性值列表中有一个符合val的元素
     <1>例如:当你需要修改一个样式的时候不能在<style></style>中间直接修改,否则会导致
           所有含有这个样式的地方都会被修改,而你只是想要修改这个样式特定的某一个地方
           (后期要加的内容要另外加class,不能修改到之前的代码)
         <style>
             .pNore{font-size:30px}      这样就只对该样式的某一个地方进行了修改
         </style>
         <p class="p1 pNore">随便写点文字</p>     class名字可以叠加,在需要修改的地方
                                                   叠加一个class名
             但是需要注意id名一个元素只能有一个
     <2>例如:
        <style>
            p[class~="p1"]{color:blue;}   这样就选中了class属性中所有含有p1的内容
        </style>
        <p class="p1 pNore pColor" id="myID">随便写点文字</p>
        <p class="pNore pColor">段落二</p>
        <p class="p12 pNore pColor">段落三</p>
        <p class="p31 pNore pColor">段落四</p>
        <p class="pNore p1 pColor">段落五</p>
(4)E[att^="val"]{}:选择E元素中有att属性,且属性值是 以“val”开头的元素
     (就是class名字中以某一个字母开头的都会被选中)
     例如:
     <style>
        p[class^="Q"]{color:red;font-size:20px}   这样就选中了class属性中以Q开头的值
                                                  来修改
     </style>
     <p class="p1 pNore pColor" id="myID">随便写点文字</p>
     <p class="pNore pColor">段落二</p>
     <p class="p12 pNore pColor">段落三</p>
     <p class="Q31 pNore pColor">段落四</p>
     <p class="QNore pColor">段落五</p>
(5)E[att$="val"]{}:选择具有att属性且属性值为以val结尾的字符串的E元素
     例如:
     <style>
        p[class$="6"]{color:green;font-size:20px}   这样就选中了class属性中以6结尾的值
                                                    来修改
     </style>
     <p class="p1 pNore pColor" id="myID">随便写点文字</p>
     <p class="pNore pColor">段落二</p>
     <p class="p12 pNore pColor">段落三</p>
     <p class="Q31 pNore pColor">段落四</p>
     <p class="QNore pColor">段落五</p>
     <p class="pNore pColor p16">段落六</p>
(6)E[att*="val"]{}:选择具有att属性且属性值包含val的字符串的E元素
     (只要是class名里面包含有引号里面的属性值的内容都会被选中)
     例如:
     <style>
        a[href*="baidu"]{color:red;}    href值里面包含baidu的就会被选中
     </style>
     <a href=" http://www.baidu.com">百度</a> ;
     <a href="#">空链接</a>
     <a href=" http://www.taobao.com">淘宝</a> ;
    
3、伪类选择器:定义了元素的状态(反映状态、属性)
(1)E:link    设置超链接a在未被访问前的样式(特指a标签)
     例如:
     <style>
        a:link{color:yellow;}   设置超链接在未被访问前的颜色为黄色
         区别:a{color:yellow;}是代表了整个a元素的样式,不分访问前后
     </style>
     <body>
        <a href="#">百度</a>
     </body>
(2)E:visited    设置超链接a在其链接地址已经被访问过时的样式(特指a标签)
     例如:
     <style>
        a:visited{color:blue;}   设置超链接在被访问后的颜色变为蓝色
     </style>
     <body>
        <a href="#">百度</a>
     </body>
(3)E:hover    设置鼠标悬停在元素上时的样式(不限于a标签)
     例如:
     <style>
        ul li:hover{background-color: pink;}   当鼠标悬停在列表项的时候背景色就会出现
     </style>
     <body>
        <ul>
            <li>首页</li>
            <li>第二页</li>
            <li>第三页</li>
        </ul>
     </body>
     P.S.想要文字在背景颜色中居中就可以用两个属性:
     text-align:center;line-height:  ;
     文本居中          文本的高度,可以实现上下居中
(4)E:active    设置元素在鼠标按下时的样式(不限于a标签)
     例如:
     <style>
        ul li:active{color: green;}    在鼠标点击列表项的时候列表项字体的颜色就会变绿色
     </style>
     <body>
        <ul>
            <li>首页</li>
            <li>第二页</li>
            <li>第三页</li>
        </ul>
     </body>
(5)E:not(s)    匹配不含有s选择器的元素E(也就是说s选择器不会被选中,剩下其他
                 的选择器会被选中)
     例如:
     <style>
        div:not(.d1){color:aqua;}    不包含d1,也就是说有d1的都不被选中,没有d1的都被
                                     选中
     </style>
     <body>
        <div class="d1">块元素</div>
        <div class="d1">块元素</div>
        <div class="d1">块元素</div>
        <div class="d2 d1">块元素</div>
        <div class="d2" id="div2">块元素</div>
     </body>
(6)E:first-child    选中父元素的第一个子元素E(要使该属性生效,E元素必须是某个元素的
                      子元素。一般元素都是body的子元素,所以都可以使用此伪类,而body
                      标签不是子元素,所以对body标签无效)
     例如:
     <style>
        .u1l li:first-child{color:orange;}  选中ul1下的第一个li
        如果这里的li前面不加.ul1那么所有父元素下的第一个li都会被选中
     </style>
     <body>
        <ul class="ul1">
            <li>列表项</li>
            <li>列表项</li>
            <li>列表项</li>
            <li>列表项</li>
        </ul>
     </body>
(7)E:last-child    选中父元素的最后一个子元素E
     例如:
     <style>
        .u1l li:last-child{color:orange;}   选中ul1下的最后一个li
    </style>
     <body>
        <ul class="ul1">
            <li>列表项</li>
            <li>列表项</li>
            <li>列表项</li>
            <li>列表项</li>
        </ul>
     </body>
(8)E:only-child    E元素是唯一的子元素时被匹配(如果该子元素在父元素里不是唯一的
                     就不会有效果)
     例如:
     <style>
        ul li:only-child{color:green;}    选中ul中这个唯一的li(此时如果ul中有多个li,
                                          也就是说li不唯一,那么就没有相应的效果)
     </style>
     <body>
        <ul>
            <li>元素</li>
        </ul>
     </body>
(9)E:empty
(10)E:checked
(11)E:nth-child(n)
    
4、伪对象(伪元素)选择器(表示DOM外部的某种文档结构,改变文档结构,在结构外
另加一个没有实际存在的元素<伪元素>,是写在css里面的)
就是用css的方式模拟一个htm1的结构
(1)E::before
     before选择器在被选元素的内容前面插入内容,一定要和content属性一起使用
     例如:
        ul::before{content:"在p标签元素内容前加的内容";color:pink;}   content后面的
                                                内容会显示在ul前面,但是不属于html文档
        <ul>
            <li>杨洋最帅</li>
            <li>杨洋超级无敌帅</li>
            <li>杨洋最可爱了</li>
        </ul>
(2)E::after
     after选择器在被选元素的内容后面插入内容,一定要和content属性一起使用
     例如:
     ul::after{content:"在p标签元素内容后加的内容";color:pink;}   content后面的
                                                内容会显示在ul后面,但是不属于html文档
        <ul>
            <li>杨洋最帅</li>
            <li>杨洋超级无敌帅</li>
            <li>杨洋最可爱了</li>
        </ul>
伪元素还可以添加图片:content:"用url("")引入图片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值