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

重学前端-css选择器

属性选择器

1.根据某个属性进行选择 p[class]即表示为有class属性的p(即使class="")
img[alt]、*[title]、a[href][title]等

2.根据具体属性值进行选择
p[moon='1']、p[moon='1'][title='123']
注意:这种匹配方式应该是完全匹配

<p class="test1">1</p>
<p>2</p>
<p class="test1 test2">3</p>
<p class="test2 test1">4</p>

/*匹配1*/
 p[class='test1']{
     font-weight: bold;
 }
 /*匹配3*/
 p[class='test1 test2']{
     font-size: 18px;
 }
 /*匹配134*/
 .test1{
     color: #a6a495;
 }
复制代码

如果要进行部分匹配,应该是

/*匹配134*/
p[class~='test1']{
    font-weight: bold;
}
复制代码

既然当我们用.class进行匹配的时候,本身就是部分匹配,那么[class~='']形式有什么意义呢?
因为~=这种属性选择器能用于任何属性,而不止是class,例如当title=how to figure out时,可以被p[title~='figure']匹配到,从而匹配一系列的title中有figure的p元素(一定要用空格隔开)
*= 与 ~= 类似 区别就在于不用空格隔开

<p title="fffigureeee">6</p>
/*匹配6*/
p[title*='figure']{
    background-color: red;
}
复制代码

  1. 特定属性选择类型
    *[lang|='en']匹配所有lang属性为en或en-开头的所有值

结构选择器

ul li : ul后代中的所有li
ul>li : ul子元素中的li
h1+p : h1后面第一个元素是p的话,p被选中

伪类和伪元素

链接的伪类 a:link a:visited a:hover a:active
:first-child 匹配的是某父元素的第一个子元素,可以说是结构上的第一个子元素。

:first-of-type 匹配的是该类型的第一个,类型是指什么呢,就是冒号前面匹配到的东西,比如 p:first-of-type,就是指所有p元素中的第一个。这里不再限制是第一个子元素了,只要是该类型元素的第一个就行了,当然这些元素的范围都是属于同一级的,也就是同辈的。

对应还有:first-letter/:first-line

转载于:https://juejin.im/post/5c6a2427e51d4501377b87c3

相关文章:

  • 对象引论
  • Windows Core OS预计将更多地依赖于这些组件
  • 【技术性】Search知识
  • 什么是Javascript函数节流?
  • C语言小程序-基于链表的学生信息管理
  • js基础
  • 前嗅ForeSpider教程:创建模板
  • spring cloud构建互联网分布式微服务云平台-SpringCloud集成项目简介
  • MySQL无法启动几种常见问题小结
  • C语言笔记(第一章:C语言编程)
  • sqoop使用手册--mysql配置
  • width 值 max-content、fill-available、min-content 对应作用
  • multimap详讲
  • 剑指offer-树的子结构
  • JavaScript HTML DOM
  • Angularjs之国际化
  • Docker 笔记(2):Dockerfile
  • express如何解决request entity too large问题
  • GitUp, 你不可错过的秀外慧中的git工具
  • javascript 哈希表
  • JavaScript 基本功--面试宝典
  • JavaScript学习总结——原型
  • PAT A1050
  • Redis的resp协议
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Sublime Text 2/3 绑定Eclipse快捷键
  • SwizzleMethod 黑魔法
  • vue:响应原理
  • 阿里云购买磁盘后挂载
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 人脸识别最新开发经验demo
  • 日剧·日综资源集合(建议收藏)
  • 消息队列系列二(IOT中消息队列的应用)
  • 小而合理的前端理论:rscss和rsjs
  • 学习笔记TF060:图像语音结合,看图说话
  • python最赚钱的4个方向,你最心动的是哪个?
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • # 飞书APP集成平台-数字化落地
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (9)目标检测_SSD的原理
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十五)使用Nexus创建Maven私服
  • (转)setTimeout 和 setInterval 的区别
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET委托:一个关于C#的睡前故事
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @Pointcut 使用
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • []利用定点式具实现:文件读取,完成不同进制之间的