CSS样式
行内式
<div style="font-size: 40px; color: #FF0000;">我是div</div>
<div style="font-size: 40px; color: blue;">我是div2号</div>
<p style="font-size: 40px; color: orange;">我是段落</p>
- 当样式仅需要在一个元素上应用一次时,要使用内联样式
- 缺点
- 将表现和内容混杂在一起,结构样式没有分离,不利于后期维护
- 样式不能重复使用 ( 推荐不使用 )
内部式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>内部样式表</title>
<style type="text/css">
p {
color: red;
font-size: 30px;
}
div{
color: blue;
font-size: 80px;
}
</style>
</head>
<body>
<div>CSS基础学习</div>
<p>我是段落</p>
</body>
</html>
- 当单个文档需要特殊的样式时,使用内部样式表
- 使用
<style>
标签在文档头部定义内部样式表
<style>
标签放在哪里都可以,不一定要放在 <head>
里面。之所以放在 <head>
里面,是为了让浏览器在加载的时候先加载CSS,这样的话浏览器就会先心里有数,知道谁要修饰成什么样式,等加载到html之后就可以直接把样式给到相关对象上。
- 优点:结构样式分离,好维护
- 缺点:只能在一个页面中使用CSS样式
外部式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>外部样式表</title>
<link rel="stylesheet" type="text/css" href="外部样式.css" />
<link rel="icon" href="images/icon.jpg" />
<style type="text/css">
@import url("demo.css");
</style>
</head>
<body>
<div>CSS基础学习外部样式</div>
<div>CSS基础学习外部样式</div>
<p>我是段落</p>
<p>我是段落</p>
</body>
</html>
- 当样式需要应用于很多页面时,外部样式表将是理想的选择
- 在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用
<link>
标签链接到样式表,浏览器会从CSS文件中读到样式声明,并根据它来格式文档
- 优点
- 结构化样式分离,好维护
- 样式重用,可以多个页面使用
<link>
和 import
的区别
- 本质上来看,
<link>
是HTML的标签,而 import
是CSS提供的一种方式
- 加载顺序上
<link>
是当页面 ( body里面的内容 ) 被加载的时候 ( 也就是被浏览者浏览的时候 ),<link>
引入的CSS会同时被加载
import
引入的CSS会先等页面加载完毕之后再加载,如果用这种加载方式,会在网速比较慢的时候,出现闪烁的效果,影响用户体验
- 兼容性上的区别
@import
是CSS2.1提供的,所以老的浏览器不支持,@import
只有在IE5以上的才能识别
<link>
标签无此问题
- 使用DOM
- 当使用JavaScript控制DOM去改变样式的时候,只能用
<link>
标签
- 因为
@import
不是DOM可以控制的
多重样式优先级
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>多重样式优先级</title>
<link rel="stylesheet" type="text/css" href="demo.css"/>
<style type="text/css">
div{
color: blue;
}
p{
color: blue;
}
</style>
</head>
<body>
<div style="font-size: 50px; color: orange;">
解析规则第一条测试
</div>
<p>
解析规则第二条测试:外部和内部样式表同时使用
</p>
</body>
</html>
- 多重样式优先级
- 同时使用内部、外部、行内样式表修饰同一个标签的时候,优先级最高的是行内样式表,即显示结果是行内样式
- 当外部和内部样式表同时使用的时候,哪个css样式距离标签近就最终显示哪个样式