【CSS 选择器世界】CSS 属性选择器搜索过滤技术

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

正文


一、属性值正则匹配选择器


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


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


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


二、实例


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


HTML结构如下:


<input type="search" id="input" placeholder="输入城市名称或拼音" />
<ul> 
    <li data-search="重庆市chongqing">重庆市</li>
    <li data-search="哈尔滨市haerbing">哈尔滨市</li>
    <li data-search="长春市changchun">长春市</li>
    <li data-search="兰州市lanzhou">兰州市</li>
    <li data-search="北京市beijing">北京市</li>
    <li data-search="杭州市hangzhou">杭州市</li>
    <li data-search="长沙市changsha">长沙市</li>
    <li data-search="沈阳市shenyang">沈阳市</li>
    <li data-search="成都市chengdu">成都市</li>
    <li data-search="合肥市hefei">合肥市</li>
    <li data-search="天津市tianjin">天津市</li>
    <li data-search="西安市xian">西安市</li>
    <li data-search="武汉市wuhan">武汉市</li>
    <li data-search="济南市jinan">济南市</li>
    <li data-search="广州市guangzhou">广州市</li>
    <li data-search="南京市nanjing">南京市</li>
    <li data-search="上海市shanghai">上海市</li>
    <li data-search="昆明市kunming">昆明市</li>
    <li data-search="郑州市zhangzhou">郑州市</li>
    <li data-search="贵阳市guiyang">贵阳市</li>
    <li data-search="西宁市xining">西宁市</li>
    <li data-search="海口市haikou">海口市</li>
    <li data-search="南昌市nanchang">南昌市</li>
    <li data-search="香港 特区xianggang">香港 特区</li>
    <li data-search="澳门 特区aomen">澳门 特区</li>
</ul>


JS 代码如下:


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


PS: 正则匹配运算符是属性选择器新增的运算符,它可以忽略属性值大小写,使用字符 i 或者 I 作为运算符值,但约定俗称都使用小写字母 i 作为运算符。(上面的 JS 代码中就有用到)


最终效果如下:



17.webp.jpg

1


18.webp.jpg

2



CSS 的一些高级特性,学起来还是蛮有意思的,深入研究的话,会发现平时一些严重依赖 js 代码的模块,都是可以解耦合的,加油继续好好学。

目录
相关文章
|
4月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
60 1
|
4月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
60 1
|
20天前
|
JavaScript 容器
jquery和CSS3图片排序过滤搜索插件
Filterizr是一款jquery和CSS3图片排序过滤插件。它可以对一组图片进行排序,按条件过滤和按关键字搜索。并在显示结果时使用指定的CSS3动画过渡效果。
25 2
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
50 6
|
2月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
52 5
|
2月前
|
移动开发 前端开发 JavaScript
除了 CSS3,还有哪些技术可以实现动画效果?
除了 CSS3,还有哪些技术可以实现动画效果?
75 5
|
2月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
63 2
|
4月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
4月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
144 1
|
3月前
|
前端开发 开发者 UED
CSS不同技术的探讨
【10月更文挑战第11天】 CSS不同技术的探讨

热门文章

最新文章

下一篇
开通oss服务