当前位置:编程学习 > html/css >>

用CSS3实现客户端的全文检索

   今天我们休息休息,讲讲简单的东西。
 
        使用data-属性作为索引,和一个用于检索的CSS3动态选择器,我们可以不需要JavaScript,直接实现客户端的全文检索功能。下面是一个示例:
 
        检索列表
  <!-- Data generated by Faker, see https://github.com/fzaninotto/Faker --> <ul class="contacts"> <!-- Add text to the data-index attribute to enable full-text search --> <!-- Don't forget to lowercase it to make search case-insensitive --> <li class="searchable" data-index="onabednarschamberger.frank@wuckert.com1-265-479-1196x714"> <dl> <dt>First Name</dt><dd>Ona</dd> <dt>Last Name</dt><dd>Bednar</dd> <dt>Email</dt><dd>schamberger.frank@wuckert.com</dd> <dt>Phone</dt><dd>1-265-479-1196x714</dd> </dl> </li> <li class="searchable" data-index="newtoncronintorphy.dorothea@gmail.com(121)644-5577"> <dl> <dt>First Name</dt><dd>Newton</dd> <dt>Last Name</dt><dd>Cronin</dd> <dt>Email</dt><dd>torphy.dorothea@gmail.com</dd> <dt>Phone</dt><dd>(121)644-5577</dd> </dl> </li> <!-- add as much data as you want --> </ul>

 

 
        搜索代码
 
        搜索功能的实现非常简单,它依赖于两个CSS3支持很好的选择器(:not()和 [attr*=]),以及每当搜索框输入内容改变时重写样式规则。
 
  <input type="text" placeholder="search" id="search"> <style id="search_style"></style> <script type="text/javascript"> var searchStyle = document.getElementById('search_style'); document.getElementById('search').addEventListener('input', function() { if (!this.value) { searchStyle.innerHTML = ""; return; } // look ma, no indexOf! searchStyle.innerHTML = ".searchable:not([data-index*=\"" + this.value.toLowerCase() + "\"]) { display: none; }"; // beware of css injections! }); </script>

 

 
        使用CSS3选择器而不是JavaScript的indexOf()来实现检索功能是因为速度:当每次按键时你只改变一个元素(<style>标签),而不是匹配检索词的所有元素。IE9+以上的版本支持:not()选择器,而且可以很容易的使用两个规则来兼容IE8+。
 
         下面是一个演示,点击此处可以看到。
 
 
  
补充:web前端 , HTML/CSS  ,

上一个:CSS多级数字序号的目录列表(类似3.3.1.这样的列表序号)
下一个:Easyui中的combobox加载来自Action的JSON的2种方法

更多html/css疑问解答:
div+css中关于ie浏览器中非啊元素的:hover的实现问题,哪位大神指点下啊
css jquery代码中为什么宽度这样设定.menu li ul 150px;.menu li ul a 110px;.menu li a中padding的20px
css 属性选择器 ie6 不支持吗?
用css、jquery做的选项卡效果,有一个小疑问,请高手指点,代码如下:
介绍本学习css的书
wordpress多个CSS样式怎么调用?
这个div 的css是如何编写的
div+css中,div的右边框小于div的高度且居中,除了用背景图片,如何实现?
表格立体感用CSS怎么写 我要 具体代码 写仔细 分段的 谢谢 了 兄弟 还有 下拉列表框 立体感用CSS 怎么写
CSS 在一个大的DIV里面,另一个DIV怎么居中并置底。
dw中html文档为什么无法链接css文档
设计一个小例子说明DIV+CSS的优势(例子要解释并注释)。
我会html css目前正在学js,打算在大三的寒假找个实习,请问应该找哪方面的实习?
css问题,跪求大大帮忙
请教网页设计高手,如下图的这种css代码怎么写?
asp
php
Delphi
Matlab
JSP
Foxpro
JS
C/C++
C#/ASP.NET
VC++
JAVA
VB
汇编语言
html/css
CGI
XML/UML
wap
网站相关
网页素材
python
如果你遇到编程学习难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,