CSS3选择器和jquery选择器总结

  1 一、CSS3选择器                                             
  2   1、CSS3基本选择器
  3 类型
  4 
  5 语法
  6 
  7 功能描述
  8 
  9 标签选择器
 10 
 11 P{font-size:16px}
 12 
 13 使用HTML中的标签作为相应的选择器的名称,直接设置页面中的标签样式
 14 
 15 类选择器
 16 
 17 .class{font-size:16px}
 18 
 19 最常用的选择器,样式一样的情况可以公用一个类名
 20 
 21 ID选择器
 22 
 23 #id{font-size:16px}
 24 
 25 只能在页面中使用一次,同一个id属性在同一个页面中只能使用一次
 26 
 27   基本选择器的优先级: ID选择器>class类选择器>标签选择器 ;
 28 
 29   CSS选择器的命名规范:a、使用英文字母小写   b、不要和Id选择器同名   c、使用具有语义化的单词命名   d、长名称或者词组可以使用驼峰命名方式命名选择器;
 30 
 31   2、CSS3高级选择器
 32   (1)层次选择器
 33 
 34   层次选择器是通过HTML的文档对象模型(Document Object Model,DOM)元素间的层次来选择元素的,其主要的层次关系包括后代、父子、相邻兄弟和通用兄弟等几种关系。
 35 
 36   
 37 
 38 选择器
 39 
 40 类 型
 41 
 42 功能描述
 43 
 44 E F
 45 
 46 后代选择器
 47 
 48 选择匹配的F元素,且匹配的F被包含在匹配的E元素内
 49 
 50 E>F
 51 
 52 子选择器
 53 
 54 选择匹配的F元素,且3匹配的F元素是匹配的E元素的子元素
 55 
 56 E+F
 57 
 58 相邻兄弟选择器
 59 
 60 选择匹配的F元素,且匹配的F元素紧位于匹配的E元素的后面
 61 
 62 E~F
 63 
 64 通用兄弟选择器
 65 
 66 选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素
 67 
 68   注意:a、后代选择器两个选择符之间必须要以空格隔开,中间不能有任何其他的符号插入。
 69 
 70      b、通用兄弟选择器选中的是E元素相邻的后面兄弟元素F,是一个或多个元素;相邻兄弟选择器选中的仅是与E元素相邻并且紧挨的兄弟元素F,其中选中的仅是一个元素。
 71 
 72   (2)属性选择器
 73 
 74   在HTML中,可以给元素设置各种各样的属性,如 id、class、title、href等。通过各种各样的属性可以选择到元素并为其设置样式;
 75 
 76 属性选择器
 77 
 78 功能描述
 79 
 80 E[attr]
 81 
 82 选择匹配具有属性attr的E元素  
 83 
 84 例:a[id] { background:yellow; }
 85 
 86  
 87 
 88 E[attr=val]
 89 
 90 选择匹配具有属性attr的E元素,并且属性值为val(其中val区分大小写)
 91 
 92 例:a[id=”first”] { background: red; }
 93 
 94 <a href=”http://abcd.doc” id=”first” class=”links item”>10</a>
 95 
 96 E[attr^=val]
 97 
 98 选择匹配元素E,且E元素定义了属性attr,其属性值是以val开头的任意字符串
 99 
100 例如:a[href^=”http”] { background: red; }
101 
102 <a href=”http://abcd.doc” id=”first” class=”links item”>10</a>
103 
104 E[attr$=val]
105 
106 选择匹配元素E,且E元素定义了属性attr,其属性值是以val结尾的任意字符串
107 
108 例如:a[href$=”doc”] {background: red; }
109 
110 <a href=”http://abcd.doc” id=”first” class=”links item”>10</a>
111 
112 E[attr*=val]
113 
114 选择匹配元素E,且E元素定义了属性attr,其属性值包含了“val”,也就是字符串val与属性值中的任意位置相匹配
115 
116 例如:a[class*="links"] { background: red; }
117 
118 <a href=”http://abcd.doc” id=”first” class=”links item”>10</a>
119 
120   注意:E[attr=val]属性选择器中,属性和属性值必须完全匹配才能被选中。
121 
122   例如:<a href="#" class="links  item"></a>。
123 
124   其中,a[class="links"]{…}是找不到匹配元素的,只有a{class="links  item"}{…}才能够匹配。
125 
126   (3)结构伪类别选择器
127 
128   伪类可以将一段并不存在的HTML当作独立元素来定位,或者是找到无法使用的其他简单选择器就能定位到实际存在的元素上。
129 
130 选择器
131 
132 功能描述
133 
134 E:first-child
135 
136 作为父元素的第一个子元素的元素E
137 
138 E:last-child
139 
140 作为父元素的最后一个子元素的元素E
141 
142 E F:nth-child(n)
143 
144 选择父级元素E的第n个子元素F(n可以是1、2、3……)
145 
146 E:first-of-type
147 
148 父元素内具有指定类型的第一个元素E元素
149 
150 E:last-of-type
151 
152 父元素内具有指定类型的最后一个元素E元素
153 
154 E F:nth-of-type(n)
155 
156 选择父元素内具有指定类型的第n个F元素。
157 
158  
159 
160 注意:E F:nth-child(n)和E F:nth-of- type(n)的区别:前者是在父级里从第一个元素开始查找,不分类型。后者是在父级里先看类型,再看位置。
161 
162 div p:nth-child(1){ background: yellow:}  div中第一个且是p元素。
163 
164 div p:nth-of-type(2){ background: blue:} div中第2个类型为p的元素。
165 
166 二、jQuery选择器
167   在CSS中,选择器的作用是获取元素,而后为其添加CSS样式,美化其外观;jQuery选择器,不仅良好地继承了CSS选择器的语法,还集成了其获取页面元素便捷高效的特点,jQuery选择器与CSS选择器的不同之处就在于,jQuery选择器获取元素后,为该元素添加的是行为,使页面交互变得更加丰富。jQuery选择器浏览器兼容性更好。优势:①代码简洁;②处理机制完善;
168 
169   1.基本选择器
170  
171 
172 名称
173 
174 语法构成
175 
176 描述
177 
178 返回值
179 
180 示例
181 
182 标签选择器
183 
184 element
185 
186 匹配指定的标签名元素
187 
188 元素集合
189 
190 $(“h2”)选取所有h2元素
191 
192 类选择器
193 
194 .class
195 
196 匹配指定的class元素
197 
198 元素集合
199 
200 $(“.tiltle”)选取所有以class为title的元素
201 
202 Id选择器
203 
204 #id
205 
206 匹配指定的id元素
207 
208 单个元素
209 
210 $(“#title”)选取以id为title的元素
211 
212 并集选择器
213 
214 selector1,selector2,…,selecorN
215 
216 将每个选择器匹配的元素合并后一起返回
217 
218 元素集合
219 
220 &(“div,p,.title”)选取所有div、p和class为title的元素
221 
222 全局选择器
223 
224 *
225 
226 匹配所有元素
227 
228 集合元素
229 
230 $(“*”)选取所有元素
231 
232   2.层次选择器
233 名称
234 
235 语法构成
236 
237 描述
238 
239 返回值
240 
241 示例
242 
243 后代选择器
244 
245 root offspring
246 
247 选取root元素里的所有offspring(后代)元素
248 
249 元素集合
250 
251 $(“#menu span”)选取#menu下所有的<span>元素
252 
253 子选择器
254 
255 parent>child
256 
257 选取parent元素下的child(子)元素
258 
259 元素集合
260 
261 $(“#menu>span”)选取#menu下的子元素<span>
262 
263 相邻元素选择器
264 
265 prev+next
266 
267 选取紧邻prev元素之后的next元素
268 
269 元素集合
270 
271 $(“h2+dl”)选取紧邻<h2>元素之后的同辈元素<dl>
272 
273 类似next()方法
274 
275 同辈元素选择器
276 
277 prev~siblings
278 
279 选取prev元素之后的所有siblings(同辈)元素
280 
281 元素集合
282 
283 $(“h2~dl”)选取<h2>元素之后所有的同辈元素<dl>
284 
285 类似nextAll()方法
286 
287 注意: 后代选择器选择范围:子、孙子、曾孙子……
288 
289             子选择器选择范围:子
290 
291   3.属性选择器
292   从语法构成来看,它属于遵循CSS选择器;从类型来看,它属于jQuery中按条件过滤获取元素的选择器之一。
293 
294 语法
295 
296 描述
297 
298 返回值
299 
300 示例
301 
302 [attribute]
303 
304 选取包含指定属性的元素
305 
306 元素集合
307 
308 $(“[href]”)选取含有href属性的元素
309 
310 [attribute=value]
311 
312  选取等于指定属性是某个特定值的元素
313 
314 元素集合
315 
316 $(“[href=’#’]”)选取href属性值为’#’的元素
317 
318 [attribute!=value]
319 
320 选取不等于指定属性是某个值的元素
321 
322 元素集合
323 
324 $(“[href!=’#’]”)选取href属性值不为”#”的元素
325 
326 [attribute^=value]
327 
328 选取指定属性是以某些特定值开始的元素
329 
330 元素集合
331 
332 $(“[href^=’en’]”)选取href属性值以”en”开头的元素
333 
334 [attribute$=value]
335 
336 选取指定属性是以某些特定值结尾的元素
337 
338 元素集合
339 
340 $(“[href$=’.jpg’]”)选取href属性值以”.jpg”结尾的元素
341 
342 [attribute*=value]
343 
344 选取指定属性值包含某些值的元素
345 
346 元素集合
347 
348 $(“[href*=’txt’]”)选取href属性值中含有”txt”的元素
349 
350   4.过滤选择器
351   过滤选择器主要通过特定的过滤规则来筛选出所需要的DOM元素,过滤规则与CSS中懂得伪类语法相同,即选择器都是以一个冒号(:)开头,冒号前是需要过滤的元素。例如,a:hover表示当鼠标指针移过<a>元素时,tr:visited表示当鼠标指针访问过<tr>元素后等。
352 
353   按照不同的过滤条件,过滤选择器可以分为基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单对象属性过滤选择器。这里仅介绍分别介绍基本过滤选择器、可见性过滤选择器、表单属性过滤选择器,后续接触到其它再补充。
354 
355   (1)基本过滤选择器
356 
357 语法
358 
359 描述
360 
361 返回值
362 
363 示例
364 
365 :first
366 
367 选取第一个元素
368 
369 单个元素
370 
371 $(“li:first”)选取所有<li>元素中的第一个<li>元素
372 
373 :last
374 
375 选取最后一个元素
376 
377 单个元素
378 
379 $(“li:last”)选取所有<li>元素中的最后一个<li>元素
380 
381 :not(selector)
382 
383 选取去除所有与给定选择器匹配的元素
384 
385 集合元素
386 
387 $(“li:not(.three)”)选取class不是three的元素
388 
389 :even
390 
391 选取索引是偶数的所有元素(index从0开始)
392 
393 集合元素
394 
395 $(“li:even”)选取索引是偶数的所有<li>元素
396 
397 :odd
398 
399 选取索引是奇数的所有元素(index从0开始)
400 
401 集合元素
402 
403 $(“li:odd”)选取索引是奇数的所有<li>元素
404 
405 :eq(index)
406 
407 选取索引等于index的元素(index从0开始)
408 
409 单个元素
410 
411 $(“li:eq(1)”)选取索引等于1的<li>元素
412 
413 :gt(index)
414 
415 选取索引大于index的元素(index从0开始)
416 
417 集合元素
418 
419 $(“li:gt(1)”)选取索引大于1的<li>元素(注意:大于1,不包括1)
420 
421 :lt(index)
422 
423 选取索引小于index的元素(index从0开始)
424 
425 集合元素
426 
427 $(“li:lt(1)”)选取索引小于1的<li>元素(注意:小于1,不包括1)
428 
429 :header
430 
431 选取所有标题元素,如h1~h6
432 
433 集合元素
434 
435 $(“:header”)选取网页中的所有标题元素
436 
437 :focus
438 
439 选取当前获取焦点的元素
440 
441 集合元素
442 
443 $(“:focus”)选取当前获取焦点的元素
444 
445 :animated
446 
447 选择所有动画元素
448 
449 集合元素
450 
451 $(“:animated”)选取当前所有动画元素
452 
453   (2)可见性过滤选择器
454 
455 选择器
456 
457 描述
458 
459 返回值
460 
461 示例
462 
463 :visible
464 
465 选取所有可见的元素
466 
467 集合元素
468 
469 $(“:visible”)选取所有可见的元素
470 
471 :hidden
472 
473 选取所有隐藏的元素
474 
475 集合元素
476 
477 $(“:hidden”)选取所有隐藏的元素
478 
479   注意:选择器 :hidden获取的元素不仅包括样式属性display为 "none" 的元素,还包括文本隐藏域(<input type="hidden"/>和visibility :hidden之类的元素。)
480 
481      visibility:hidden----将元素隐藏但是在网页中该占的位置还是占着;
482 
483      display:none----将元素的显示设为无,即在网页中不占任何位置;
484 
485   (3)表单属性过滤选择器
486 
487   在介绍表单属性过滤选择器之前,先介绍jQuery表单选择器,为了方便表单验证,jQuery提供了专门针对表单的一类选择器,即表单选择器;
488 
489   a、表单选择器
490 
491   表单选择器就是用来选择文本输入框、按钮等表单元素的。
492 
493   结合代码来介绍
494 
495   示例1:
496 
497    
498 
499 复制代码
500  1    <--省略部分代码--> 
501  2 <div class="main">
502  3         <form method="post" name="myform" id="myform">
503  4                     <h1 class="bold" colspan="2">注册休闲网</h1>
504  5 
505  6                 <dl>
506  7                     <dt class="left">您的Email:</dt>
507  8                     <dd>
508  9                         <input type="hidden" name="userId" />
509 10                         <input id="email" type="text" class="inputs" /></dd>
510 11                 </dl>
511 12                 <dl>
512 13                     <dt class="left">输入密码:</dt>
513 14                     <dd>
514 15                         <input id="pwd" type="password" class="inputs" /></dd>
515 16                 </dl>
516 17                 <dl>
517 18                     <dt class="left">再输入一遍密码:</dt>
518 19                     <dd>
519 20                         <input id="repwd" type="password" class="inputs" /></dd>
520 21                 </dl>
521 22                 <dl>
522 23                     <dt class="left">您的姓名:</dt>
523 24                     <dd>
524 25                         <input id="user" type="text" class="inputs" /></dd>
525 26                 </dl>
526 27                 <dl>
527 28                     <dt class="left">性别:</dt>
528 29                     <dd>
529 30                         <input name="sex" type="radio" value="1" checked="checked" />
530 31531 32                         <input name="sex" type="radio" value="0" />
532 33                         女</dd>
533 34                 </dl>
534 35                 <dl>
535 36                     <dt class="left">出生日期:</dt>
536 37                     <dd>
537 38                         <select name="year">
538 39                             <option value="1998">1998</option>
539 40                         </select>年
540 41                          <select name="month">
541 42                              <option value="1">1</option>
542 43                          </select>月
543 44                        <select name="day">
544 45                            <option value="12">12</option>
545 46                        </select>日</dd>
546 47                 </dl>
547 48                 <dl>
548 49                     <dt class="left">爱好:</dt>
549 50                     <dd>
550 51                         <input type="checkbox" checked="checked" />编程 
551 52                         <input type="checkbox" />读书 
552 53                         <input type="checkbox" />运动
553 54                     </dd>
554 55                 </dl>
555 56                 <dl>
556 57                     <dt class="left">您的头像:</dt>
557 58                     <dd>
558 59                         <input id="fileImgHeader" type="file" />
559 60                         <img id="imgHeader" src="images/header1.jpg" />
560 61                         <input type="image" src="images/header2.jpg" /></dd>
561 62                 </dl>
562 63 
563 64                 <dl>
564 65                     <dt>&nbsp;</dt>
565 66                     <dd>
566 67                         <input name="btn" type="submit" value="注册" class="rb1" />  &nbsp;
567 68                         <input name="btn" type="reset" value="重置" class="rb1" />
568 69                         <input type="button" style="display: none" />
569 70                         <button type="button" style="display: none"></button>
570 71                     </dd>
571 72                 </dl>
572 73         </form>
573 74     </div>
574 75 <--省略部分代码-->
575 复制代码
576  
577 
578 使用示例一的代码介绍表单选择器的语法如下表:
579 
580 语法 
581 
582 描述
583 
584 示例
585 
586 :input
587 
588 匹配所有input、textarea、select和button元素
589 
590 $(“#myform :input”)选取表单中所有的input、select和button元素
591 
592 :text
593 
594 匹配所有单行文本框,即type=”text”
595 
596 $(“#myform :text”)选取Email和姓名两个input元素
597 
598 :password
599 
600 匹配所有密码框,即type=”password”
601 
602 $(“#myform :password”)选取两个<input type=”password”/>元素
603 
604 :radio
605 
606 匹配所有单项按钮
607 
608 $(“#myform :radio”)选取性别对应的两个<input type=”radio”/>元素
609 
610 :checkbox
611 
612 匹配所有复选框
613 
614 $(“#myform :checkbox”)选取三个<input type=”checkbox”/>元素
615 
616 :submit
617 
618 匹配所有提交按钮
619 
620 $(“#myform : submit”) 选取一个<input type=”submit”/>元素
621 
622 :image
623 
624 匹配所有图像域
625 
626 $(“#myform : image”) 选取一个<input type=”image”/>元素
627 
628 :reset
629 
630 匹配所有重置按钮
631 
632 $(“#myform : reset”) 选取一个<input type=” reset”/>元素
633 
634 :button
635 
636 匹配所有普通按钮
637 
638 $(“#myform :button”)选取最后两个button元素
639 
640 :file
641 
642 匹配所有文件域
643 
644 $(“#myform :file”) 选取一个<input type=” file”/>元素
645 
646 :hidden
647 
648 匹配所有不可见元素,
649 
650 $(“#myform :hidden”)选取的元素包括三个option元素、一个<input type=”hiidden”/>元素、style=”display: none”的两个button元素
651 
652   b、表单过滤选择器
653 
654   示例2:
655 
656 复制代码
657 <--省略部分代码-->
658  <div class="register">
659         <form id="userform" name="userform">
660             <p>
661                 编号:<input name="code" disabled="disabled"  value="10010"/>
662             </p>
663             <p>
664                 姓名:<input name="name" type="text"  value="张三"/>
665             </p>
666             <p>
667                 性别:<input name="sex" type="radio" value="1" checked="checked" /> 男
668                       <input name="sex" type="radio" value="0" />女
669             </p>
670             <p>
671                 爱好: 
672                         <input type="checkbox" checked="checked"  />编程 
673                         <input type="checkbox" />读书 
674                         <input type="checkbox" />运动
675             </p>
676             <p>
677                 家乡:<select name="hometown">
678                   <option value="1" selected="selected">北京</option>
679                   <option value="2">上海</option>
680                   <option value="3">天津</option>
681               </select>
682             </p>
683         </form>
684     </div>
685 
686 <--省略部分代码-->
687 复制代码
688  
689 
690 使用示例2的代码介绍表单过滤选择器的语法如下表:
691 
692 语法
693 
694 描述
695 
696 示例
697 
698 :enabled
699 
700 匹配所有可用元素
701 
702 $(“#userform :enable”)匹配form内部除编号输入框外的所有元素
703 
704 :disabled
705 
706 匹配所有不可用元素
707 
708 $(“#userform :disabled”)匹配编号输入框
709 
710 :checked
711 
712 匹配所有被选中元素(复选框、单项按钮、select中的option)
713 
714 $(“#userform :checked”)匹配”性别”中的”男”选项和”爱好”中的”编程”选项
715 
716 :selected
717 
718 匹配所有选中的option元素
719 
720 $(“#userform :selected”)匹配”家乡”中的”北京”选项
721 
722   5.jQuery选择器的注意事项
723     (1).选择器中含有特殊如号的注意事项
724 
725     在W3C规范中,规定属性值中不能含有某些特殊字符,但难免会碰到表达式中有"#"和"."等特殊字的情况,若是按照一般情况来处理则会出错,这里就需要使用转义符转义。
726 
727   例如:
728 
729 1 <div id="id#a">aa</div>
730 2 <div id="id[2]">cc</div>
731   普通方式处理(错误): 
732 
733 1 $("#id#a");
734 2 $("#id[a]");
735   不能正确获取到元素,正确的写法需要在特殊符号前加"\\"如下:
736 
737 $("#id\\#a");
738 $("#id\\[2\\]");
739   (2)选择器中含有空格的注意事项
740 
741   选择器中空格也是不容忽视的,
742 
743   例如:
744 
745   
746 
747 var $t_a = $(".test :hidden");   //带空格的jQuery选择器
748   以上代码选取的是class为 "test"的元素内部的隐藏元素
749 
750 var $t_b = $(".test:hidden");   //不带空格的jQuery 选择器
751   以上代码选取的是隐藏的class为 "test"的元素

 

posted @ 2017-10-10 18:10  厉害了我的哥丶  阅读(1061)  评论(0)    收藏  举报