搜索
博主信息
博文 63
粉丝 8
评论 8
访问量 63738
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP大牛成长之路:CSS选择器
周Sir-BLOG
原创
980人浏览过

1、简单选择器

1.1、元素选择器(也叫标签选择器)

  • HTML代码:可以简单理解包含在<>中的标签,比如:<html> <body> <div> <p> <h2>等等。

  • 示例:元素选择器

  1. /* 设置div标签背景为浅灰色 */
  2. div{
  3. background-color: #ccc;
  4. }

1.2、类选择器

  • 就是HTML的class属性。

  • 示例:类选择器(css)

  1. /* 设置box类的背景为浅灰色 */
  2. .box{
  3. background-color: #ccc;
  4. }
  • 示例:类选择器(html)
  1. <div class="box"></div>
  • 示例:类选择器的复合应用
  1. <style>
  2. /* 设置box类的背景为浅灰色 */
  3. .box{
  4. background-color: #ccc;
  5. }
  6. /* 设置box类+text_font类的复合应用红色字体 */
  7. .box.text_font{
  8. color: red;
  9. }
  10. </style>
  11. <div class="box text_font">我是灰底红字</div>

注意:两个类之间不能有空格

1.3、ID选择器

  • id 选择器以 “#” 来定义

  • 示例:ID选择器(CSS)

  1. /* 设置id为:box的背景为浅灰色 */
  2. #box{
  3. background-color: #ccc;
  4. }
  • 示例:ID选择器(html)
  1. <div id="box">灰色背景</div>

class可以与id选择器共同使用
id 选择器的应用场景主要应用场景: 表单元素, 锚点


2、上下文选择器

2.1 后代选择器

  • 后代选择器使用类+空格+标签组成

  • 示例:后代选择器示例

  1. <style>
  2. .box{
  3. background-color: #ccc;
  4. }
  5. /* p标签后代选择器 */
  6. .box p{
  7. color: red;
  8. }
  9. </style>
  10. <div class="box">
  11. <p>后代选择器生效</p>
  12. </div>
  13. <p>后代选择器无效(因为不在box类中)</p>

2.2 父子选择器

  • 父子选择器使用 类+>+标签组成

  • 示例:父子选择器示例

  1. <style>
  2. .box{
  3. background-color: #ccc;
  4. }
  5. /* p标签父子选择器 */
  6. .box > p{
  7. color: red;
  8. }
  9. </style>
  10. <div class="box">
  11. <p>父子选择器生效</p>
  12. </div>
  13. <p>父子选择器无效(因为不在box类中)</p>

2.3 相邻兄弟选择器

  • 相邻兄弟选择器可选择紧接在另一元素后的元素,且二者有相同父元素
  1. <style>
  2. /* 将有复合类的第3个li标签的下一个4文字变为红色 */
  3. .item.box + .item{
  4. color: red;
  5. }
  6. </style>
  7. <div class="box">
  8. <ul>
  9. <li class="item">1</li>
  10. <li class="item">2</li>
  11. <li class="item box">3</li>
  12. <li class="item">4</li>
  13. <li class="item">5</li>
  14. </ul>
  15. </div>

2.4 同级所有选择器

  • 同级所有选择器是选取指定元素下同级的所有元素。
  1. <style>
  2. /* 将有复合类的第3个li标签以下同级的(4、5)文字变为红色 */
  3. .item.box ~ .item{
  4. color: red;
  5. }
  6. </style>
  7. <div class="box">
  8. <ul>
  9. <li class="item">1</li>
  10. <li class="item">2</li>
  11. <li class="item box">3</li>
  12. <li class="item">4</li>
  13. <li class="item">5</li>
  14. </ul>
  15. </div>

3、伪类选择器

3.1 结构伪类选择器(不分组)

  • :first-child 匹配第一个元素
  1. <style>
  2. /* :first-child 匹配第一个元素(第1个li标签字体红色) */
  3. li:first-child{
  4. color: red;
  5. }
  6. </style>
  7. <div class="box">
  8. <ul>
  9. <li class="item">1</li>
  10. <li class="item">2</li>
  11. <li class="item">3</li>
  12. <li class="item">4</li>
  13. <li class="item">5</li>
  14. </ul>
  15. </div>
  • :first-child 匹配最后一个元素
  1. <style>
  2. /* :last-child 匹配最后一个元素(第5个li标签字体红色) */
  3. li:last-child{
  4. color: red;
  5. }
  6. </style>
  7. <div class="box">
  8. <ul>
  9. <li class="item">1</li>
  10. <li class="item">2</li>
  11. <li class="item">3</li>
  12. <li class="item">4</li>
  13. <li class="item">5</li>
  14. </ul>
  15. </div>
  • :nth-child(索引号) 匹配指定元素
  1. <style>
  2. /* :nth-child(3) 匹配指定元素-索引方式:从1开始(比如:第3个li标签字体红色) */
  3. li:nth-child(3){
  4. color: red;
  5. }
  6. </style>
  7. <div class="box">
  8. <ul>
  9. <li class="item">1</li>
  10. <li class="item">2</li>
  11. <li class="item">3</li>
  12. <li class="item">4</li>
  13. <li class="item">5</li>
  14. </ul>
  15. </div>
  • :nth-child(2n):nth-child(even) 匹配偶数元素
  1. <style>
  2. /* :nth-child(2n)和:nth-child(even) 匹配偶数元素(第2/4个li标签字体红色) */
  3. li:nth-child(2n){
  4. color: red;
  5. }
  6. /* li:nth-child(even){
  7. color: red;
  8. } */
  9. </style>
  10. <div class="box">
  11. <ul>
  12. <li class="item">1</li>
  13. <li class="item">2</li>
  14. <li class="item">3</li>
  15. <li class="item">4</li>
  16. <li class="item">5</li>
  17. </ul>
  18. </div>
  • :nth-child(2n-1):nth-child(odd) 匹配奇数元素
  1. <style>
  2. /* :nth-child(2n-1)和:nth-child(odd) 匹配奇数元素(第1/3/5个li标签字体红色) */
  3. /* li:nth-child(2n-1){
  4. color: red;
  5. } */
  6. li:nth-child(odd){
  7. color: red;
  8. }
  9. </style>
  10. <div class="box">
  11. <ul>
  12. <li class="item">1</li>
  13. <li class="item">2</li>
  14. <li class="item">3</li>
  15. <li class="item">4</li>
  16. <li class="item">5</li>
  17. </ul>
  18. </div>
  • 其它:
NO 选择器 说明
1 :nth-child(n + 索引号) 指定位置剩下的所有元素
2 :nth-child(-n + 索引号) 只取前几个
3 :nth-last-child(-n + 索引号) 只取最后几个
4 :nth-last-child(索引号) 倒数的方式匹配

3.2 结构伪类选择器(分组)

  • :last-of-type伪类名+标签定义 例子如下:
  1. <style>
  2. /* 匹配span标签最后1个=3 */
  3. .box span:last-of-type {
  4. color: red;
  5. }
  6. /* 匹配p标签最后1个=6 */
  7. .box p:last-of-type {
  8. color: red;
  9. }
  10. </style>
  11. <div class="box">
  12. <span class="item">1</span>
  13. <span class="item">2</span>
  14. <span class="item">3</span>
  15. <p class="item">4</p>
  16. <p class="item">5</p>
  17. <p class="item">6</p>
  18. </div>

4、伪类与伪元素

  • 伪类(前面是单冒号)
No 伪类 备注
1 :target 必须id配合,实现锚点操作
2 :focus 当获取焦点的时候
3 :not() 用于选择不满足条件元素
  • 伪元素(前面是双冒号)
No 伪元素 备注
1 ::selection 一般用于设置选中文本的前后背景色
2 ::before 在元素前添加内容(与content一起使用)
3 ::after 在元素后添加内容(与content一起使用)

:target示例

  1. <style>
  2. #search {
  3. display: none;
  4. }
  5. #search:target {
  6. display: block;
  7. }
  8. </style>
  9. <span><a href="#search">搜索</a></span>
  10. <form action="#" id="search">
  11. <input type="text" name="key" id="key" />
  12. <button>搜索</button>
  13. </form>

:focus示例

  1. <style>
  2. input:focus {
  3. background: #000;
  4. color: #fff;
  5. }
  6. </style>
  7. <form action="#" id="search">
  8. <input type="text" name="key" id="key" value="获得焦点黑底白字"/>
  9. <button>搜索</button>
  10. </form>

:not()示例

  1. <style>
  2. /* 非p标签字体红色 */
  3. .box :not(p){
  4. color:red;
  5. }
  6. </style>
  7. > **:focus示例**
  8. <div class="box">
  9. <p>1(p标签)</p>
  10. <span>2(span标签)</span>
  11. </div>

::before示例

  1. <style>
  2. h2::before {
  3. content: "北京";
  4. }
  5. </style>
  6. <h2>-是我国的首都</h2>

显示:北京-是我国的首都

::after示例

  1. <style>
  2. h2::after {
  3. content: "北京";
  4. }
  5. </style>
  6. <h2>我国的首都是-</h2>

显示:我国的首都是-北京

总结

  • 简单CSS选择器:元素 < class < id
  • 实际id与class选择器前面都有*号,属于元素级别,id,class可以添加到任何元素上,所以可以省略;
  • 伪类选择器灵活应用,可以简化代码,提高效率。
批改老师:WJWJ

批改状态:合格

老师批语:写的很认真,格式也工整!
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学