属性值正则匹配选择器包括下面3种:

  • [attr^="val"]
  • [attr$="val"]
  • [attr*="val"]

这3种属性选择器是字符匹配,而非单词匹配。其中,尖角符号^、美元符号$以及星号*都是正则表达式中的特殊标识符,分别表示前匹配、后匹配和任意匹配。

利用这些选择器,纯CSS就可以做出很炫酷的功能。

显示超链接的小图标和文件类型图表

利用[attr^="val"]前匹配选择器可以判断<a>元素的链接地址类型,以用来显示对应的小图标。显示超链接的小图标的样式如下:

[href] {padding-left: 18px;}
/* 链接地址 */
[href^="https"],
[href^="//"] {background: url("./images/link.png") no-repeat left;
}
/* 网页内锚链 */
[href^="#"] {background: url("./images/anchor.png") no-repeat left;
}
/* 手机和邮箱 */
[href^="tel:"] {background: url("./images/tel.png") no-repeat left;
}
[href^="mailto:"] {background: url("./images/e-mail.png") no-repeat left;
}

效果

而利用[attr$="val"]后匹配选择器则可以实现显示文件类型小图标。CSS如下:

/* 指向PDF文件 */
[href$=".pdf"] {background: url("./images/pdf.png") no-repeat left;
}
/* 下载zip压缩文件 */
[href$=".zip"] {background: url("./images/zip.png") no-repeat left;
}
/* 图片链接 */
[href$=".png"],
[href$=".gif"],
[href$=".jpg"],
[href$=".jpeg"],
[href$=".webp"] {background: url("./images/image.png") no-repeat left;
}

效果如下

CSS属性选择器搜索过滤技术

我们可以借助属性选择器来辅助我们实现搜索过滤效果,如通讯录、城市列表,这样做性能高,代码少。

HTML结构如下:

<input type="search" id="input" placeholder="输入城市名称或拼音" />
<ul><li data-search="重庆市 chongqing">重庆市</li><li data-search="哈尔滨市 haerbin">哈尔滨市</li><li data-search="长春市 changchun">长春市</li><li data-search="长沙市 changsha">长沙市</li><li data-search="上海市 shanghai">上海市</li><li data-search="杭州市 hangzhou">杭州市</li>
</ul>

此时,当我们在输入框种输入内容的时候,只要根据输入内容动态创建一段CSS代码就可以实现搜索匹配效果了,无需自己写代码进行匹配验证。

var eleStyle = document.createElement('style');
document.head.appendChild(eleStyle);
// 文本输入框
input.addEventListener('input', function() {var value = this.value.trim();eleStyle.innerHTML = value ? '[data-search]:not([data-search*="' + value +'"]) { display: none; } ' : '';
});

最终效果如下

图标选择器_【小技巧】巧用CSS属性值正则匹配选择器相关推荐

  1. css 选择href属性值,巧用CSS属性值正则匹配选择器(小技巧)

    属性值正则匹配选择器包括下面3种: [attr^="val"] [attr$="val"] [attr*="val"] 这3种属性选择器是字 ...

  2. 开发小技巧之:unicode的排序和正则匹配

    文章目录 简介 ASCII字符的排序 本地字符的排序 为什么不使用unicode进行排序 emoji的正则匹配 总结 简介 我们知道计算机最先兴起是在国外,出于当时计算机性能的考虑和外国常用字符的考虑 ...

  3. css提取页面元素唯一性_下面这个函数,能够获取一个元素的任意 CSS 属性值。...

    在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如下: 1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属 ...

  4. 【CSS 属性值分类: 指定值,计算值,使用值,实际值 的区别】

    CSS 属性值的分类 CSS 属性值的分类 ⑴ 指定值 ⑵ 计算值 ⑶ 使用值 ⑷ 实际值 ♣ 结束语 和 友情链接 CSS 属性值的分类 开发者设定的 指定值 ≠ 实际值的情况 浏览器 和 属性值的 ...

  5. getComputedStyle currentStyle 获取当前元素所有最终使用的CSS属性值

    object.getComputedStyle  获取当前元素所有最终使用的CSS属性值.返回的是一个CSS样式声明对象,只读,不能设置. 此方法不兼容IE8及以下,需用currentStyle方法. ...

  6. 理解 CSS 属性值语法

    本文转载自:众成翻译 链接:http: //www.zcfy.cc/article/390 万维网联盟(W3C) 使用了一套特别的语法来定义 CSS 的属性值,能让所有的 CSS 属性都用.如果你曾看 ...

  7. php 获取css值,如何通过JS获取CSS属性值

    JS获取CSS属性 #f{background-color:#FF0000;} var o = document.getElementById('f'); document.write(o.style ...

  8. js获取css属性值的方法

    js操作获取dom元素的样式属性值 obj.style: 它只能够获取通过style设置的元素CSS属性值: 在html标签内通过style设置行内属性 通过.dom.style.width=&quo ...

  9. SharePoint 2010自定义母版页小技巧——JavaScript和CSS引用

    通常在我们的项目中,都会涉及到母版页的定制.并且必不可少的,需要配合以一套自己的JavaScript框架和CSS样式. 你有没有遇到过这样的情况呢,在开发环境和UAT时都还算顺利,但是当最终部署到生产 ...

最新文章

  1. 略谈新时尚风之网上购物领域
  2. 谭浩强课后题之----求最大公约数和最小公倍数
  3. 网页添加马赛克模糊插件工具
  4. cvPyrSegmentation() 图像金字塔分割
  5. 网易云服务器上传文件,网易云音乐怎么把音乐上传到云盘 网易云音乐把音乐上传到云盘的步骤方法...
  6. 【正点原子STM32连载】第一章 本书学习方法 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  7. 关于计算机网络简笔画,电脑卡通简笔画图片
  8. 微型计算机原理与接口技术 试卷,微机原理与接口技术试卷和答案4套.doc
  9. SQL SERVER 2016安装Microsoft R Open和Microsoft R Server问题
  10. Java项目:小区物业管理系统(java+Springboot+ssm+mysql+maven+jsp)
  11. java实现mysql拦截_在mybatis执行SQL语句之前进行拦击处理实例
  12. 没有装php可以用phpmyadmin,phpMyAdmin 安装及问题总结
  13. 【算法打卡(二分查找)---7.12】
  14. JAVA泛型与集合类
  15. 请说说自己对鲁迅本人他作品的了解计算机,26 回忆鲁迅先生课堂实录及点评
  16. python-机器学习-手写数字识别
  17. 多线程练习:模拟多人爬山
  18. JavaScript - 基础+WebAPI(笔记)
  19. 用树莓派 ZeroW 做一个无线网卡
  20. prometheus图形界面的基本监控配置

热门文章

  1. rds for mysql的监控指标_支持的监控指标_云数据库 RDS_用户指南_MySQL用户指南_监控指标与告警_华为云...
  2. python手机自动化框架_python自动化框架(一)
  3. cent os mysql 内存_Cent OS – MySQL – 主从配置
  4. java 注解报错_eclipse编译项目:Java @Override 注解报错的解决方法
  5. Git 修改commit 相关操作
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的商场人员管理系统
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的驾校预约系统
  8. Hadoop记录-hadoop2.x常用端口及定义方法
  9. 扩展欧几里得,解线性同余方程 逆元 poj1845
  10. Cisco无线mDNS