CSS3选择器

2 篇文章 0 订阅

HTML5与CSS3选择器/常用的效果学习总结

  HTML5正式推荐标准(W3C Recommendation)2014年10月28日  W3C: World Wide Web Consortium 万维网联盟 的HTML5工作组正式推荐的标准。

   在HTML5中,元素的标记可以省略,具体来说,元素的标记分为“不允许写结束标记”、“可以省略结束标记”和“开始标记和结束标记全部可以省略”三种类型。让我们来针对这三种情况列举一个元素清单,其中包括HTML5中的新元素。

“不允许写结束标记”是指,不允许使用开始标记与结束标记将元素括起来的形式,只允许使用“<元素/>”的形式进行书写。

“可以省略结束标记”是指,该元素可以完全 被省略,请注意,即使标记被省略了,该元素还是以隐式的方式存在的。例如将body元素省略不写时,但它在文档结构中还是存在的,可以用document.body进行访问。

1.不允许写结束标记的元素有:area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr

2.可以省略结束标记的元素有:li、dt、dd、p、rt、rp、optgroup、option、colgroup、thead、tbody、tfoot、tr、td、th

3. 可以省略全部标记的元素有:html、head、body、colgroup、tbody

 

另外 ,html5在指定属性值时做了一些改进,在属性值不包括“<”、">"、"="、单引号、双引号等字符时,属性值两边的引号可以省去。例如:

       <input type="email">

       <input type=email>

       <input type='email'>

三种表达形式功能相同。

总结HTML5的新特性

1.  Doctype 更简单<!DOCTYPE html>
2.  简单的编码类型 <meta charset=”utf-8″ />
3.  大小写都可  <input tYPe="text" name="" id="">
4.  布尔值     <input type="radio" checked> 
5.  可以省略引号   <input type=radio> 
6.  可以进行省略的标签  (上文)

HTML5浏览器的兼容情况

Chrome 15.0.874IE 9.0.8112Firefox 8.0.1Opera 11.52 (国内)360浏览器 4.0.3.8搜狗浏览器 3.1.0.3688遨游浏览器v3.2.2.1000QQ浏览器 6.8(10793) 

HTML5兼容绝大部分主流浏览器 IE浏览器兼容IE9+

学习网站:

H5中国    :http://www.html5cn.org/

H5之家    :http://www.h5cn.com/

H5技术门户  :http://www.html5china.com       /*需要翻墙*/

H5研究小组  :http://www.mhtml5.com/          /*需要翻墙*/   网速好的当我没说



 

CSS3 动画过渡属性 transition       浏览器支持情况      Internet Explorer 10FirefoxChrome 以及 Opera 支持 transition 属性。

过渡transition是一个复合属性,包括transition-propertytransition-durationtransition-timing-functiontransition-delay这四个子属性。通过这四个子属性的配合来完成一个完整的过渡效果 

其中这四个属性 分别的属性代表是        

transtion-property

 规定应用过渡的 CSS 属性的名称、           /   none   没有属性会获得过渡效果。 /   all  所有属性都将获得过渡效果。 / property 定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔。

transition-duration

定义过渡效果花费的时间。默认是 0。        time      规定完成过渡效果需要花费的时间(以秒或毫秒计)。  默认值是 0,意味着不会有效果。

transition-timing-function

规定过渡效果的时间曲线。默认是 "ease"。

linear                        

规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。

ease

规定慢速开始,然后变快,然后慢速结束的过渡效果 cubic-bezier(0.25,0.1,0.25,1)

ease-in                       

规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。

ease-out

规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。

ease-in-out

规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。

cubic-bezier(n,n,n,n)

在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

 

transition-delay

规定过渡效果何时开始。默认是 0。  延缓的时间   transition-delay 属性规定过渡效果何时开始。 time    规定在过渡效果开始之前需要等待的时间,以秒或毫秒计。

   
   
1.<!DOCTYPE html>
2.<html>
3. <head>
4. <metacharset="UTF-8">
5. <title></title>
6. <styletype="text/css">
7. div{width:200px; height:200px; background: pink;
8. /*transition过渡属性 all 代表着全部的变化 1s 代表着运动花费的时间 linear 代表着匀速运动 1s 代表着延缓时间*/
9. transition: all 1s linear 1s;
10. }
11. div:hover{width:300px; height:300px; background: plum;}
12. </style>
13. </head>
14. <body>
15. <div></div>
16. </body>
17.</html>

 

css3  选择器

1、基本选择器

选择器

类型

功能描述

*

通用元素选择器

选择文档中所有的html元素      使用#box * { }  这样便找到了ID为box的标签与标签中的所有子元素

E

元素选择器

选择指定的类型的html元素                      如p   a   span   div   ul  等等都标签选择器

#id

ID选择器

选择指定ID属性值为“id”的任意类型的元素      ID选择器  需要保证唯一性

.class

类选择器

选择指定的class属性值为“class”的任意类型的任意多个元素        类选择器 可以重复使用

selector1,selector2

群组选择器

将每一个选择器匹配的元素集合并                可以同时匹配多个class 或者标签 中间用逗号隔开

2、 层次选择器

选择器

类型

功能描述

E  F

后代选择器

选择匹配的F元素,且F元素被包含在匹配的E元素内            选择的是所有的子孙后代所有标签

E > F

子选择器

选择匹配的F元素,且F元素是E元素的子元素             子代选择器  选择字辈的标记  有时候有继承如同后代需要注意! 

E + F

相邻兄弟选择器

选择匹配的F元素,且F元素是E元素后面紧邻的兄弟元素       相邻后面开始的第一个标签  <单选>

E ~ F

通用选择器

选择匹配的F元素,且F元素是E元素后面的所有兄弟元素       从相邻背后开始所有的标签 <多选>

    

3、属性选择器

选择器

功能描述

E[attr]

选中具有attr属性的E元素

E[attr=val]

选中具有attr属性,并且属性值为val的E元素

E[attr|=val]

选中具有attr属性,并且属性值为val或以val-开头  如 p[cat|=b]找到 所有具有cat属性的p标签   并且为val  是 b 或者 b- 开头的p标签

E[attr~=val]

选中具有attr属性,并且属性值包含val的E元素,该属性值必须以空格隔开     不完整或者被拆分含有不算   值必须是完整的

E[attr*=val]通配符

选中具有attr属性,并且属性值包含val的E元素      

E[attr^=val]起始符

选中具有attr属性,并且属性值以val开始的E元素     如:选择其 src 属性值以 "https" 开头的每个 <a> 元素 

E[attr$=val]结束符

选中具有attr属性,并且属性值以val结束的E元素    如:选择其 src 属性以 ".pdf" 结尾的所有 <a> 元素。

E[attr]

 

    
    
1.p{height:30px;border:1px solid #000;}
2.p[cat]{background:red;} /*找到所有包含有属性cat的p*/
3.
4.<h1align="center">css3属性选择器</h1>
5.<pcat="leo">leo</p>
6.<pcat="dp">杜鹏</p>
7.<pcat="zM">子鼠</p>
8.<pcat="xm">小美</p>

E[attr=val]

    
    
1.p{height:30px;border:1px solid #000;}
2.p[cat=leo]{background:red;} /*找到所有cat自定义属性等于leo的p标签*/
3.
4.<pcat="leo">leo</p>
5.<pcat="dp">杜鹏</p>
6.<pcat="zM">子鼠</p>
7.<pcat="xm">小美</p>

E[attr|=val]

    
    
1.p{height:30px;border:1px solid #000;}
2.p[cat|=b]{background:#C3C;} /*找到p标签中 所有具有cat属性 并且为b或者 b- 开头的p标签*/
3.
4.<pcat="b-leo">leo</p>
5.<pcat="bleo">杜鹏</p>
6.<pcat="b-leo">子鼠</p>
7.<pcat="g-xm">小美</p>
8.<pcat="b">无名氏</p>

E[attr~=val]

    
    
1.p{height:30px;border:1px solid #000;}
2.p[cat~=old]{background:red;} /*找到所有自定义属性中含有完整的old的p标签 不完整或者被拆分不算*/
3.
4.<pcat="leo old">leo</p>
5.<pcat="dp">杜鹏</p>
6.<pcat="zM">子鼠</p>
7.<pcat="xm">小美</p>

E[attr*=val]通配符

    
    
1.p{height:30px;border:1px solid #000;}
2.p[cat*=d]{background:#C3C;} /*找到cat属性中含有d的所有p标签*/
3.
4.<pcat="bleo old">leo</p>
5.<pcat="bdp">杜鹏</p>
6.<pcat="bzM">子鼠</p>
7.<pcat="gxm">小美</p

    
    
设置   E[attr*=val]   a标签中是否含有文档后缀的背景文档图 当含有的时候 更改背景图片
p{height:30px; line-height:30px; font-size:12px;border:1px solid #000;}
p a{background:url(img/w.gif) no-repeat 3px center;padding-left:20px; display:block;}
p a[href*=doc]{background:url(img/w.gif) no-repeat 3px center;}
p a[href*=text]{background:url(img/text.gif) no-repeat 3px center;}
p a[href*=pdf]{background:url(img/x.gif) no-repeat 3px center;}
p a[href*=exl]{background:url(img/ppt.gif) no-repeat 3px center;}
 
 
<p>
<ahref="http://www.baidu.com/doc/javascript.html">css3复习</a>
</p>
<p>
<ahref="http://www.baidu.com/text/javascript.html">css3复习</a>
</p>
<p>
<ahref="http://www.baidu.com/pdf/javascript.html">css3复习</a>
</p>
<p>
<ahref="http://www.baidu.com/exl/javascript.html">css3复习</a>
</p>



E[attr^=val]起始符


    
    
1.p{height:30px;border:1px solid #000;}
2.p[cat^=g]{background:pink;} /*找到所有cat属性开头是g的p标签*/
3.
4.<pcat="bleo old">leo</p>
5.<pcat="bdp">杜鹏</p>
6.<pcat="bzM">子鼠</p>
7.<pcat="gxm">小美</p>

E[attr$=val]结束符

1

    
    
.p{height:30px;border:1px solid #000;}
2.p[cat$=M]{background:#CC0;} /*找到是cat属性 结尾是M的p标签 */
3.
4.<pcat="bleo old">leo</p>
5.<pcat="bdp">杜鹏</p>
6.<pcat="bzM">子鼠</p>
7.<pcat="gXM">小美</p>

4、结构伪类选择器语法

选择器

功能描述

E : first-child

作为父元素的第一个子元素的E元素      span:first-child     找到所有父盒子中含有并且是第一个的标签如span:first-child 找的是所有  含有子标签第一个是span的span标签  包括body这个节点下第一个span

E : last-child

作为父元素的最后一个子元素的E元素   span:last-child   找到所有作为父盒子中含有span标签 
并且span标签是父盒子中  最后一个标签是 span的  span标签  (这个不包括body节点)

E  F:nth-child(n)

选中的F元素是E元素的第n个子元素    div div:nth-child(2)  选择是父盒子div  子元素第二个是divdiv元素
如果父盒子div 中第二个标签不是div 则这个是无用选择器 

E  F: nth-last-child(n)

选中的F元素是E元素的倒数第n个子元素     div div:nth-last-child(1)  
选中作为div父盒子中倒数 第二个 标签为divdiv 如果div中倒数第二个标签不是div 标签 那么此选择器作废   

E : nth-of-type(n)

选择父元素内具有指定类型的第n个E元素div div:nth-of-type(1) 选择的是含有 div 的里面的第二个子元素 div 标签 这里可以判别类型 根据需要的类型进行选择

E : nth-last-of--type(n)

选择父元素内具有指定类型的倒数第n个E元素div div:nth-last-of-type(1)  选择的是div 
父盒子中 倒数 第一个子div盒子

E : first-of-type

选择父元素内具有指定类型的第1个E元素    div :first-of-type  找到所有父盒子中的第一个 div

E : last-of-type

选择父元素内具有指定类型的倒数第1个E元素     div:last-of-type{background: wheat;} 找到所有
父盒子中是 倒数里面  第一的指定类型

E : only-child

选择父元素内只包含一个子元素,且该元素是E元素    a:only-child  这是找到只含有一个子元素是a标签的a标签

E : only-of-type

选择父元素内只包含一个类型的子元素,且该元素是E元素       a:only-of-type only-child 都是父盒子中唯一的

总结 : 有type 的就是指定类型  而不限定是否是父元素中的 第一个不符合该类型的元素 

当没有 type 的时候就是  所有父盒子中指定的第几个 标签 是否符合要求 符合要求 就找到否则就是 没有找到

 


first-child选择器和:last-child选择器

前者表示单独选择某类元素的第一个元素,后者表示单独选择某类元素的最后一个元素。

1 #list li:first-child{color:#000; background:#fff;}/*选择#list的第一个子元素li*/2 #list li:last-child{color:#666; background:#dfdfdf;}/*选择#list的最后一个子元素li*/

nth-child选择器和:nth-last-child选择器

选择任何一个子元素

根据奇偶数判断,英文里面的奇数是odd,偶数是even,所以我们只需要给这两个选择器传入odd或even就能筛选出奇数行或偶数行。

1 #list li:nth-child(odd){color:#000; background:#f2f2f2;}/*奇数行*/2 #list li:nth-child(even){color:#666; background:#dfdfdf;}/*偶数行*/

比如我想选择列表中的第二个子元素li,那么只需要li:nth-child(2){}即可,如果想要选择倒数第二个子元素li,那么只需要li:nth-last-child(2){}即可

1 #list li:nth-child(2){color:#000; background:#fff;}/*选择#list的第二个子元素li*/2 #list li:nth-last-child(2){color:#666; background:#dfdfdf;}/*选择#list的倒数第二个子元素li*/

循环使用样式:使用nth-child选择器,给它的参数是表达式

      
      
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <metacharset="gb2312">
5 <title>CSS3选择器-结构性伪类选择器</title>
6 <styletype="text/css">
7*{margin:0; padding:0;}
8#list{font-family:"Microsoft yahei"; font-size:14px;}
9#list li{width:300px; height:30px; line-height:30px; text-align:center; color:#fff; background:#000; list-style:none;}
10#list li:nth-child(4n+1){background:#900;}/*从第一行开始算起 每隔4个(包含第四个)使用次样式*/11
#list li:nth-child(4n+2){background:#090;}/*从第二行开始算起 每隔4个(包含第四个)使用次样式*/12
#list li:nth-child(4n+3){background:#009;}/*从第三行开始算起 每隔4个(包含第四个)使用次样式*/13
#list li:nth-child(4n+4){background:#990;}/*从第四行开始算起 每隔4个(包含第四个)使用次样式*/14
</style>
15 </head>
1617 <body>
18 <ulid="list">
19 <li>选项01</li>
20 <li>选项02</li>
21 <li>选项03</li>
22 <li>选项04</li>
23 <li>选项05</li>
24 <li>选项06</li>
25 <li>选项07</li>
26 <li>选项08</li>
27 <li>选项09</li>
28 <li>选项10</li>
29 <li>选项11</li>
30 <li>选项12</li>
31 </ul>
32 </body>
33 </html>

nth-of-type选择器和nth-last-of-type选择器

只针对同类型的子元素进行计算

      
      
        
        
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <metacharset="gb2312">
5 <title>CSS3选择器-结构性伪类选择器</title>
6 <styletype="text/css">
7*{margin:0; padding:0;}
8#list{font-family:"Microsoft yahei"; font-size:14px;}
9#list dt,#list dd{height:30px; line-height:30px; text-align:center; list-style:none; color:#fff;}
10#list dd{color:#000;}
11#list dt:nth-of-type(odd){background:#900;}/*奇数行*/12 #list dt:nth-of-type(even){background:#090;}/*偶数行*/13 </style>
14 </head>
1516 <body>
17 <dlid="list">
18 <dt>我爱前端</dt>
19 <dd>前端的学习笔记</dd>
20 <dt>我爱前端</dt>
21 <dd>前端的学习笔记</dd>
22 <dt>我爱前端</dt>
23 <dd>前端的学习笔记</dd>
24 <dt>我爱前端</dt>
25 <dd>前端的学习笔记</dd>
26 <dt>我爱前端</dt>
27 <dd>前端的学习笔记</dd>
28 </dl>
29 </body>
30 </html>

only-child选择器

选择只有1个子元素的元素

1 ul li:only-child{background:#900;}/*选择只有1个子元素LI的元素*/


5、文本新增伪类

选择器

功能描述

E :: first-letter

选择文本块的第一个字母  

E :: first-line

选择文本快的第一行

E :: before    和E :: after

主要用于清除浮动

E :: selection

选中的E元素        可以改变当文字被选中时背景颜色  

 

before   /    after   可以不加 :: 加一个就行了  但是:: selection 属性必须在前面加

    
    
p{width:300px;border:1px solid #000;font:12px/30px "宋体";padding:10px;}
p:first-line{ background:red;} /*设置p标签中第一行的第一个字*/
p:first-letter{ font-size:30px;} /*设置p标签中第一行的文本*/
p::selection{background:#F60;color:#690;} /*设置文本被选中后的样式 */
p:before{ content:"cat"; display:block; border:1px solid #000;} /*设置在p标签之前插入一个*/
p:after{ content:"cat"; display:block; border:1px solid #000;}
<p>前端开发的世界从未有过无声的寂静,精彩纷呈的互联网也不曾出现片刻安宁,
在 HTML5&CSS3 被炒至沸沸扬扬的今天,全面系统的掌握此项技能,是加重技术含金量的重要砝码!
</p>

:target

#news:target

选择当前活动的 #news 元素。

:enabled

input:enabled

选择每个启用的 <input> 元素。

:disabled  

input:disabled

选择每个禁用的 <input> 元素

:checked

input:checked

选择每个被选中的 <input> 元素。

:not(selector)

:not(p)

选择非 <p> 元素的每个元素  选择除了( ) 中选择器之外的标签元素

:focus

input:focus

选择获得焦点的inout元素

E : root:root 选择器匹配文档根元素。   HTML 中,根元素始终是 html 元素。  可以使用 root 设置 页面的颜色
E : empty选择没有子元素的元素    选择没有子元素的每个   元素(包括文本节点) 找到为空的节点

     

:target 选择器

使用其选择器来对页面中的target元素(该元素的ID被当作页面中的超链接)指定的样式,该样式只在用户点击了页面中的超链接,并且跳转到target元素后起作用

    
    
div{width: 400px;height: 400px;font: 40px/400px "微软雅黑";background: #000;color: #fff;margin-bottom: 2px;display: none;text-align:center;}
div:target{display: block;}
<ahref="#div1">div1</a>
<ahref="#div2">div2</a>
<ahref="#div3">div3</a>
<divid="div1">div1</div>
<divid="div2">div2</div>
<divid="div3">div3</div>
:enabled 选择器是input标签可用的时候不用设置    而:disabled 选择器 是input不可用的时候 可以设置  :checked是当input被选中状态的时候
     
     
/*input:enabled{color: red;}*/
input:disabled{color: red;}
input:checked{width: 50px;height: 50px;} //当选中时 触发 让宽高发生变化
 
<inputtype="text"name=""id=""value="输入信息"disabled="disabled"/>
<inputtype="radio"/>

:empty 选择器

    当元素内容为空白的时候,使用其所定义的样式

    :not 选择器

    如果想对某个结构元素使用样式,但是又想排除这个个元素下面的某个子元素,让它不使用此样式,可以使用:not选择器。

    :root 选择器

    此选择器将绑定到页面的根元素中,所谓根元素,是指文档树中最顶层的元素,也就是<html>部分



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值