CSS基本语法和引入方式
CSS介绍
为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此而诞生,CSS是 Cascading Style Sheets 的首字母缩写,意思是层叠样式表。有了CSS,html中大部分表现样式的标签就废弃不用了,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁。
css基本语法
css的定义方法是:
选择器 { 属性:值; 属性:值; 属性:值;}
选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性,每个属性有一个或多个值。
代码示例:
div{ width:100px; height:100px; color:red }
CSS引入方法
css页面引入方法:
- 外联式:通过link标签,链接到外部样式表到页面中。
- 嵌入式/内嵌式:通过style标签,在网页上创建嵌入的样式表。
- 内联式:通过标签的style属性,在标签上直接写样式。
style标签,放在head标签里面,在style里面写样式;
在网站首页时建议使用,有助于性能优化,提升用户体验;
注意,嵌入式用的是style标签,而内联式用的是style属性;
/* css引入方法1 */ <link rel="stylesheet" type="text/css" href="css/main.css"> /* css引入方法2 */ <head> <style type="text/css"> div{ width:100px; height:100px; color:red } ...... </style> </head> /* css引入方法3 */ <div style="100px; height:100px; color:red ">......</div>
css引入方式示例
示例1:引入css文件
/*01.引入css文件.html*/ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS样式引入</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 第一种插入样式的方式-外联式 --> <link rel="stylesheet" href="./css/main.css"> </head> <body> <div>这是一个div标签</div> </body> </html> /*main.css*/ div { /*这里是css的注释*/ font-size: 26px; color: blue; }
示例2:嵌入式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>内嵌式引入css样式</title> <!-- 第二种插入样式的方式-嵌入式 --> <style> div { font-size: 30px; color: red; } </style> </head> <body> <div>这是一个div标签</div> </body> </html>
示例3:直接在标签中写样式示例-内联式/行内样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>内嵌式引入css样式</title> </head> <body> <!-- 第三种插入样式的方式-内联式 --> <div style="font-size: 20px;color: yellow">这是一个div标签</div> </body> </html>
三种方式总结:
推荐使用外联式,可以使用嵌入式,不太推荐使用内联式;
外联式嵌入式 需要用到选择器,内联式不需要使用选择器,因为它直接在选择器里面;
外联式任何情况都能使用,嵌入式在网站首页优化可以使用;
嵌入式用的是style标签,而内联式内联式用的是style属性;
首页优化用嵌入式,其他用外联式;
CSS文本设置
常用的应用文本的css样式:
- color 设置文字的颜色,如: color:red;
- font-size 设置文字的大小,如:font-size:12px;
- font-family 设置文字的字体,如:font-family:'微软雅黑';
- font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜;但一般是用来设置不倾斜的。
- font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗。
- font 同时设置文字的几个属性,写的顺序有兼容问题,建议按照如下顺序写: font:是否加粗 字号/行高 字体;如: font:normal 12px/36px '微软雅黑';
- line-height 设置文字的行高,如:line-height:24px;
- text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉,常用于将a标签的下划线去掉;
- text-indent 设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px;一个汉字占20px,两个汉字40px。
- text-align 设置文字水平对齐方式,如text-align:center 设置文字水平居中;span,a标签等只让文字撑开的,暂时不能居中,p,div占一行的,能居中。
01:文本样式应用实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文本常用样式</title> <style> div { font-size: 22px; color: red; /*font-family: "微软雅黑";*/ /*可以写中文,但建议写英文,避免可能出现的乱码*/ font-family: "Microsoft YaHei UI"; font-style: italic; font-weight: bold; line-height: 20px; } </style> </head> <body> <div> 常用的应用文本的css样式: color 设置文字的颜色,如: color:red; font-size 设置文字的大小,如:font-size:12px; font-family 设置文字的字体,如:font-family:'微软雅黑'; font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜 font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗 </div> </body> </html>
02:常用的文本应用css样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>文本常用样式</title> <style> div { font-size: 22px; color: red; /*font-family: "微软雅黑";*/ /*可以写中文,但建议写英文,避免可能出现的乱码*/ font-family: "Microsoft YaHei UI"; font-style: italic; font-weight: bold; line-height: 30px; text-decoration: underline; text-indent: 40px; } a { text-decoration: none; } p { text-align: center; } </style> </head> <body> <div> 常用的应用文本的css样式: color 设置文字的颜色,如: color:red; font-size 设置文字的大小,如:font-size:12px; font-family 设置文字的字体,如:font-family:'微软雅黑'; font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜 font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗 </div> <p>这是一个span标签</p> <a href="http://www.baidu.com">百度一下,你就知道</a> </body> </html>
CSS颜色表示法
css颜色值主要有三种表示方法:
- 颜色名表示,比如:red 红色,gold 金色。
- rgb表示,比如:rgb(255,0,0),表示红色。
- 16进制数值表示,比如:#ff0000 表示红色,这种可以简写成 #f00。
css颜色表示法示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css颜色表示法</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> div { font-size: 30px; /*以下三种方法,效果一致*/ /*color: green;*/ /*color: rgba(0,255,0);*/ color: #00ff00; } </style> </head> <body> <div>这是一个div标签</div> </body> </html>
CSS选择器
如果对同一内容区添加样式,下面的样式会覆盖上面的样式;
在css中,#代表id选择器,.代表类选择器;
常用的选择器有如下几种:
1.标签选择器
标签选择器,此种选择器影响范围大,建议尽量应用在层级选择器中。
标签选择器举例: *{margin:0;padding:0} div{color:red} <div>....</div> <!-- 对应以上两条样式 --> <div class="box">....</div> <!-- 对应以上两条样式 -->
01标签选择器示例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* 针对所有的标签选择器,慎用 */ * { color: red; } /* 仅针对所有的div标签选择器 */ div { font-size: 30px; } </style> </head> <body> <div>第一个div标签</div> <div>第二个div标签</div> <div>第三个div标签</div> </body> </html>
2.id选择器
通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id名一般给程序使用,所以不推荐使用id作为选择器。
id选择器举例: #box{color:red} <div id="box">....</div> <!-- 对应以上一条样式,其它元素不允许应用此样式 -->
02id选择器示例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>id选择器</title> <style> div { font-size: 30px; color: red; } /* id选择器,用#作为id选择器的标识 */ /* 如果对同一内容区添加样式,下面的样式会覆盖上面的样式 */ #d1 { color: gray; } </style> </head> <body> <div id="d1">第一个div标签</div> <div>第二个div标签</div> <div>第三个div标签</div> </body> </html>
3.类选择器
通过类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。
类选择器举例: .red{color:red} .big{font-size:20px} .mt10{margin-top:10px} <div class="red">....</div> <h1 class="red big mt10">....</h1> <p class="red mt10">....</p>
03类选择器示例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>类选择器</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> .d1 { font-size: 30px; color: deeppink; } .d2 { font-style: italic; } .d3 { color: green; } </style> </head> <body> <div class="d1">这是第一个div标签</div> <div class="d1 d2">这是第二个div标签</div> <!-- 多个类可以作用于一个元素 --> <!--如果一个元素上有多个类,多个类之间有重复的样式,那么在外联式/嵌入式中后定义的类选择器的样式会覆盖先定义的;--> <p class="d3 d1">这是一个p标签</p> <p>下面是没有添加类选择器的标签</p> <div>这是第一个div标签</div> <div>这是第二个div标签</div> <p>这是一个p标签</p> </body> </html>
如果一个元素上有多个类,多个类之间有重复的样式,那么在外联式/嵌入式中后定义的类选择器的样式会覆盖先定义的;而与类选择器的先后顺序无关。
4.层级选择器
主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突。
层级选择器可以包含多层,比如box中嵌套box,二层box下再嵌套span;但一般而言,最好不要超过四层。
层级选择器之间用空格隔开;
层级选择器举例: .box span{color:red} .box .red{color:pink} .red{color:red} <div class="box"> <span>....</span> <a href="#" class="red">....</a> </div> <h3 class="red">....</h3>
04层级选择器示例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>层级选择器</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> .d1 { font-size: 20px; line-height: 30px; text-indent: 40px; } .d1 span { color: red; } .d1 em { font-style: normal; color: gray; text-decoration: underline; } </style> </head> <body> <div class="d1"> <span>大千世界,无奇不有。</span> 天地中央,有个曾用一剑劈出天河瀑布的读书人,<em>人间最得意</em>。 东海崖畔,有个不愿飞升枯坐山巅的无名道人,只愿清风拂面。 西方净土,有个喜欢给人说故事的老和尚,豢养有九条天龙。 蛮荒南疆,有个目盲画师,驱使与山岳等高的金甲傀儡,搬动十万大山,铺就一幅锦绣图画。 一个生长在北方的贫寒少年,当他有一天看到头顶竟有成千上万的御剑仙人,如同蝗群过境。他就想去亲眼去看一看,说书先生所说的那位读书人,东海的滔天大潮、西方的黄沙万里和南荒的巍峨大山。 于是,终有一日,少年挎起木剑,一路向南。 </div> <hr /> <div class="d2"> <span>大千世界,无奇不有。</span> 天地中央,有个曾用一剑劈出天河瀑布的读书人,人间最得意。 东海崖畔,有个不愿飞升枯坐山巅的无名道人,只愿清风拂面。 西方净土,有个喜欢给人说故事的老和尚,豢养有九条天龙。 蛮荒南疆,有个目盲画师,驱使与山岳等高的金甲傀儡,搬动十万大山,铺就一幅锦绣图画。 一个生长在北方的贫寒少年,当他有一天看到头顶竟有成千上万的御剑仙人,如同蝗群过境。他就想去亲眼去看一看,说书先生所说的那位读书人,东海的滔天大潮、西方的黄沙万里和南荒的巍峨大山。 于是,终有一日,少年挎起木剑,一路向南。 </div> </body> </html>
5.组选择器
多个选择器,如果有同样的样式设置,可以使用组选择器,抽离重复样式。组选择器之间用逗号分隔开。
组选择器举例: .box1,.box2,.box3{100px;height:100px} .box1{background:red} .box2{background:pink} .box2{background:gold} <div class="box1">....</div> <div class="box2">....</div> <div class="box3">....</div>
05组选择器示例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>组选择器</title> <style> /* 使用组选择器抽离重复样式 */ .d1, .d2, .d3 { font-size: 20px; text-indent: 40px; } .d1 { /*font-size: 20px;*/ /*text-indent: 40px;*/ color: red; } .d2 { /*font-size: 20px;*/ /*text-indent: 40px;*/ color: blue; } .d3 { /*font-size: 20px;*/ /*text-indent: 40px;*/ color: gray; } </style> </head> <body> <div class="d1">第一个div标签</div> <div class="d2">第一个div标签</div> <div class="d3">第一个div标签</div> </body> </html>
6.伪类及伪元素选择器
常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们可以通过样式在元素中插入内容。
常用于a标签。
伪类选择器举例 .box1:hover{color:red} .box2:before{content:'行首文字';} .box3:after{content:'行尾文字';} <div class="box1">....</div> <div class="box2">....</div> <div class="box3">....</div>
06伪类和伪元素选择器示例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>伪类和伪元素选择器</title> <style> .link { font-size: 30px; text-decoration: none; color: deeppink; } /* 使用伪类选择器 在鼠标悬浮链接后变色加粗 */ .link:hover { color: aqua; font-weight: bold; } .d1, .d2, .d3 { font-size: 20px; } /*使用伪元素选择器,给文字前后添加内容*/ .d1:before { content: "***"; color: red; } .d3:after { content: "???"; color: blue; } </style> </head> <body> <a href="http://www.baidu.com" class="link">百度一下,你就知道</a> <div class="d1">这是第一个div标签</div> <div class="d2">这是第二个div标签</div> <div class="d3">这是第三个div标签</div> </body> </html>
注意:
- id选择器基本不用,用得最多的是类选择器。
- 如果一个元素上有多个类,多个类之间有重复的样式,那么在外联式/嵌入式中后定义的类选择器的样式会覆盖先定义的;
- id选择器的权重要高于类选择器的权重,即id和类的样式同时作用于一个内容区,会优先使用id的样式;