通配选择器
可以与任何元素匹配,就像是一个通配符
/*每一个元素的字体都设置为红色*/* { color: red;}
元素选择器
指示文档元素的选择器。
/*为body的字体设置为红色*/body { color: red;}
分组
h1, h2, h3 { color: red;}
h1 { font: 18px Helvetica; color: purple; background: aqua;}
h1, h2, h3 { font: 18px Helvetica; color: purple; background: aqua;}
类选择器和ID选择器
独立于文档元素的方式来指定样式
.warning { font-weight: bold}/*包含warning元素的p标签会apply下面的style*/p.warning { font-weight: bold}/*同时包含urgent和warning类名的元素会apply下面的style,类名顺序不限*/.urgent.warning { font-weight: bold}/*同时包含urgent和warning类名的元素P会apply下面的style*/p.urgent.warning { font-weight: bold}
#content { margin: 0;}
ID选择器和类选择器的不同之处:
- 在一个HTML文档中,ID选择器会使用一次,而且仅一次。因此,如果有一个元素的id值为lead-para,那么该文档中所有其他元素的id值都不能是lead-para。(注: 浏览器通常并不检查HTML中ID的唯一性,这意味着如果你在HTML文档中设罝了多个有相同ID属性值的元素,就可能为这些元素应用相同的样式。)
- ID选择器不能结合使用,因为ID属性不允许有以空格分隔的词列表。
类选择器和ID选择器可能是区分大小写的,这取决于文档语言。HTML和 XHTML将类和ID值定义为区分大小写,所以类和ID值的大小写必须与文档中的相应值匹配。
属性选择器
如果希望选择有某个属性的元素,而不论该属性的值是什么,可以使用一个简单属性选择器。
/*选择有class属性(值不限)的所有h1元素,设置其字体颜色为红色 */h1[class] { color: red;}/*将同时有href和title属性的HTML超链接的文本置为粗体*/a[href][title] { font-weight: bold;}
/*设置具有href属性,并且属性值为http://www.w3.org/的a标签的font-size为200%*/a[href="http://www.w3.org/"] { font-size: 200%;}/*同时满足*/a[href="http://www.w3.org/"][title="W3C Home"]{ font-size: 200%;}
这种格式要求必须与属性值完全匹配
如果属性能接受词列表(词之间用空格分隔),可以根据其中的任意一个词进行选择。
<span class="barren rocky">Mercury</planet><span class="cloudy barren">Venus</planet><span class="life-bearing cloudy">Earth</planet>/*为了把class属性中有barren的所有元素变为斜体,可以写作:*/span[class~="barren"] { font-style: italic;}
p.warning和p[class~="warning"]应用到HTML文档时是等价的
类型 | 描述 |
[foo^="bar"] | 选择foo属性值以"bar"开头的所有元素 |
[foo$="bar"] | 选择foo属性值以"bar"结尾的所有元素 |
[foo~="bar"] | 选择foo属性值包含"bar"的所有元素(属性的值根据空格分隔,其中任意一个词能完全匹配bar) |
[foo*="bar"] | 选择foo属性值包含"bar"的所有元素(只要包含就可以了,任意位置都可以,不必是一个完整的单词) |
用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
<h1 id="Hello">Hello!</h1><p lang="en-us">Greetings!</p><div lang="en-au">G’day!</div><p lang="fr">Bonjour!</p><h4 id="Jrooana">Jrooana!</h4>/*上述标签前三个会变成红色,后两个还是黑色*/*[lang|="en"] { color: red;}
后代选择器
h1 em { color: gray;}/*blockquote中包含的所有b(粗体)元素的文本颜色为灰色,另外正常段落中的所有粗体文本也为灰色*/blockquote b, p b { color: gray;}
后代选择器中,元素之间的层次间隔可以是无限的。
子元素选择器
h1>strong { color: red;}
子元素选择器限制为只匹配树种直接相连的元素。
可以在同一个选择器中结合使用后代选择器和子选择器。
/*选择作为一个td元素子元素的所有p元素,这个td元素本身从table元素继承,该table元素有一个包含summary的class属性*/table.suitimary td > p { color: red;}
相邻兄弟选择器
和子结合符一样,相邻兄弟结合符旁边可以有空白符。
/*去除紧接在一个h1元素后出现的段落的上边距*/h1+p { margin-top: 0;}
需要注意的是:
<div><ol><li>List item 1</li><li>List item 1</li><li>List item 1</li></ol> This is some text that is part of the 'div'.<ul><li>A list item</li><li>Another list item</li><li>Yet another list item</li></ul></div>/*尽管两个列表间多了一行文本,不过还是可以用选择器ol+ul来匹配第二个列表。*/ol+ul { color: red;}
伪类和伪元素选择器
利用伪类和伪元素选择器,可以为文档中不一定具有存在的结构指定样式,或者为某些元素(甚至是文档本身)的状态所指示的幻像类指定样式。会根据另外某种条件而非文档结构向文档中的某些部分应用样式,而且无法通过研究文档的标记准确地推断出采用何种方式应用样式。
伪类名 | 描述 |
:link |
指示作为超链接(即有一个href属性)并指向一个未访问地址的所有锚。 注意,有些浏览器可能会不正确地将:link解释为指向任何超链接,包括已访问和未访问的超链接 |
:visited | 指示作为已访问地址超链接的所有锚 |
:focus | 指示当前拥有输入焦点的元素,也就是说,可以接受键盘输入或者能以某种方式激活的元素 |
:hover |
指示鼠标指针停留在哪个元素上。 例如,鼠标指针可能停留在一个超链接上,:hover就会指示这个超链接 |
:active |
指示被用户输入激活的元素。 例如,鼠标指针停留在一个超链接上时,如果用户点击鼠标,就会激活这个超链接,将指示这个超链接 |
a { color: red;}a:link { color: red;}/*两者是不同的,a:link指示的是一个有href属性的,并且未访问过的所有a节点a会应用到所有a标签*/
a:link { color: blue;}a:visited { color: red;}a.external:link, a.external:visited { color: maroon;}
伪类的顺序很重要,通常建议为link-visited-focus-hover-active。
:link和:visited是静态的——第一次显示之后,它们一般不会在改变文档的样式。
:focus, :hover, :active是动态伪类。动态伪类可以应用到任何元素。
input:focus { background-color: silver; font-weight: bold;}
/*作为某元素(可以是任意元素)的第一个子元素的所有P元素设置为粗体。最常见的错误是认为p:first-child之类的选择器会选择p元素的第一个子元素。*/p:first-child { font-weight: bold;}
从对应的模式来讲,:lang()伪类就像是|=属性选择器。
*:lang(fr) { font-style: italic;}
伪选择器和属性选择器之间的主要差别在于语言信息可以从很多来源得到,而且其中一些可能在元素之外。CSS2.1指出:
在HTML中,语言由lang属性和META元素的组合来确定,还可能包括协议提供的信息,如HTTP首部。XML使用一个xml:lang属性,另外可能还有其他文档语言特定的方法来确定语言。
因此,伪类比属性选择器稍微健壮一些。
结合伪类:
/*鼠标指针停留在未访问链接上时,可以让这些链接变成红色,而鼠标指针停留在已访问链接上时,链接变成紫红色。*/a:link:hover { color: red;}a:visited:hover { color: maroon;}
用哪种顺序指定并不重要,写成a:hover:link会得到与a:link:hover一样的效果。
就像伪类为锚指定幻象类一样,伪元素能够在文档中插入假想的元素,从而得到某种效果。CSS2.1中定义了4个伪元素:设置首字母样式、设置第一行样式、设置之前和之后的样式。
用于设置一个块级元素首字母的样式,而且仅对该首字母设置样式。
/*让每个h2中第一个字母的大小是标题中其余字母大小的2倍*/h2:first-letter { font-size: 200%;}
这个规则会导致用户代理(浏览器)对一个假想的元素作出响应,这个假想元素包含每个h2中的第一个字母。可能如下所示:
T his is an h2 element
:first-letter样式只应用到上例所示假想元素的内容。这个
:first-line可以用来影响元素中第一个文本行。(第一行是指显示区域的第一行,所以浏览器窗口大小不同,第一行所代表的字符数量也是不同的。)
/*应用于每一段所显示的第一行文本。*/p:first-line { color: red;}
:first-letter, :first-line允许设置的CSS属性:
:first-letter | :first-line |
所有的font属性 | 所有的font属性 |
color | color |
所有background属性 | 所有background属性 |
所有margin属性 | |
所有padding属性 | |
所有border属性 | |
text-decoration | text-decoration |
vertical-align | vertical-align |
text-transform | text-transform |
line-height | line-height |
float | |
letter-spacing | letter-spacing |
word-spacing |
h2:before { content: "before"; color: red;}h2:after { content: "after"; color: red;}
所有伪元素都必须放在出现该伪元素的选择器的最后面,如果写成p: first-line em就是不合法的,因为伪元素在选择器主体前面出现。

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

本文讨论了视口元标签,这对于移动设备上的响应式Web设计至关重要。它解释了如何正确使用确保最佳的内容缩放和用户交互,而滥用可能会导致设计和可访问性问题。

本文解释了HTML5&lt; time&gt;语义日期/时间表示的元素。 它强调了DateTime属性对机器可读性(ISO 8601格式)的重要性,并在人类可读文本旁边,增强Accessibilit

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

本文讨论了&lt; iframe&gt;将外部内容嵌入网页,其常见用途,安全风险以及诸如对象标签和API等替代方案的目的。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),