当前位置: 首页 > news >正文

【前端学习】-粗谈选择器

对于一个前端er,选择器是日常生活中必须接触的部分,这篇文章主要探讨一下选择其的分类及一些小技巧。

【分类】
1.基础选择器
2.结构选择器
3.伪类选择器
4.伪元素
5.属性选择器

【描述】
1.基础选择器(浏览器都兼容)

* 通配符 (可以匹配元素中所有的html元素)
    如:*{color:#000;}则代表将页面全部元素添加属性为#000的颜色值;
E 元素选择器(匹配特定的标签)
    如:a{text-decoration:underline;}则代表将页面所有的a标签设置下划线;
#id ID选择器(匹配页面特定的id)
    如:#my{color:#000}则代表将页面id为my的元素添加属性为#000的颜色值;
.class 类选择器(匹配页面特定的class)
    如:.my{color:#000}则代表将页面class为my的元素添加属性为#000的颜色值;
S1,S2 群组选择器(匹配包含S1,包含S2元素,匹配一个即可)
    如:.my,.you{color:#000}则代表将页面class为my和class为you的元素添加属性为#000的颜色值;
S1S2 合并选择器(匹配包含S1及S2的元素,该元素同时必须包含S1及S2)
    如:.my.you{color:#000}则代表将页面class有my及you的元素添加属性为#000的颜色值;

2.结构选择器

S1 S2 后代选择器(S1所有的后代S2)
S1>S2 子选择器(S1的子元素S2 IE7+)
S1+S2 相邻兄弟选择器(S1后面的相邻兄弟元素S2 IE7+)
S1~S2 通用兄弟选择器(S1后面的所有兄弟元素S2,IE7+)  

【举例图示】
a.区分S1 S2及S1,S2及S1S2三类选择器;

    <div class="you me">
        you and me
    </div>
    <div class="you">
        you
    </div>
    <div class="me">
        me
        <span class="you">
            you
        </span>
    </div>
    .me,.you{
        color: deeppink;
    }
    .you.me{
        background: #eee;
    }
    .me .you{
        color: #0f0;
    }

添加如上结构及样式,可得到下面的效果:

clipboard.png

可以看出来.me,.you群组选择器即只要包含了任意一个即可生效;.me .you后代选择是只有.me的后代.you才会生效,.me.you合并选择器,是需要两个选择器都包含才会生效。

b.区分各类兄弟选择器

    <div class="parent">
        <div class="son son1">son1</div>
        <div class="son">son2</div>
        <div class="son">son3</div>
        <div class="son">son4</div>
    </div>
    <div class="son">
        son other
    </div>
    .parent >.son{
        color: #0f0;
    }
    .son1 + .son{
        text-align: center;
    }
    .son1 ~ .son{
        background: #eee;
    }

添加如上结构及样式,可得到下面的效果:
图片描述

3.伪类选择器

动态伪类选择器
    :link
    :visited
    :acitve(IE8+)
    :hover
    :focus(IE8+)
目标伪类选择器
    :target(IE9+)
语言伪类选择器
   :lang(language)
ui元素状态伪类选择器(IE9+)
    :checked  选中态
    :enabled    启用态
    :disabled    禁用态
结构伪类选择器(IE9+)
    :first-child
    :last-child
    :root
    :nth-child(n) odd even
    :nth-last-child(n)
    :nth-of-type(n)
    :nth-last-of-type(n)
    :first-of-type
    :last-of-type
    :only-child
    :only-of-type
    :empty

    n的场景 n n*length n+length -n+length n*length+b odd even

否定伪类选择器
    :not (IE9+)

【举例图示】
以上伪类选择器,结构伪类选择器在日常效果中应用最为广泛,应用恰当可以得到很多意想不到的效果。【具体效果会另开文章再更新】

4.伪元素

::first-letter 第一个字母
::first-line 第一行文本
::before 在元素前插入内容,但不会生成dom,可以设置样式【会在下篇文章补充说明】
::after 在元素后插入内容,但不会生成dom,可以设置样式,常用于清除浮动【会在下篇文章补充说明】

5.属性选择器【IE7+】

E[attr] 匹配具有属性attr的元素E
E[attr=val] 匹配属性attr为val的元素E
E[attr|=val] 以val 或者val-开头
E[attr~=val] 属性值要包含val这个属性
E[attr*=val] 属性值中有val这个字符串就可以
E[attr^=val] 以val开头
E[attr$=val] 以val结束

相关文章:

  • powermock单元测试
  • 9月20日学习内容整理:封装,私有属性方法,用装饰器描述的方法
  • 车联网上云最佳实践(三)
  • Codeforces Round #435 (Div. 2)
  • 机器学习概述
  • 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox
  • 从重复到重用
  • TPYBoard读取芯片上的温度传感器
  • 变量的保存重载和打印
  • Oracle将Java EE移交Eclipse基金会
  • Linux - 执行命令与脚本
  • HashMap ConcurrentHashMap
  • 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置...
  • 软件下载
  • 7. Oracle数据加载和卸载
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【前端学习】-粗谈选择器
  • Apache Spark Streaming 使用实例
  • AWS实战 - 利用IAM对S3做访问控制
  • IOS评论框不贴底(ios12新bug)
  • java8 Stream Pipelines 浅析
  • js正则,这点儿就够用了
  • Nacos系列:Nacos的Java SDK使用
  • node学习系列之简单文件上传
  • SpringCloud集成分布式事务LCN (一)
  • 聊聊flink的TableFactory
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 新手搭建网站的主要流程
  • 学习笔记TF060:图像语音结合,看图说话
  • 用jQuery怎么做到前后端分离
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C语言)fread与fwrite详解
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (第61天)多租户架构(CDB/PDB)
  • (二)springcloud实战之config配置中心
  • (二)换源+apt-get基础配置+搜狗拼音
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (四)Android布局类型(线性布局LinearLayout)
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NetCore 如何动态路由
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET多线程执行函数
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .NET框架设计—常被忽视的C#设计技巧
  • .NET命令行(CLI)常用命令
  • .net实现客户区延伸至至非客户区
  • [AX]AX2012 SSRS报表Drill through action
  • [bzoj1901]: Zju2112 Dynamic Rankings