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

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

[attr^="val"]

[attr$="val"]

[attr*="val"]

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

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

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

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

[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;

}

效果

8ffe02d35e8dda3038cfaa3686acaee2.png

而利用[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;

}

效果如下

44ebf58af2068e3574a1335fb8a4ad09.png

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

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

HTML结构如下:

  • 重庆市
  • 哈尔滨市
  • 长春市
  • 长沙市
  • 上海市
  • 杭州市

此时,当我们在输入框种输入内容的时候,只要根据输入内容动态创建一段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属性值正则匹配选择器(小技巧)的文章就介绍到这了,更多相关CSS属性值正则匹配内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值