CSS是Cascading Style Sheets的简称,中文称为层叠样式表,用来控制网页数据的表现,可以使网页的表现与数据内容分离
行内式实在标记的style属性中设定CSS样式,这种方式没有体现出CSS的优势,不推荐使用
<div style="color:red; background-color: beige">hello yuan</div>
嵌入式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中。格式如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> p{ color: rebeccapurple; font-size: 40px } a{ text-decoration: dashed; } </style> </head> <body> <div>hello div</div> <p>hello p</p> <a href="">点我</a> </body> </html>
将一个.css文件引入到HTML文件中,属于html语法,在页面渲染完css代码之后再展示HTML文件,推荐使用
<head> <link href="test1.css" rel="stylesheet"> <link href="mystyle.css" rel="stylesheet" type="text/css"/> </head> // rel="stylesheet" 代表引入的文件是一个css类型文件 // type="text/css" 可以不写
将一个独立的.css文件引入HTML文件中,导入式使用CSS规则引入外部CSS文件,<style>标记也是写在<head>标记中,使用的语法如下:
<head> <style> @import ‘test1.css‘; // 此处要注意.css文件的路径 </style> </head>
注意:
导入式会在整个网页装载完后再装载CSS文件,因此这就导致了一个问题,如果网页比较大则会儿出现先显示无样式的页面,闪烁一下之后,再出现网页的样式,这是导入式固有的一个缺陷。使用链接式时与导入式不同的是它会以网页文件主体装载前装载CSS文件,因此显示出来的网页从一开始就是带样式的效果的,它不会象导入式那样先显示无样式的网页,然后再显示有样式的网页,这是链接式的优点。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--<style>--> <!--p{--> <!--color: rebeccapurple;--> <!--font-size: 40px--> <!--}--> <!--a{--> <!--text-decoration: dashed;--> <!--}--> <!--</style>--> <!--链接式--> <!--<link href="test1.css" rel="stylesheet">--> <!--导入式--> <style> @import ‘test1.css‘; </style> </head> <body> <!--第一种引入方式--> <!--<div style="color:red; background-color: beige">hello yuan</div>--> <div>hello div</div> <p>hello p</p> <a href="">点我</a> </body> </html>
p{ color: gold; font-size: 20px }
“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素
* : 通用元素选择器,匹配任何元素 * { margin:0; padding:0; } E : 标签选择器,匹配所有使用E标签的元素 p { color:green; } .info 和 E.info:class选择器,匹配所有class属性中包含info的元素 .info { background:red; } p.info { background:blue; } #info 和 E#info:id选择器,匹配所有id属性等于info的元素 #info { background:red; } p#info { background:green; }
E,F 多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔 div,p { color:red; } E F 后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔 li a { font-weight:bold;} E > F 子元素选择器,匹配所有E元素的子元素F div > p { color:green; } E + F 毗邻元素选择器,匹配所有紧随E元素之后的同级元素F div + p { color:yellow; }
注意嵌套规则:
1、块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。
2、有几个特殊的块级元素只能包含内联元素,不能包含块级元素。如h1,h2,h3,h4,h5,h6,p,dt
<p> <div>p中的div</div> </p>
结果为:
3、li内可以包含div
4、块级元素与块级元素并列、内联元素与内联元素并列
E[att] 匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略,比如"[cheacked]",以下同) p[title]{color:red;} E[att=val] 匹配所有att属性等于"val"的E元素 div[class=”error”]{color:green;} E[att~=val] 匹配所有att属性(包括具有多个空格分隔的值)其中一个值等于"val"的E元素 td[class~=”name”]{color:blue;} E[attr^=val] 匹配属性值以指定值开头的每个元素 div[class^="test"]{background:yellow;} E[attr$=val] 匹配属性值以指定值结尾的每个元素 div[class$="test"]{background:brown;} E[attr*=val] 匹配属性值中包含指定值的每个元素 div[class*="test"]{background:gray;}
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /**{*/ /*color:red;*/ /*}*/ #littleP{ background-color: blue; } .cuihua{ color:aquamarine; } div.cuihua{ color: brown; } /*注意:div和.之间不能有空格*/ #littleP,div.cuihua{ color:chartreuse; } .div1 .P{ color: red; } .div1>p{ color: blue; } .div1 div div{ color: orange; } .div1 + div{ background-color: darkcyan; } p div{ color: red; } [alex]{ color: red; } p[alex=‘dasb‘]{ font-family: "Times New Roman"; font-size: 30px; } [alex~=‘LI‘]{ color:palevioletred; } [alex^=‘s‘]{ color:teal; } [alex*=‘b‘]{ color:slateblue; } </style> </head> <body> hello body <div>hello div</div> <p id="littleP">pppp</p> <p id="littlePP">ppp</p> <p class="cuihua">pp</p> <p class="cuihua">p</p> <div class="cuihua">div</div> <a herf="">aaa</a> <div>hello div before</div> <div class="div1"> <div> <a href="">a</a> <p class="P">ppp</p> <div>div3</div> </div> <p>p ele</p> <div class="div2">div2</div> </div> <div>after div1</div> <div>after div11</div> <p>after div1 p</p> <!--p标签不能包含块级标签--> <p> <div>p中的div</div> </p> <!--属性选择器--> <div>hello1</div> <div alex="sb LI">alex</div> <div alex="dasb">hello1</div> <p alex="dasb">hello2</p> <div class="div1 div2">hello1</div> </body> </html>
原文:https://www.cnblogs.com/eryuehong/p/12505492.html