HTML仅能呈现一些信息,表现能力非常有限,需要结合CSS一起使用,以使页面更加精美。在一个网页中,所有的样式代码均可移出HTML文档,然后移入一个独立的样式表。
CSS 样式既可以作为单独的文件(.css类型的文件)引入到 HTML 文档中,也可以直接写在 HTML 文档中,大致分为如下四种方法:
1.内嵌样式表
嵌入式:将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中;
在HTML的<head>标签中的<style>标签中添加css样式,使用内嵌样式表定义的 CSS 样式只能在当前网页内使用。
<!DOCTYPE html> <html> <head> <title>内嵌样式</title> <style> body { background-color: linen; } h1 { color: maroon; margin-left: 40px; } </style> </head> <body> <h1>样式</h1> </body> </html>
因为内嵌样式表需要将 CSS 样式定义在 HTML 文档的内部,所以会导致文档的体积变大,而且当有其它文档也需要使用内嵌样式表中同样的样式时,无法引入到其他文档,必须在其它文档中重新定义,会导致代码冗余,不利于后期维护。
2. 内联样式
行内式:也称内联式,在标记的style属性中设定CSS样式。这种方式没有体现出CSS的优势;
内联样式就是将样式信息直接定义在 HTML 标签的 style 属性中,由于内联样式定义在标签内部,所以它只对所在的标签有效。
<!DOCTYPE html> <html> <head> <title>内联式</title> </head> <body> <h1 style="color: maroon; margin-left: 40px">内联式</h1> </body> </html>内联样式虽然可以很方便的为 HTML 标签赋予 CSS 样式,但它的缺点也非常明显,不推荐过多使用。
(1)定义内联样式需要在每个 HTML 标签中定义 style 属性,很不方便;
(2)在内联样式中使用双引号或单引号时要特别小心,因为 HTML 标签的属性通常都会使用双引号来包裹属性的值,例如<input type="text">;
(3)在内联样式中定义的样式不能再其它任何地方重用;
(4)内联样式在后期维护时很不方便,因为一个网站通常有很多页面组成,当修改页面样式时需要对页面逐个修改;
(5)添加过多的内联样式会导致 HTML 文档的体积增大。
3. 外部样式表
链接式:跟第4个的导入式都称外部式或者外联式,使用link引用外部CSS文件;
外部样式表是最常见也是最推荐的引用 CSS 的方式,您只需要将 CSS 样式定义在一个 .css 格式的文件中,然后使用 HTML 的<link>标签将这个 .css 格式的样式文件应用到 HTML 文档中。
<!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" href="./style.css"> </head> <body> <h1>外部样式表</h1> </body> </html>
因为 CSS 样式定义在单独的 .css 格式的文件中,所以可以在多个页面之间引用,若要修改网页的样式,只需要修改这个 CSS 样式文件即可,很方便。
4.导入样式表
导入式:使用@import引用外部CSS文件;
您同样可以使用@import来引用外部样式表,这一点与使用<link>标签比较相似。创建一个总的先style.css,将所有的样式先导入style.css。
HTML:
<!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" href="style.css"> </head> <body> <h1>外部样式表</h1> </body> </html>
style.css:
@import "1.css"; @import "2.css"; @import "3.css"; @import "4.css";
1.css:(1到4的css相同,都是添加样式)
.top1{ list-style-type: none; margin: 0; padding: 0; }
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程