php 正则匹配css类名,【小技巧】巧用CSS属性值正则匹配选择器

bVbEn3K

属性值正则匹配选择器包括下面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;

}

效果

1460000021979599

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

}

效果如下

1460000021979598

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; } ' : '';

});

最终效果如下

1460000021979600

更多小技巧

关注公众号,第一时间接收最新文章。如果对你有一点点帮助,可以点喜欢点赞点收藏,还可以小额打赏作者,以鼓励作者写出更多更好的文章。

bVbALAm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值