通过昨天的学习我们已经掌握了HTML的基本结构,也能根据不同的需求使用不同的标签来完成不同的功能,但是在写作业的时候我们却发现了一个问题,人家的页面比我们的页面要好看了很多,这是为什么呢?
这就是因为我们的页面是没有加入样式的!
Cascading Style Sheet 级联样式表
表现HTML或XHTML文件样式的计算机语言
包括对字体、颜色、边距、高度、宽度、背景图片、网页定位等设定
此处大家需要注意的是CSS技术是用来美化现有页面的,在成型的网站中应用也很广泛
那么为了更好的说明CSS对网页的重要性我们可以来简单的写一个对比:
比如我想在页面展示一个标题 : 海牛学院
代码应该是这个样子
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML案例title>
head>
<body>
<h1>海牛学院h1>
<h1 style="color: blue;">海牛学院h1>
body>
html>
内容与表现分离
网页的表现统一,容易修改
丰富的样式,使得页面布局更加灵活
减少网页的代码量,增加网页的浏览速度,节省网络带宽
CSS把页面上的所有标签都看成对象,所以如果你想给一组标签或者某一个标签设置样式你就可以通过选择器来选择你想选择的标签
一般常用的选择器
1) 按标签选择
2) 按标签class属性选择
3) 按标签id属性选择
看过了CSS编写的基本语法,那么有一个问题,我们怎么能把CSS融入到我们的网页中呢?
那么这时候你就需要在你的网页中使用style标签引入样式了
代码尝试一下:
先写一个h1标签
代码
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML案例title>
head>
<body>
<h1>我是一个没有样式的h1h1>
body>
html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML案例title>
<style type="text/css">
h1{
color: blueviolet;
}
style>
head>
<body>
<h1>我是一个有样式的h1h1>
body>
html>
样式 复制 粘贴(表格不折行效果)
<style type="text/css">
table td,th{
word-break: keep-all;
white-space: nowrap;
}
style>
把样式直接写到HTML标签中的就是行内样式了
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML案例title>
head>
<body>
<h1 style="color: darkorchid;">我是一个有样式的h1h1>
body>
html>
行内样式
好处就是简单直接,每次给一个标签赋予某些样式
坏处就是有些相同样式不能复用,并且标签多了的话,样式写起来很乱很麻烦;
内部样式就是把样式使用style标签统一写到head标签中,
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML案例title>
<style type="text/css">
h1{
color: blueviolet;
}
style>
head>
<body>
<h1>我是一个有样式的h1h1>
body>
html>
内部样式的
好处就是本页面的CSS可以得到很好的复用
坏处就是内部样式无法再文件与文件之间共享样式,而且内部样式写多了之后整个页面的可读性变差,内容全都耦合在一起不方便修改和阅读;
编写好一个后缀为css的文件,把样式写到css文件里去,然后哪里需要通过标签引入即可
编写css文件
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML案例title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
head>
<body>
<h1>我是一个有样式的h1h1>
body>
html>
因为我们不是专业的前段和美工,所以一般我们在使用CSS样式的时候都是直接引入别人写好的样式,比如bootstrap就是一个非常优秀的CSS框架(模板),人家写好了我们拿过来用就可以了;
问题 : 如果一个标签同时受行内样式 内部样式 和 外部样式影响的话,它会执行哪个样式呢?
回答 : 就近原则,他们的优先级是这样的:
行内样式 优先于 内部样式表
内部样式表 优先于 外部样式表
也就是说CSS采取就近原则,哪个离HTML标签越近哪个就被采用
使用标题标签和段落标签制作李白的诗《望庐山瀑布》,诗正文字体颜色为绿色,字体大小为14px
代码
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML案例title>
<style type="text/css">
p{
font-size: 14px;
color: green;
}
style>
head>
<body>
<h1>望庐山瀑布h1>
<p>日照香炉生紫烟p>
<p>遥看瀑布挂前川p>
<p>飞流直下三千尺p>
<p>疑是银河落九天p>
body>
html>
通过上面的小案例我们可以通过CSS来设置标签的样式,那么现在如果需要发生改变,我想前两句一个颜色,后两句一个颜色,或者一句一个颜色怎么办呢?
这时候你就需要使用CSS的选择器功能了;
选择器就是CSS可以读取HTML标签的一些属性,来选择哪些标签适用于哪些样式的一种规则;
比如我们刚才写的样式就是设定了 p 标签的字体颜色和样式,其他标签是不会被影响的,这就是选择器的作用;
标签的class属性的值可以重复,所以通过class属性可以获取一个或者多个标签,从而来设置他们的样式
比如,现在有一个需求是将刚才的诗前两句蓝色后两句绿色就可以用这个类选择器
代码 :
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML案例title>
<style type="text/css">
/* 标签选择器 */
p{
font-size: 14px;
color: green;
}
/* 类选择器 */
.c1{
color: cornflowerblue;
}
.c2{
color: greenyellow;
}
style>
head>
<body>
<h1>望庐山瀑布h1>
<p class="c1">日照香炉生紫烟p>
<p class="c1">遥看瀑布挂前川p>
<p class="c2">飞流直下三千尺p>
<p class="c2">疑是银河落九天p>
body>
html>
这个选择器是通过HTML设置的id属性来获取表单,但是需要注意的是一个HTML页面中每个标签的ID属性是唯一的,所以这个选择器每次只能获取一个标签
这个选择器的用途非常多,比如我们现在希望诗句的每行都拥有一个颜色的话就可以使用这个选择器;
HTML代码:
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>HTML案例title>
<style type="text/css">
/* 标签选择器 */
p{
font-size: 14px;
color: green;
}
/* 类选择器 */
.c1{
color: cornflowerblue;
}
.c2{
color: greenyellow;
}
/* ID选择器 */
#p1{
color: green;
}
#p3{
color:rosybrown;
}
#p2{
color: cornflowerblue;
}
#p4{
color: palevioletred;
}
style>
head>
<body>
<h1>望庐山瀑布h1>
<p class="c1" id="p1">日照香炉生紫烟p>
<p class="c1" id="p2">遥看瀑布挂前川p>
<p class="c2" id="p3">飞流直下三千尺p>
<p class="c2" id="p4">疑是银河落九天p>
body>
html>
通过CSS不同选择器的设置,我们可以灵活的控制页面标签的样式,但是CSS也不要应用过多,因为非专业人事操作CSS,其实就是在浪费时间做五彩斑斓的黑;
ID选择器 优先于 类选择器
类选择器 优先于 标签选择器
它的特点就是哪个选择器的影响范围小就先执行哪个选择器
问题 :
标签选择器是否也遵循“就近原则”?
不遵循,无论是哪种方式引入CSS样式,一般都遵循ID选择器 > class类选择器 > 标签选择器的优先级
设置不同的标题颜色 如何做菜为红色,其他的标题都为蓝色
网页素材
<html>
<head lang="en">
<meta charset="UTF-8">
<title>HTML案例title>
head>
<body>
<marquee scrollamount="20" behavior="alternate"><img src="img/game01.jpg" alt="主题图片" />marquee>
<br />
<img src="img/game02.jpg" alt="游戏简介" />
<p>开心餐厅,让你可以开心的烹饪美味佳肴,从一个简洁的小餐厅起步,逐步打造自己的餐饮大食代。<br />
烹饪美食,雇佣好友帮忙,装修个性餐厅,获得顾客美誉。<br />
步步精心经营,细心打理,我们都能成为餐饮大亨哦。p>
<img src="img/game03.jpg" alt="游戏特色" />
<h2>如何做菜?h2>
<p>
1.点击餐厅中的炉灶,打开菜谱,选择自己要做的食物后,进行烹饪。不断点击炉灶,直到食物进入自动烹饪阶段;<br />
2.每道菜所需要制作的步骤和烹饪的时间不一样,你可以根据自己的时间和偏好来进行选择,还会有各地特色食物供应哦;<br />
3.烹饪完毕的食物要及时端到餐台上,否则过一段时间会腐坏;<br />
4.食物放在餐台上后,服务员会自动端给顾客,顾客吃完后会付钱给你。
p>
<h2>如何经营餐厅?h2>
<p>
1.自己做老板,当大厨,雇佣好友来做服务员为你打工。心情越好的员工效率越高。员工兼职的份数越少,工作的时间越短
心情越好;好友间亲密度越高,可雇用的时间越长;<br />
2.随着等级的升高,可雇佣的员工、可购买的炉灶、餐台、经营面积都会随之增加;<br />
3.餐桌椅的摆放位置也很有讲究,它会影响顾客和服务员行走路程。
p>
<h2>如何吸引顾客?h2>
<p>
1.美誉度决定了餐厅的客流量,美誉度高的时候来餐厅的顾客多,美誉度低的时候来餐厅的顾客少;<br />
2.如果不需要等待,就能及时享用到食物,顾客就会满意地增加餐厅美誉度;与之相反,如果没有吃到食物就离开的顾客会
降低美誉度;<br />
3.总而言之,储备充足的食物、及时的服务、足够的餐桌椅是必不可少的!
p>
<h2>如何和好友互动?h2>
<p>
1.不忍眼睁睁看好友餐厅的食物腐坏,那就帮忙端到餐台吧!自己还可以获得经验值奖励;<br />
2.仓库里的东西可以赠送给好友,直接拖拽到礼物即可赠送;拖拽到收银即可出售。注意哦,每个级别能收到礼物的总价值
是有上限的;<br />
3.系统的额外食物奖励可和好友分享,把分享消息发布到开心网动态上,让朋友们一起感受快乐!每天最多可以从5位好友
的餐厅领取免费食物,食物将被放入仓库的冷藏室里,可出售给系统,也可以拖到餐台上卖给顾客;<br />
4.在好友需要帮助的时候,给予帮忙,当然啦,你也可以给好友捣捣乱、使使坏。作为奖励,你也会获得经验值和现金。
p>
<img src="img/game04.jpg" alt="游戏口碑" />
<p>开心餐厅,让你可以开心的烹饪美味佳肴,从一个简洁的小餐厅起步,逐步打造自己的餐饮大食代。<br />
烹饪美食,雇佣好友帮忙,装修个性餐厅,获得顾客美誉。<br />
步步精心经营,细心打理,我们都能成为餐饮大亨哦。
p>
body>
html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>HTML案例title>
<style>
h2{
color: hotpink;
}
#t1{
color: #8A2BE2;
}
style>
head>
<body>
<marquee scrollamount="20" behavior="alternate"><img src="img/game01.jpg" alt="主题图片" />marquee>
<br />
<img src="img/game02.jpg" alt="游戏简介" />
<p>开心餐厅,让你可以开心的烹饪美味佳肴,从一个简洁的小餐厅起步,逐步打造自己的餐饮大食代。<br />
烹饪美食,雇佣好友帮忙,装修个性餐厅,获得顾客美誉。<br />
步步精心经营,细心打理,我们都能成为餐饮大亨哦。p>
<img src="img/game03.jpg" alt="游戏特色" />
<h2 id="t1">如何做菜?h2>
<p>
1.点击餐厅中的炉灶,打开菜谱,选择自己要做的食物后,进行烹饪。不断点击炉灶,直到食物进入自动烹饪阶段;<br />
2.每道菜所需要制作的步骤和烹饪的时间不一样,你可以根据自己的时间和偏好来进行选择,还会有各地特色食物供应哦;<br />
3.烹饪完毕的食物要及时端到餐台上,否则过一段时间会腐坏;<br />
4.食物放在餐台上后,服务员会自动端给顾客,顾客吃完后会付钱给你。
p>
<h2>如何经营餐厅?h2>
<p>
1.自己做老板,当大厨,雇佣好友来做服务员为你打工。心情越好的员工效率越高。员工兼职的份数越少,工作的时间越短
心情越好;好友间亲密度越高,可雇用的时间越长;<br />
2.随着等级的升高,可雇佣的员工、可购买的炉灶、餐台、经营面积都会随之增加;<br />
3.餐桌椅的摆放位置也很有讲究,它会影响顾客和服务员行走路程。
p>
<h2>如何吸引顾客?h2>
<p>
1.美誉度决定了餐厅的客流量,美誉度高的时候来餐厅的顾客多,美誉度低的时候来餐厅的顾客少;<br />
2.如果不需要等待,就能及时享用到食物,顾客就会满意地增加餐厅美誉度;与之相反,如果没有吃到食物就离开的顾客会
降低美誉度;<br />
3.总而言之,储备充足的食物、及时的服务、足够的餐桌椅是必不可少的!
p>
<h2>如何和好友互动?h2>
<p>
1.不忍眼睁睁看好友餐厅的食物腐坏,那就帮忙端到餐台吧!自己还可以获得经验值奖励;<br />
2.仓库里的东西可以赠送给好友,直接拖拽到礼物即可赠送;拖拽到收银即可出售。注意哦,每个级别能收到礼物的总价值
是有上限的;<br />
3.系统的额外食物奖励可和好友分享,把分享消息发布到开心网动态上,让朋友们一起感受快乐!每天最多可以从5位好友
的餐厅领取免费食物,食物将被放入仓库的冷藏室里,可出售给系统,也可以拖到餐台上卖给顾客;<br />
4.在好友需要帮助的时候,给予帮忙,当然啦,你也可以给好友捣捣乱、使使坏。作为奖励,你也会获得经验值和现金。
p>
<img src="img/game04.jpg" alt="游戏口碑" />
<p>开心餐厅,让你可以开心的烹饪美味佳肴,从一个简洁的小餐厅起步,逐步打造自己的餐饮大食代。<br />
烹饪美食,雇佣好友帮忙,装修个性餐厅,获得顾客美誉。<br />
步步精心经营,细心打理,我们都能成为餐饮大亨哦。
p>
body>
html>
如果想在一段文字中设置不同的样式,或者凸显某些文字的话怎么办呢?
这时你需要一个标签
从代码可以看出,span标签可以将一部分文字包裹住统一设置样式,所以在做一些字体需求的时候用它是再合适不过了;
你可以通过设置一下属性来改变字体的形态:
此处我们常用的有font-size属性,调整字体大小 和font-weight属性调整字体粗细
font-size 中需要注意的事就 字体大小的值的单位是px
px代表像素的意思
font-weight属性中需要注意的就是如何变成粗体字
color我们已经使用过了,此处就不再细说了;