Web前端学习第七天·fighting_CSS样式的编写和使用(二)

属性选择器

  目前使用的并不多。新浪和京东有使用。

  可以根据元素的属性即属性值来选择元素。

  单个属性时的语法:*[属性名称]{样式}

  例如:(表示所有有href属性的标签)

1 <style type="text/css">
2      *[href]{
3          color:red;
4      }
5 </style>
1 <style type="text/css">
2      span[href]{
3          color:red;
4      }
5 </style>

  上面的代码中表示span标签中具有href属性的元素,给它的内容的颜色设置为红色。span中的href属性并没有实际意义。

  

  多个属性时的语法:*[属性名称][属性名称]{样式}

  例如:(表示类名为a的具有href和name属性的元素)

1 <style type="text/css">
2     .a[href][name]{
3         color:red;
4     }
5 </style>

  

  根据属性值匹配,要求完全匹配时的语法:*[属性名称="属性值"]{样式}

  例如:

1 <style type="text/css">
2     input[type="text"]{
3         color:red;
4     }
5 </style>

  上述的示例可以将文本框输入的字体颜色变为红色。

  

  根据属性值的单词匹配的语法:*[属性名称~="单词"]{样式}

  例如:(表示div中类名中包含单词“note”的元素,“war note”匹配,“warnote”不匹配)

1 <style type="text/css">
2     div[class~="note"]{
3         color:red;
4     }
5 </style>

  

  根据属性值包含的内容匹配的语法:*[属性名称*="内容"]{样式}

  例如:(表示div中类名中包含单词“note”的元素,“warnote”和“war note”都是匹配的)

1 <style type="text/css">
2     div[class*="note"]{
3         color:red;
4     }
5 </style>

  如果~=和*=同事存在,heml解析的顺序(与优先级相反)是怎样的呢?

    与它们出现在html中的位置有关,出现在前面的先执行,出现在后面的后执行,后面执行的属性值会覆盖前面执行的属性值,也就是说后执行的优先级高。

  

  以属性值开头的内容选择的语法:*[属性名称^="内容"]{样式}

  例如:(以“btn”开头的name属性值对应的元素被选中)

1 <style type="text/css">
2     div[name^="btn"]{
3         color:red;
4     }
5 </style>

  

  以属性值开头的单词的选择的语法:*[属性名称|="单词"]{样式}

  例如:(input标签中以“btn”单词开头的name属性值对应的元素被选中)

1 <style type="text/css">
2     input[name|="btn"]{
3         color:red;
4     }
5 </style>

  以属性值结尾的内容的选择的语法:*[属性名称$="内容"]{样式}

  例如:(button标签中的name属性值以“btn”结尾的标签被选中)

1 <style type="text/css">
2     input[type="button"][name$="btn"]{
3         color:red;
4     }
5 </style>

交集选择器(ID选择器的一种)

  由两个选择器组合而成,第一个是标签选择器,第二个是类选择器或者ID选择器,用于更加明确的选择某个元素。

  语法:标签.class(或者标签#id){样式}(注意:第一个必须是标签选择器,中间不能有空格)。

  html执行各类选择器的顺序(与优先级相反):

    浏览器默认的样式

    标签选择器

    类选择器

    交集选择器(标签.class)

    id选择器

    交集选择器(标签.id)

    行内样式

  使用频率并不高。

分组选择器

  由多个选择器通过逗号连接在一起,也称之为并集选择器。

  例如:body,div,dl,dt,dd,ul{margin:0;padding:0}(通常使用这类代码初始化CSS去掉页面的内边距和外边距)。

  具体使用可查看新浪网的源码。

  

考虑到网页加载的速度和流量,通常会对CSS样式文件和JS脚本文件做压缩处理(即去掉多余的空格等)。

伪类样式选择器

  超链接有很多的行为,比如:鼠标悬浮在上面,鼠标点击(点击后会发现超链接样式与其他的不同),鼠标离开后的样式,都可以通过伪类样式来实现。

  CSS3.0中增加了许多伪类选择器。主要介绍CSS1.0和CSS2.0中的伪类选择器。

  E:link  设置超链接a在未被访问前的样式,用在<a>标签中。(E表示选择器:类选择器、ID选择器、标签选择器,但是不能是元素选择器)

    语法:E:link{样式}

    例如:注释掉的代码段与该伪类选择器看似实现同样的功能,实际上是不同的。使用伪类选择器的样式只作用于超链接,也就是说如果<a>标签没有设置href的属性值,那么它就会呈现出默认样式而不会被设置为橘色。如果使用的是注释掉的代码(标签选择器),则所有的<a>标签不管是不是超链接,它们都会变成橘色。

  E:visited  设置超链接a在其链接地址被访问以后的样式。

    语法:E:visited{样式}

  E:hover  设置元素在其鼠标悬停的样式。

    语法:E:hover{样式}

  E:focus  设置对象在成为输入焦点(该对象的focus事件发生)时的样式。webkit(Google浏览器)内核浏览器会默认给:focus状态的元素加上outline(外边的线条)的样式。

    语法:E:focus{样式}

  E:first-child  应用该样式的第一个元素,而不是子元素。(也就是说html解析中第一个被用到的E标签,而不是指E标签中的第一个子元素)

    语法:E:first-child{样式}

例如:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title>伪类样式选择器</title>
 6     <meta charset="utf-8" />
 7     <style type="text/css">
 8         a:link {
 9             color: orange;
10         }
11         /*a {
12             color: orange;
13         }*/
14         a:visited {
15             color:gray;
16         }
17         a:hover {
18             color:red;
19             text-decoration:none;
20         }
21         input:focus {
22             /*实线边框,2px,红色*/
23             border:2px solid red;
24             /*谷歌浏览器默认加上外边框了,需要我们自己去掉外边框*/
25             outline:none;
26         }
27         /*是指第一个被使用的div标签,而不是指div标签的第一个子元素*/
28         div:first-child {
29             border:2px solid red;
30         }
31     </style>
32 </head>
33 <body>
34     <div>
35         <p>第一段</p>
36         <p>第二段</p>
37         <p>第三段</p>
38     </div>
39     <div>
40         <input/>
41         <span>第一个&lt;span&gt;标签</span>
42         <ul>
43             <li>
44                 <a href="http://www.baidu.com" title="百度">百度</a>
45                 <span>搜索网站</span>
46             </li>
47             <li>
48                 <a href="http://www.baidu.com" title="新浪">新浪</a>
49                 <span>门户网站</span>
50             </li>
51             <li>
52                 <a href="http://www.baidu.com" title="网易">网易</a>
53                 <span>门户网站</span>
54             </li>
55         </ul>
56         <span>第二个&lt;span&gt;标签</span>
57         <p>段落标签</p>
58     </div>
59 </body>
60 </html>

注意:伪类选择器中不能有空格

练习

  

1分组选择器

2属性选择器

3类选择器

4后代选择器

5分组选择器(后代选择器)

6分组选择器(后代选择器,伪类选择器)

7分组选择器

8子元素选择器(前面是一个后代选择器)

9伪类选择器(前面是后代选择器)

10后代选择器

  

时间: 2024-11-09 06:15:37

Web前端学习第七天·fighting_CSS样式的编写和使用(二)的相关文章

Web前端学习-第七课HTML篇

Q15:HTML5有哪些API?结合文字和代码说明主要API.(P683) requestAnimationFrame(): 早期动画循环(setInterval()): mozRequstAnimation:告诉浏览器某些JavaScript代码将要执行动画.接受一个参数,即在重回屏幕前调用的一个函数,负责改变下一次重绘时的DOM样式. webkitRequestAnimationFrame与meRequestAnimationFrame Page Visibility API Documen

Web前端学习第十三天&#183;fighting_HTML页面设计技巧总结(二)

行级元素之间的空白距离 如下图所示:(看似是一张图,实际上是三张图分别放在<a>标签中实现,如果没有经过特殊的处理,那么图与图之间就会留有空隙,影响页面布局的效果) 示例代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <t

WEB前端学习笔记 一

最近时间比较充裕,整理了一下学习过的笔记,此篇笔记包含了:Html.Css.JavaScript.Jquery.以及使用帝国CMS或是织梦CMS建立自己的网站,也许也会整理一下PHP的笔记,如果时间允许会整理完全. 虽然笔记是从最基础的开始,但是,并不包含电脑的基础知识,所以你必须已经掌握了一些电脑的基本操作,比如开关机,你的电脑用的是什么操作系统,至少也要会用word和wps吧.浏览器是做什么的,什么拷贝.复制.粘贴.知道最基本的文件类型,如,文本文件,视频文件,图片文件,什么是可执行文件,分

Web前端学习小建议

这里跟大家扯一扯学习前端的小方法,是我自己的学习方法,大家凑合看看,倒也不一定对~ 在写css前,其实html的结构要是比较合理的,这样写css也会比较顺手.在写一个网页之前,建议先琢磨几分钟,不要上来就写.多去看看别人是怎么写的,然后结合自己的项目,心中有一个大致规划.可以先把最外层轮廓写好,先不着急去写某一个具体的部分. 这里给大家分享一些css小技巧: 1.使用reset.css火狐和IE这两种不同的浏览器,在绘制CSS样式方法上截然不同.这种情况下,使用reset.css重置所有的基本样

WEB前端学习笔记 五

接web前端学习笔记第四篇,此篇为web学习笔记 五,在此感谢您的采集和转发,但请注明文章出自网知博学. 2.0.3  html标签的属性格式 现在我们知道了两个双标签分别是,标题标签:<h1> - <h6>.和段落标签:<p></p>还知道了一个换行的单标签:<br />,现在我们给<p></p>标签添加一个属性,来改变段落是右对齐,还是左对齐,还是居中. 如上图,<p>标签中的 align(中文就是排列的意

Web前端学习笔记(001)

....编号    ........类别    ............条目  ................明细....................时间 一.Web前端学习笔记                                    2016年6月15日10:38:53    /****************************************************************begin******************************

进击的Python【第十三章】:Web前端基础之HTML与CSS样式

进击的Python[第十四章]:Web前端基础之HTML与CSS样式 一.web框架的本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:utf-8 import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n")

好程序员web前端学习路线分享jQuery学习技巧

好程序员web前端学习路线分享jQuery学习技巧,jQuery在web前端学习中是一个必不可少的内容,很多小伙伴都在学习这阶段的时候遇到问题,今天我们就来聊一下jQuery,让我们一起来看一看吧! 1.关于页面元素的引用 通过jquery的$引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法. 2.jQuery对象与dom对象的转换 只有jquery对象才能使用jquery定义的方

好程序员web前端学习路线分享css模块化方案

好程序员web前端学习路线分享css模块化方案,这篇文章主要介绍了css模块化方案,css的模块化方案可能和js的一样多,下面简单介绍几种主要的模块方案,非常具有实用价值,需要的小伙伴可以参考下. css的模块化方案可能和js的一样多,下面简单介绍几种主要的模块方案.oocss面对对象的规则,主要的原则是两种:分离结构和外观,分离容器和内容.名词解释1.分离结构和外观:增加可重复的设计单元,同时去推进产品和ui对这方面的思考,比如下面的css使用时对象模式的命名和模块化规则.2.分离容器和内容: