从零开始学习html(七)CSS样式基本知识
一、内联式css样式,直接写在现有的HTML标签中
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>认识html标签</title> 6 <style type="text/css"> 7 span{ 8 color:red; 9 } 10 </style> 11 </head> 12 <body> 13 <p>慕课网,<span>超酷的互联网</span>、IT技术免费学习平台,创新的网络一站式学习、实践体验;<span>服务及时贴心</span>,内容专业、<span>有趣易学</span>。专注服务互联网工程师快速成为技术高手!</p> 14 </body> 15 </html>
CSS样式可以写在哪些地方呢?
从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式、嵌入式和外部式三种。
内联式
css样式表就是把css代码直接写在现有的HTML标签中,如下面代码:
<p style="color:red">这里文字是红色。</p>
注意要写在元素的开始标签里,下面这种写法是错误的:
<p>这里文字是红色。</p style="color:red">
并且css样式代码要写在style=""双引号中,如果有多条css样式代码设置可以写在一起,中间用分号隔开。如下代码:
<p style="color:red;
font-size:12px">这里文字是红色。</p>
试一试:使用内联式css样式为"超酷的互联网"这几个字设置字体颜色为蓝色
在编辑器中13
行中的第一个span标签中写入代码:
style="color:blue"
你写是否写入的代码像下面的样子:
<span style="color:blue">超酷的互联网</span>
二、嵌入式css样式,写在当前的文件中
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>嵌入式css样式</title> 6 <style type="text/css"> 7 span{ 8 color:red; 9 } 10 </style> 11 </head> 12 <body> 13 <p>慕课网,<span>超酷的互联网</span>、IT技术免费学习平台,创新的网络一站式学习、实践体验;<span>服务及时贴心</span>,内容专业、<span>有趣易学</span>。专注服务互联网工程师快速成为技术高手!</p> 14 </body> 15 </html>
现在有一任务,把编辑器中的“超酷的互联网”、“服务及时贴心”、“有趣易学”这三个短词文字字号修改为18px。
如果用我们学习的内联式css样式的方法进行设置将是一件很头疼的事情(为每一个<span>标签加入sytle="font-size:18px"语句)。
嵌入式css样式,就是可以把css样式代码写在<style type="text/css"></style>标签之间。如下面代码实现把三个<span>标签中的文字设置为红色:
<style type="text/css"> span{ color:red; } </style>
嵌入式css样式必须写在<style></style>之间,并且一般情况下嵌入式css样式写在<head></head>之间。如编辑器中的代码。
来试一试:用嵌入式css样式设置字体颜色
在代码编辑器中的段落中,有三个<span>标签,请把这三个<span>标签中的文字颜色都设置为蓝色
你是否输入像下面样式的代码:
span
{color:blue;
}
三、外部式css样式,写在单独的一个文件中
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>嵌入式css样式</title> 6 <link href="style.css" rel="stylesheet" type="text/css" /> 7 </head> 8 <body> 9 <p>慕课网,<span>超酷的互联网</span>、IT技术免费学习平台,创新的网络一站式学习、实践体验;<span>服务及时贴心</span>,内容专业、<span>有趣易学</span>。专注服务互联网工程师快速成为技术高手!</p> 10 </body> 11 </html>
1 span{ 2 color:red; 3 4 }
外部式css样式(也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css
”为扩展名,
在<head>内(不是在<style>标签内)使用<link>标签将css样式文件链接到HTML文件内,如下面代码:
<link href="base.css" rel="stylesheet" type="text/css" />
注意:
1、css样式文件名称以有意义的英文字母命名,如 main.css。
2、rel="stylesheet" type="text/css" 是固定写法不可修改。
3、<link>标签位置一般写在<head>标签之内。
来试一试:用外部式css样式设置文字字号
1、单击打开style.css
文件(在html文件的下面),在第3
行输入代码font-size:20px;
观察结果窗口中文字大小的变化。
style.css文件中的代码是不是跟下面的一样:
span
{color:red;
font-size:20px;
}
内联:<span style="color:red;font-size:10px;" >text</span>
嵌入:<style type="text/css">span{color:red;font-size:10px;}</style>
外部:<link href="style.css" rel="stylesheet" type="text/css">
rel属性用于定义链接的文件和HTML文档之间的关系。StyleSheet,的意思就是样式调用,
内联式适用情况:局部特殊化
嵌入式适用情况:统一标签样式格式
外联式适用情况:方便代码重用和管理
rel是relationship的英文缩写
stylesheet中style是样式的意思,sheet是表格之意,总起来是样式表的意思
rel="stylesheet" 描述了当前页面与href所指定文档的关系.即说明的是,href连接的文档是一个新式表
link内声明外链css文件,href路径,rel为外链文档和本文档的关系即relative,type即为外链文档的类型。
四、三种方法的优先级
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>嵌入式css样式</title> 6 <link href="style.css" rel="stylesheet" type="text/css"> 7 <style type="text/css"> 8 span{ 9 color:red; 10 } 11 </style> 12 </head> 13 <body> 14 <p>慕课网,<span style="color:pink">超酷的互联网</span>、IT技术免费学习平台,创新的网络一站式学习、实践体验;服务及时贴心,内容专业、有趣易学。专注服务互联网工程师快速成为技术高手!</p> 15 </body> 16 </html>
1 span{ 2 color:blue; 3 }
如果有一种情况:对于同一个元素我们同时用了三种方法设置css样式,那么哪种方法真正有效呢?在编辑器就出现了这种情况
1、使用内联式
CSS设置“超酷的互联网”文字为粉色
。
2、然后使用嵌入式
CSS来设置文字为红色
。
3、最后又使用外部式
设置文字为蓝色
(style.css文件中设置)。
但最终你可以观察到“超酷的互联网”这个短词的文本被设置为了粉色
。
因为这三种样式是有优先级的,记住他们的优先级:内联式 > 嵌入式 > 外部式
但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面。
如代码编辑器就是这样,<link href="style.css" ...>代码在<style type="text/css">...</style>代码的前面(实际开发中也是这么写的)。
感兴趣的小伙伴可以试一下,把它们调换顺序,再看他们的优先级是否变化。
其实总结来说,就是--就近原则(离被设置元素越近优先级别越高)
。
但注意上面所总结的优先级是有一个前提:内联式、嵌入式、外部式样式表中css样式是在的相同权值的情况下。
任务
分别使用内联式、嵌入式和外部式CSS样式,把“超酷的互联网”文本字号进行设置,感受一下这三种方法的优先级。
别忘了设置字号的css样式代码:
font-size:20px;
有的小伙伴问了,如果有一种情况:对于同一个元素我们同时用了三种方法设置css样式,那么哪种方法真正有效呢?在右边编辑器就出现了这种情况
1、使用内联式
CSS设置“超酷的互联网”文字为粉色
。
2、然后使用嵌入式
CSS来设置文字为红色
。
3、最后又使用外部式
设置文字为蓝色
(style.css文件中设置)。
但最终你可以观察到“超酷的互联网”这个短词的文本被设置为了粉色
。因为这三种样式是有优先级的,记住他们的优先级:内联式 > 嵌入式 > 外部式
但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面。如右代码编辑器就是这样,<link href="style.css" ...>代码在<style type="text/css">...</style>代码的前面(实际开发中也是这么写的)。感兴趣的小伙伴可以试一下,把它们调换顺序,再看他们的优先级是否变化。
其实总结来说,就是--就近原则(离被设置元素越近优先级别越高)
。
但注意上面所总结的优先级是有一个前提:内联式、嵌入式、外部式样式表中css样式是在的相同权值的情况下,什么是权值呢?在后面的9-2小节中会讲解到。
任务:
分别使用内联式、嵌入式和外部式CSS样式,把“超酷的互联网”文本字号进行设置,感受一下这三种方法的优先级。
别忘了设置字号的css样式代码:
font-size:20px;
复习:
CSS内链式写在Html标签内。
CSS外链式写在外部单独.css文件中,并在Html头部中要声明其路径(href)。
CSS嵌入式写在Html头部中。
1. 内联样式表的权值最高 1000
2. ID 选择器的权值为 100
3. Class 类选择器的权值为 10
4. HTML 标签选择器的权值为 1
一般情况是内联样式级别最高,内嵌其次,外部最低,如果同一元素在三个样式中都有设定则为多重样式的情况
如果权重相同则使用就近原则,后大于前
在同一组属性设置中标有“!important”规则的优先级最大
CSS 优先级法则:
A 选择器都有一个权值,权值越大越优先
B 当权值相等时,后出现的样式表设置要优于先出现的样式表设置
C 创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式
D 继承的CSS 样式不如后来指定的CSS 样式
E 在同一组属性设置中标有“!important”规则的优先级最大
如果不计较权重,离css修饰对象越近,就按照谁的规则去修饰。但是,比如要修饰<span>,那么
①在span内添加内链的style必然最近,于是就用这个了
②即便头部里有类选择器,比如.lei{font-size:20px;},而且这个类也是要在<span>标签内声明的,
即<span class="lei"></span>,是不是也挺近,但不会执行的,
因为CSS三大选择器权重都没有内链式<span style="font-size:15px">高,内链式很牛的。
内联式CSS的优先级比嵌入式要高,也就是说在spen中加入style="color:blue"是没有问题的,他会优先于上面的样式表执行。