部样式解决了内联样式的问题,但他也有弊端,主要表现在一下两个方面:
弊端1,内部样式只能作用于一个页面,如果要实现多个页面共享一个样式,就做不到了。
弊端2,随着样式代码的不断增加,在编辑器中,要不停的上下滚动屏幕来编辑样式,很不方便。
解决这些弊端的方法就是使用外部 CSS。
外部 CSS,也叫外部样式,可以通过改变一个文件来改变整个网站的外观!
外部样式,将 CSS 代码放在一个独立的,以 .css 为后缀名的文件中,使 html 页面结构文件和 css 样式文件完全独立开来。
每个HTML页面都必须在 head 元素里添加 <link> 元素,link 是链接的意思。
在 <link> 元素里定义 rel 属性,rel 是 relationship 的缩写,译为关系、关联,值为 stylesheet,表示关联一个样式表。
再定义一个 href 属性,用来设置一个对外部样式表文件的引用,值为 .css 文件的路径。
我们来做个例子。
在 002-add-css 文件夹里创建一个 external-1.html 文件,构建好基础代码。添加 h1 和 p 元素,分别填入一些文本。
再创建一个 external-2.html 文件,构建好基础代码。添加 h1 和 p 元素,分别填入一些文本。
在 002-add-css 文件夹里创建一个 mystyle.css 文件,在这个文件里直接编写样式:
body,空格,花括号,回车,定义样式属性名 background-color,冒号,属性值为 lightblue,分号。
h1,空格,花括号,回车,color,navy,分号,margin-left,20px,分号。
body {
background-color: lightblue;
}
h1 {
color: navy;
margin-left: 20px;
}
前面说到,样式表代码的编写格式很宽松,但是我们编写样式的时候还是要有一定的规范:
选择器和花括号中间用一个空格隔开;
每一条样式声明语句单独一行定义;
两组样式定义用空行来分隔。
样式文件定义好后,在 external-1.html 文件的 head 元素里输入 link,按下回车键或 tab 键,emmet 会为我们自动补全一些代码,我们只需要设置 href 属性的外部样式文件路径就好了。这里我们填入 mystyle.css。保存。
预览页面,第一个页面的样式添加好了。
在 external-2.html 文件的 head 元素里也添加一个 link 元素,设置同样的路径 mystyle.css。保存。
预览页面,第二个页面的样式也添加好了。
不难发现,在 mystyle.css 定义的一套样式,应用到了两个页面上,做到了多个页面的样式共享。
文章配套视频链接:https://www.bilibili.com/video/BV1oU4y1278g?p=55
avaScript 程序不能独立运行,它需要被嵌入 HTML 中,然后浏览器才能执行 JavaScript 代码。通过 <script> 标签将 JavaScript 代码引入到 HTML 中,有两种方式:
1.内部方式
内部方式是通过<script>标签包裹JavaScript代码,从而引入HTML页面中,示例代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript 基础 - 引入方式</title>
</head>
<body>
<!-- 内联形式:通过 script 标签包裹 JavaScript 代码 -->
<script>
alert('嗨,欢迎来传智播学习前端技术!')
</script>
</body>
</html>
2.外部形式
一般将 JavaScript 代码写在独立的以 .js 结尾的文件中,然后通过 <script>标签的 <src>属性引入,示例代码如下:
// demo.js
document.write('嗨,欢迎来传智播学习前端技术!')
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript 基础 - 引入方式</title>
</head>
<body>
<!-- 外部形式:通过 script 的 src 属性引入独立的 .js 文件 -->
<script src="demo.js"></script>
</body>
</html>
注意:如果 script 标签使用 src 属性引入了某 .js 文件,那么 标签的代码会被忽略!!!如下代码所示:
1)字体的属性
字体属性用于定义字体的类型、字号大小、加粗、斜体等方面样式。常用的字体属性如下表所示:
属 性 | 可 取 值 | 描 述 |
font | font-style、font-variant、font-weight、font-size(或 line-height)、font-family | 在一个声明中设置所有的字体属性 |
font-family | 字体名称、inherit | 设置字体类型 |
font-size | xx-small、x-small、small、medium(默认)、large、x-large、xx-large smaller、larger length、%、inherit | 设置字体大小 |
font-weight | normal(默认)、bold、bolder、lighter、inherit 100、200…900(400=normal,700=bold) | 设置字体粗细 |
font-style | normal、italic、oblique、inherit | 设置字体风格 |
例子,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
h3 {
font-size: 20px;
font-family: 隶书;
line-height: 28px;
}
span {
font: italic 16px 华文彩云;
}
</style>
</head>
<body>
<h3>Web 前端技术</h3>
<span
>在当今社会中,Web 已经成为网络信息共享和发布的主要形式。要想开发 Web 应用
系统,就必须掌握 Web 前端技术。</span
>
</body>
</html>
显示为,
(2)CSS 中链接标签可用的伪类:
CSS 中,伪类是添加到选择器的关键字,给指定元素设置一些特殊状态,我们以 : 开头。
链接有以下四个状态。这四种状态也称之为超链接的伪类。
状态 | 效果 |
a:link | 普通的、未被访问的链接。 |
a:hover | 鼠标指针位于链接的上方。 |
a:active | 链接被单击的时刻。 |
a:visited | 用户已访问的链接。 |
针对超链接的上述四种状态设置样式规则,能起到美化超链接的作用。例如,为了完成下对超链接的显示要求,编写的 CSS 样式代码如下。
状 态 | 颜 色 | 背 景 色 | 文 本 修 饰 |
未访问 | 蓝色 | 无 | 无下画线 |
鼠标移到 | 黑色 | #DDDDDD | 下画线 |
正单击 | 红色 | #AAAAAA | 删除线 |
已访问 | 绿色 | 无 | 无下画线 |
对于超链接的伪类,我们推荐的使用顺序是::link - :visited - :hover - :active。
例子,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
* {
text-decoration: none;
}
a:link {
color: red;
}
a:visited {
color: blue;
}
a:hover {
color: green;
}
a:active {
color: yellow;
}
</style>
</head>
<body>
<a href="#">这是一个链接</a>
</body>
</html>
显示为,
为什么要按照这样的顺序来使用呢? 调整几个伪类的顺序,看看会发生什么。
我们把 a:link 放到最后,效果如下:
从图中可以发现其中的样式属性都被覆盖了。
(3)列表相关的样式属性:
属 性 | 可 取 值 | 描 述 |
list-style | list-style-type、list-style-position、list-style-image | 在一个声明中设置所有的列表属性 |
list-style-image | URL、none | 设置图像为列表项标志 |
list-style-position | inside、outside、inherit | 设置列表中列表项标志的位置 |
list-style-type | disc(默认)、circle、square、decimal 等 | 设置列表项标志的类型 |
例子,
wget https://labfile.oss.aliyuncs.com/courses/2841/list.gif
*请认真填写需求信息,我们会在24小时内与您取得联系。