更多详细代码信息,请点击这里!!
CSS介绍
<!-- CSS(Cascading Style Sheet,层叠样式表) 定义:如何显示HTML元素; 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。 -->
CSS的引入方法
1、行内样式:行内式是在标记的style属性中设定CSS样式。不推荐大规模使用。
<p style="color: red">Hello world.</p>
2、内部样式:嵌入式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中。格式如下:
<head> <meta charset="UTF-8"> <title>Title</title> <style> p{ background-color: #2b99ff; } </style> </head>
3、外部样式:外部样式就是将css写在一个单独的文件中,然后在页面进行引入即可。推荐使用此方式。
<link href="mystyle.css" rel="stylesheet" type="text/css"/>
CSS语法
<!-- 每个CSS样式由两部分组成:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。 -->
选择器{样式1;样式2;....} p{ color: red; font-size:100px; }
CSS注释
<!-- 注释内容 --> --->这是在HTML里的注释(.html文件) /*注释内容*/ --->这是在CSS里的注释(.css文件)
CSS查找标签的方式(选择器)
1、基本选择器
1.1、标签选择器 标签名{样式1; 样式2;...} 适用于 批量的\统一\默认的样式
1.2、ID选择器 #选择器名{样式1; 样式2;...} 适用于 给特定标签设置特定样式
1.3、类选择器 .选择器名{样式1; 样式2;...} 适用于 给某一些标签设置相同的样式
2、通用选择器
2.1 *{样式1; 样式2;...}
3、组合型选择器
3.1、后代选择器 -- 只要是父级内的对应的标签,都根据设置的样式进行渲染;
3.2、儿子选择器 -- 只要是父级内的子级对应的标签,都根据设置的样式进行渲染,子级以下的不受影响 -- 关键符号:>
3.3、毗邻选择器 -- 只要是同级相邻以下的一个元素,都根据设置的样式进行渲染,以上不渲染 -- 关键符号:+
3.4、弟弟选择器 -- 只要是同级以下的所有元素,都根据设置的样式进行渲染,以上不渲染 -- 关键字:~
4、属性选择器
4.1、用于选取带有指定属性的元素;
4.2、用于选取带有指定属性和值的元素;
1.基本选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS查找标签的方式</title> <style> p{ color: red; font-size: 20PX;}/*这是标签选择器*/ #p1{ color:green; font-size: 30px;} /*这是ID选择器*/ .p2{color: blue; font-size:40px;} /*这是类选择器*/ </style> </head> <body> <p>这是标签选择器</p><!--所有没制定样式的P都会应用上面定义的样式--> <p>这还是标签选择器</p> <p id="p1">这是ID选择器</p> <!-- 创建唯一id并制定一个样式--> <p class="p2">这是类选择器</p><!--应用类选择器,可以重复引用--> <p class="p2">这还是类选择器</p> </body> </html>
View Code
2、通用选择器
/*通用选择器 -- 常用在修改默认值,如统一字体大小,背景设置等*/ *{ background: black; }
3、组合型选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>组合选择器</title> <link rel="stylesheet" href="test.css"> </head> <body> <div> <p>这是后代选择器_子代</p> <div> <p>这是后代选择器_孙代</p> </div> </div> <div> <a href="#">这是儿子选择器_子代</a> <hr> <span> <a href="#">这是儿子选择器_孙代</a> </span> </div> <hr> <ul> <li>毗邻选择器只会选择下方的元素,不会选择上方的元素</li> </ul> <div> 毗邻选择器 </div> <ul> <li>这是毗邻选择器</li> <li>这是毗邻选择器</li> </ul> <ul> <li>这是毗邻选择器,只选择最近的</li> <li>这是毗邻选择器</li> </ul> <hr> <a href="#">弟弟选择器,在样式上面不生效</a> <p></p> <span> 弟弟选择器 </span> <p></p> <a href="#">这是弟弟选择器,只要在样式下面的都生效</a> <p></p> <a href="#">这是弟弟选择器</a> </body> </html>
HTML内容
/*后代选择器*/ div p{ color:red; font-size:20px; } /*儿子选择器*/ div>a{ color:green; font-size:30px; } /*毗邻选择器*/ div+ul{ background: blue; } /*弟弟选择器*/ span~a{ color: yellow; font-size:50px; }
CSS样式
4、属性选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>属性选择器</title> <link rel="stylesheet" href="test.css"> </head> <body> <p>这是属性选择器</p> <p test="haha">这是属性选择器</p> <p test="xixi">这是属性选择器</p> <p test="heihei">这是属性选择器</p> </body> </html>
HTML内容
/*属性选择器*/ /*用于选取带有指定属性的元素。*/ [test]{ color: red; font-size:20px; } /*用于选取带有指定属性和值的元素。*/ [test="heihei"]{ color: yellow; font-size:30px; }
CSS内容
/*找到所有title属性以hello开头的元素*/ [title^="hello"] { color: red; } /*找到所有title属性以hello结尾的元素*/ [title$="hello"] { color: yellow; } /*找到所有title属性中包含(字符串包含)hello的元素*/ [title*="hello"] { color: red; } /*找到所有title属性(有多个值或值以空格分割)中有一个值为hello的元素:*/ [title~="hello"] { color: green; }
不常用的属性选择器
分组和嵌套
分组:当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。
div, p,a { color: red; }
嵌套:多种选择器可以混合起来使用,比如:.c1类内部所有p标签设置字体颜色为红色。
.c1 p { color: red; }
选择器的优先级
CSS继承
继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个body定义了的字体颜色值也会应用到段落的文本中。
body { color: red; }
此时页面上所有标签都会继承body的字体颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0。
我们只要给对应的标签设置字体颜色就可覆盖掉它继承的样式。
p { color: green; }
此外,继承是CSS重要的一部分,我们甚至不用去考虑它为什么能够这样,但CSS继承也是有限制的。有一些属性不能被继承,如:border, margin, padding, background等。
伪类选择器
/* 未访问的链接 */ a:link { color: #FF0000 } /* 已访问的链接 */ a:visited { color: #00FF00 } /* 鼠标移动到链接上 */ a:hover { color: #FF00FF } /* 选定的链接 */ a:active { color: #0000FF } /*input输入框获取焦点时样式*/ input:focus { outline: none; background-color: #eee; }
伪元素选择器
first-letter
常用的给首字母设置特殊样式: p:first-letter { font-size: 48px; color: red; }
before
/*在每个<p>元素之前插入内容*/ p:before { content:"*"; color:red; }
after
/*在每个<p>元素之后插入内容*/ p:after { content:"[?]"; color:blue; }
before和after多用于清除浮动。
选择器的优先级
css选择器优先级:标签选择器 < class选择器 < id选择器 < 内联样式style
我们上面学了很多的选择器,也就是说在一个HTML页面中有很多种方式找到一个元素并且为其设置样式,那浏览器根据什么来决定应该应用哪个样式呢?
其实是按照不同选择器的权重来决定的,具体的选择器权重计算方式如下图:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css选择器优先级</title> <style> h3{color: #000; background: red; } .one{ background: yellow; } #two{ background: blue; } </style> </head> <body> <h3>花开花落花无悔,缘来缘去缘如水。</h3> <h3 class="one">花开花落花无悔,缘来缘去缘如水。</h3> <h3 clsss="one" id="two">花开花落花无悔,缘来缘去缘如水。</h3> <h3 class="one" id="two" style="background:green">花开花落花无悔,缘来缘去缘如水。</h3 </body> </html>
HTML内容