HTML+CSS的基础复习篇~

---恢复内容开始---

语义化,让你的网页更好的被搜索引擎理解

在这一章节我们要开始把网页中常用到的标签一 一向大家介绍,学习这一章节的时候要记住学习html标签过程中,主要注意两个方面的学习:标签的用途、标签在浏览器中的默认样式。

标签的用途:我们学习网页制作时,常常会听到一个词,语义化。那么什么叫做语义化呢,说的通俗点就是:明白每个标签的用途(在什么情况下使用此标签合理)比如,网页上的文章的标题就可以用标题标签,网页上的各个栏目的栏目名称也可以使用标题标签。文章中内容的段落就得放在段落标签中,在文章中有想强调的文本,就可以使用 em 标签表示强调等等。

讲了这么多语义化,但是语义化可以给我们带来什么样的好处呢?

1. 更容易被搜索引擎收录。

2. 更容易让屏幕阅读器读出网页内容。

在后面的章节会带领大家学习了解html中每个标签的语义(用途)。

标签,网页上显示的内容放在这里

      还记得body标签吗,在上一章节我们简单介绍过:在网页上要展示出来的页面内容一定要放在body标签中。如下图是一个新闻文章的网页。

在浏览器中的显示效果:

开始学习

标签,添加段落

如果想在网页上显示文章,这时就需要

标签了,把文章的段落放到

标签中。

语法:

段落文本

 注意一段文字一个

标签,如在一篇新闻文章中有3段文字,就要把这3个段落分别放到3

标签中。如下图所示。

 

了解标签,为你的网页添加标题

文章的段落用

标签,那么文章的标题用什么标签呢?在本节我们将使用标签来制作文章的标题
标题标签一共有6个,h1、h2、h3、h4、h5、h6分别为一级标题、二级标题、三级标题、四级标题、五级标题、六级标题。并且依据重要性递减。

是最高的等级。
语法:
标题文本 (x为1-6)
文章的标题前面已经说过了,可以使用标题标签,另外网页上的各个栏目的标题也可使用它们。如下图为腾讯网站。

注意:因为h1标签在网页中比较重要,所以一般h1标签被用在网站名称上。腾讯网站就是这样做的。如:

腾讯网

h1-h6标签的默认样式:

标签代码:

在浏览器中显示的样式:

从上面的图片可以看出标题标签的样式都会加粗,h1标签字号最大,h2标签字号相对h1要小,以此类推h6标签的字号最小。

 

加入强调语气,使用标签

       有了段落又有了标题,现在如果想在一段话中特别强调某几个文字,这时候就可以用到标签。

       但两者在强调的语气上有区别: 表示强调, 表示更强烈的强调。并且在浏览器中 默认用斜体表示,粗体表示。两个标签相比,目前国内前端程序员更喜欢使用表示强调。

语法:

需要强调的文本  

需要强调的文本 

如,在网上商城中,某产品的打折后的价格是需要强调的。如下图。

代码实现:

在浏览器中默认样式是有区别的:

原代码,如下图。

浏览器中的样子,如下图。

的内容在浏览中显示为斜体,显示为加粗。如果不喜欢这种样式,没有关系,以后可以使用css样式去改变它。

 

 

使用标签为文字设置单独样式

这一小节讲解标签,我们对这三个标签进行一下总结:

1. 标签是为了强调一段话中的关键字时使用,它们的语义是强调。

2. 标签是没有语义的,它的作用就是为了设置单独的样式用的。

如果现在我们想把上一小节的第一段话“美国梦”三个字设置成blue(蓝色),但注意不是为了强调“美国梦”,而只是想为它设置和其它文字不同的样式(并不想让屏幕阅读器对“美国梦”这三个字加重音读出),所以这样情况下就可以用到标签了。

如下面例子:

1922年的春天,一个想要成名名叫尼克•卡拉威(托比•马奎尔Tobey Maguire 饰)的作家,离开了美国中西部,来到了纽约。那是一个道德感渐失,爵士乐流行,走私为王,股票飞涨的时代。为了追寻他的美国梦,他搬入纽约附近一海湾居住。

语法:

文本

 

 

标签,短文本引用

      想在你的html中加一段引用吗?比如在你的网页的文章里想引用某个作家的一句诗,这样会使你的文章更加出彩,那么标签是你所需要的。

语法:

引用文本

如下面例子:

最初知道庄子,是从一首诗庄生晓梦迷蝴蝶。望帝春心托杜鹃。开始的。虽然当时不知道是什么意思,只是觉得诗句挺特别。后来才明白这个典故出自是庄子的《逍遥游》,《逍遥游》代表了庄子思想的最高境界,是对世俗社会的功名利禄及自己的舍弃。

讲解:

1. 在上面的例子中,“庄生晓梦迷蝴蝶。望帝春心托杜鹃。” 这是一句诗歌,出自晚唐诗人李商隐的《锦瑟》 。因为不是作者自己的文字,所以需要使用实现引用。

2. 注意要引用的文本不用加双引号,浏览器会对q标签自动添加双引号。

下图是代码显示结果:

注意这里用标签的真正关键点不是它的默认样式双引号(如果这样我们不如自己在键盘上输入双引号就行了),而是它的语义:引用别人的话

 

 

标签,长文本引用

      

的作用也是引用别人的文本。但它是对长文本的引用,如在文章中引入大段某知名作家的文字,这时需要这个标签。

      等等,上一节标签不是也是对文本的引用吗?不要忘记标签是对简短文本的引用,比如说引用一句话就用到标签。

      如想在我的文章中引用李白《关山月》中的诗句,因为引用文本比较长,所以使用<blockquote>

语法:

<blockquote>引用文本

如下面例子:

明月出天山,苍茫云海间。长风几万里,吹度玉门关。汉下白登道,胡窥青海湾。由来征战地,不见有人还。 戍客望边色,思归多苦颜。高楼当此夜,叹息未应闲。

浏览器对<blockquote>标签的解析是缩进样式。如下图所示:

 

使用
标签分行显示文本

对于上一小节的例子,我们想让那首诗显示得更美观些,如显示下面效果:

怎么可以让每一句诗词后面加入一个折行呢?那就可以用到
标签了,在需要加回车换行的地方加入

标签作用相当于word文档中的回车。

上节的代码改为:

语法:

xhtml1.0写法:


html4.01写法:


大家注意,现在一般使用 xhtml1.0 的版本的写法(其它标签也是),这种版本比较规范。

      与以前我们学过的标签不一样,
标签是一个空标签,没有HTML内容的标签就是空标签,空标签只需要写一个开始标签,这样的标签有


      讲到这里,你是不是有个疑问,想折行还不好说嘛,就像在 word 文件档或记事本中,在想要折行的前面输入回车不就行了吗?很遗憾,在 html 中是忽略回车空格的,你输入的再多回车和空格也是显示不出来的。如下边的代码。

上面的代码在浏览中显示是没有回车效果的。如下图所示:

总结:在 html 代码中输入回车、空格都是没有作用的。在html文本中想输入回车换行,就必须输入

 

为你的网页中添加一些空格

在上一节的例子,我们已经讲解过在html代码中输入空格回车都是没有作用的。要想输入空格,必须写入 

语法:

 

在html代码中输入空格是不起作用的,如下代码。

在浏览中显示,还是没有空格效果。

输入空格的正确方法:

在浏览器中的显示出来的空格效果。如下图所示。

 

 

认识
标签,添加水平横线

在信息展示时,有时会需要加一些用于分隔的横线,这样会使文章看起来整齐些。如下图所示:

语法:

html4.01版本 


xhtml1.0版本 


注意:

1. 


标签和
标签一样也是一个空标签,所以只有一个开始标签,没有结束标签。

2. 


标签的在浏览器中的默认样式线条比较粗,颜色为灰色,可能有些人觉得这种样式不美观,没有关系,这些外在样式在我们以后学习了css样式表之后,都可以对其修改。

3. 大家注意,现在一般使用 xhtml1.0 的版本(其它标签也是),这种版本比较规范。

 

标签,为网页加入地址信息

一般网页中会有一些网站的联系地址信息需要在网页中展示出来,这些联系地址信息如公司的地址就可以

标签。也可以定义一个地址(比如电子邮件地址)、签名或者文档的作者身份。

语法:

联系地址信息

如:

文档编写:lilian 北京市西城区德外大街10号

本文的作者:lilian

      在浏览器上显示的样式为斜体,如果不喜欢斜体,当然可以,可以在后面的课程中使用 css 样式来修改它

标签的默认样式。

 

想加入一行代码吗?使用标签

在介绍语言技术的网站中,避免不了在网页中显示一些计算机专业的编程代码,当代码为一行代码时,你就可以使用标签了,如下面例子:

var i=i+300;

注意:在文章中一般如果要插入多行代码时不能使用标签了。

语法:

代码语言

注:如果是多行代码,可以使用

标签。

 

使用
标签为你的网页加入大段代码

在上节中介绍加入一行代码的标签为,但是在大多数情况下是需要加入大段代码的,如下图:

怎么办?不会是每一代码都加入一个标签吧,没有这么复杂,这时候就可以使用

标签。

语法:

语言代码段

 标签的主要作用:预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。

如下代码:

    var message="欢迎";
    for(var i=1;i<=10;i++)
    {
        alert(message);
    }

在浏览器中的显示结果为:

在上面的例子中可以看到代码中的空格,换行符都保留下来。如果用以前的方法,回车需要输入
签,空格需要输入 

注意:

 标签不只是为显示计算机的源代码时用的,在你需要在网页中预显示格式时都可以使用它,只是
标签的一个常见应用就是用来展示计算机的源代码。

 

使用ul,添加新闻信息列表

在浏览网页时,你会发现网页上有很多信息的列表,如新闻列表、图片列表,如下图所示。

新闻列表

图片列表

这些列表就可以使用ul-li标签来完成。ul-li是没有前后顺序的信息列表。

语法:

  • 信息
  • 信息
  • ......

举例:

  • 精彩少年
  • 美丽突然出现
  • 触动心灵的旋律

ul-li在网页中显示的默认样式一般为:每项li前都自带一个圆点,如下图所示:

 

使用ol,添加图书销售排行榜

如果想在网页中展示有前后顺序的信息列表,怎么办呢?如,当当网上的书籍热卖排行榜,如下图所示。这类信息展示就可以使用

    标签来制作有序列表来展示。

    语法:

    1. 信息
    2. 信息
    3. ......

    举例:

    下面是一个热点课程下载排行榜:

    1. 前端开发面试心法
    2. 零基础学习html
    3. JavaScript全攻略

      在网页中显示的默认样式一般为:每项
    1. 前都自带一个序号,序号默认从1开始,如下图所示:

      认识div在排版中的作用

      在网页制作过程过中,可以把一些独立的逻辑部分划分出来,放在一个

      标签中,这个
      标签的作用就相当于一个容器。

      语法:

      确定逻辑部分:

      什么是逻辑部分?它是页面上相互关联的一组元素。如网页中的独立的栏目版块,就是一个典型的逻辑部分。如下图所示:图中用红色边框标出的部分就是一个逻辑部分,就可以使用

      标签作为容器。

       

      给div命名,使逻辑更加清晰

      在上一小节中,我们把一些标签放进

      里,划分出一个独立的逻辑部分。为了使逻辑更加清晰,我们可以为这一个独立的逻辑部分设置一个名称,用id属性来为
      提供唯一的名称,这个就像我们每个人都有一个身份证号,这个身份证号是唯一标识我们的身份的,也是必须唯一的。

      如下两图进行比较,如果设计师把两个图给你,哪个图你看上去能更快的理解呢?是不是右边的那幅图呢。

      语法:

       

      table标签,认识网页上的表格

      有时候我们需要在网页上展示一些数据,如某公司想在网页上展示公司的库存清单。如下表:

      想在网页上展示上述表格效果可以使用以下代码:

      创建表格的四个元素:

      table、tbody、tr、th、td

      1、

      :整个表格以标记开始、
      标记结束。

      2、…:当表格内容非常多时,表格会下载一点显示一点,但如果加上标签后,这个表格就要等表格内容全部下载完才会显示。如右侧代码编辑器中的代码。

      3、…:表格的一行,所以有几对tr 表格就有几行。

      4、…:表格的一个单元格,一行中包含几对...,说明一行中就有几列。

      5、…:表格的头部的一个单元格,表格表头。

      6、表格中列的个数,取决于一行中数据单元格的个数。

      上述代码在浏览器中显示的默认的样式为:

      总结:

      1、table表格在没有添加css样式之前,在浏览器中显示是没有表格线的

      2、表头,也就是th标签中的文本默认为粗体并且居中显示

       

      用css样式,为表格加入边框

      Table 表格在没有添加 css 样式之前,是没有边框的。这样不便于我们后期合并单元格知识点的讲解,所以在这一节中我们为表格添加一些样式,为它添加边框。

      在右侧代码编辑器中添加如下代码:

      上述代码是用 css 样式代码(后面章节会详细讲解),为thtd单元格添加粗细为一个像素的黑色边框。

      结果窗口显示出结果样式:

       

       

      caption标签,为表格添加标题和摘要

      表格还是需要添加一些标签进行优化,可以添加标题和摘要。代码如下:

      摘要

      摘要的内容是不会在浏览器中显示出来的。它的作用是增加表格的可读性(语义化),使搜索引擎更好的读懂表格内容,还可以使屏幕阅读器更好的帮助特殊用户读取表格内容。

          语法:

      标题

      用以描述表格内容,标题的显示位置:表格上方。

           语法:

      … …
      标题文本



使用标签,链接到另一个页面

使用标签可实现超链接,它在网页制作中可以说是无处不在,只要有链接的地方,就会有这个标签。

语法:

链接显示的文本

例如:

click here!

上面例子作用是单击click here!文字,网页链接到http://www.imooc.com这个网页。

title属性的作用,鼠标滑过链接文字时会显示这个属性的文本内容。这个属性在实际网页开发中作用很大,主要方便搜索引擎了解链接地址的内容(语义化更友好),如右侧案例代码(8-12行)。

注意:还有一个有趣的现象不知道小伙伴们发现了没有,只要为文本加入a标签后,文字的颜色就会自动变为蓝色(被点击过的文本颜色为紫色),颜色很难看吧,不过没有关系后面我们学习了css样子就可以设置过来(a{color:#000}),后面会详细讲解。

 

在新建浏览器窗口中打开链接

标签在默认情况下,链接的网页是在当前浏览器窗口中打开,有时我们需要在新的浏览器窗口中打开。

如下代码:

click here!

 

 

使用mailto在网页中链接Email地址

标签还有一个作用是可以链接Email地址,使用mailto能让访问者便捷向网站管理者发送电子邮件。我们还可以利用mailto做许多其它事情。下面一一进行讲解,请看详细图示:

注意:如果mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的参数每一个都以“&”分隔。

下面是一个完整的实例:

在浏览器中显示的结果:

发送

点击链接会打开电子邮件应用,并自动填写收件人等设置好的信息,如下图:

 

 

认识标签,为网页插入图片

在网页的制作中为使网页炫丽美观,肯定是缺少不了图片,可以使用标签来插入图片。

语法:

下载失败时的替换文本

举例:

My Image

讲解:

1、src:标识图像的位置;

2、alt:指定图像的描述性文本,当图像不可见时(下载不成功时),可看到该属性指定的文本;

3、title:提供在图像可见时对图像的描述(鼠标滑过图片时显示的文本);

4、图像可以是GIF,PNG,JPEG格式的图像文件。

 

 

使用表单标签,与用户交互

网站怎样与用户进行交互?答案是使用HTML表单(form)。表单是可以把浏览者输入的数据传送到服务器端,这样服务器端程序就可以处理表单传过来的数据。

语法:

讲解:

1. :标签是成对出现的,以开始,以结束。

2.action :浏览者输入的数据被传送到的地方,比如一个PHP页面(save.php)。

3.method : 数据传送的方式(get/post)。

注意:

1、所有表单控件(文本框、文本域、按钮、单选框、复选框等)都必须放在

标签之间(否则用户输入的信息可提交不到服务器上哦!)。

2、method : post/get 的区别这一部分内容属于后端程序员考虑的问题。感兴趣的小伙伴可以查看本小节的 wiki,里面有详细介绍。

 

 

文本输入框、密码输入框

当用户要在表单中键入字母、数字等内容时,就会用到文本输入框。文本框也可以转化为密码输入框。

语法:

1、type:

   当type="text"时,输入框为文本输入框;

   当type="password"时, 输入框为密码输入框。

2、name:为文本框命名,以备后台程序ASP 、PHP使用。

3、value:为文本输入框设置默认值。(一般起到提示作用)

举例

姓名:
密码:

在浏览器中显示的结果:

 

文本域,支持多行文本输入

当用户需要在表单中输入大段文字时,需要用到文本输入域。

语法:

  rows="行数" cols="列数">文本

1结束。

2、cols :多行输入域的列数。

3、rows :多行输入域的行数。

4、在标签之间可以输入默认值。

举例

联系我们

注意:代码中的

在浏览器中显示结果:

注意这两个属性可用css样式的width和height来代替:col用width、row用height来代替。(这两个css样式在以后的章节会讲解)

 

 

使用单选框、复选框,让用户选择

在使用表单设计调查表时,为了减少用户的操作,使用选择框是一个好主意,html中有两种选择框,即单选框和复选框,两者的区别是单选框中的选项用户只能选择一项,而复选框中用户可以任意选择多项,甚至全选。请看下面的例子:

语法:

1、type:

   当 type="radio" 时,控件为单选框

   当 type="checkbox" 时,控件为复选框

2、value:提交数据到服务器的值(后台程序PHP使用)

3、name:为控件命名,以备后台程序 ASP、PHP 使用

4、checked:当设置 checked="checked" 时,该选项被默认选中

如下面代码:

注意:代码中的

在浏览器中显示的结果:

注意:同一组的单选按钮,name 取值一定要一致,比如上面例子为同一个名称“radioLove”,这样同一组的单选按钮才可以起到单选的作用。

 

 

使用下拉列表框,节省空间

下拉列表在网页中也常会用到,它可以有效的节省网页空间。既可以单选、又可以多选。如下代码:

讲解:

1、value:

2、selected="selected":

设置selected="selected"属性,则该选项就被默认选中。

在浏览器中显示的结果:

 

 

用下拉列表框进行多选

下拉列表也可以进行多选操作,在

type:只有当type值设置为submit时,按钮才有提交作用

value按钮上显示的文字

举例

在浏览器中显示的结果:

 

 

使用重置按钮,重置表单信息

 

认识CSS样式

CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等。

如下列代码:

p{
   font-size:12px;
   color:red;
   font-weight:bold;
}

使用CSS样式的一个好处是通过定义某个样式,可以让不同网页位置的文字有着统一的字体、字号或者颜色等。

任务

我来试一试:用css样式代码修改字体大小

在右部编辑器中的第8行修改

“font-size:12px;”为“font-size:20px;”

观察结果窗口的变化。

 

CSS代码语法

css 样式由选择符和声明组成,而声明又由属性和值组成,如下图所示:

选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到影响。

声明:在英文大括号“{}”中的的就是声明,属性和值之间用英文冒号“:”分隔。当有多条声明时,中间可以英文分号“;”分隔,如下所示:

p{font-size:12px;color:red;}

注意:

1、最后一条声明可以没有分号,但是为了以后修改方便,一般也加上分号。

2、为了使用样式更加容易阅读,可以将每条代码写在一个新行内,如下所示:

p{
   font-size:12px;
   color:red;
}

CSS注释代码

就像在Html的注释一样,在CSS中也有注释语句:用/*注释语句*/来标明(Html中使用)。就像下面代码:

 

 

内联式css样式,直接写在现有的HTML标签中

CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式、嵌入式和外部式三种。这一小节先来讲解内联式。

内联式css样式表就是把css代码直接写在现有的HTML标签中,如下面代码:

这里文字是红色。

注意要写在元素的开始标签里,下面这种写法是错误的:

这里文字是红色。

并且css样式代码要写在style=""双引号中,如果有多条css样式代码设置可以写在一起,中间用分号隔开。如下代码:

;font-size:12px">这里文字是红色。





嵌入式css样式,写在当前的文件中

现在有一任务,把右侧编辑器中的“超酷的互联网”、“服务及时贴心”、“有趣易学”这三个短词文字字号修改为18px。如果用上节课我们学习的内联式css样式的方法进行设置将是一件很头疼的事情(为每一个标签加入sytle="font-size:18px"语句),本小节讲解一种新的方法嵌入式css样式来实现这个任务。

嵌入式css样式,就是可以把css样式代码写在标签之间。如下面代码实现把三个标签中的文字设置为红色:

嵌入式css样式必须写在之间,并且一般情况下嵌入式css样式写在之间。如右边编辑器中的代码。

 

 

三种方法的优先级

有的小伙伴问了,如果有一种情况:对于同一个元素我们同时用了三种方法设置css样式,那么哪种方法真正有效呢?在右边编辑器就出现了这种情况

1、使用内联式CSS设置“超酷的互联网”文字为粉色

2、然后使用嵌入式CSS来设置文字为红色

3、最后又使用外部式设置文字为蓝色(style.css文件中设置)。

但最终你可以观察到“超酷的互联网”这个短词的文本被设置为了粉色。因为这三种样式是有优先级的,记住他们的优先级:内联式 > 嵌入式 > 外部式

但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面。如右代码编辑器就是这样,代码在代码的前面(实际开发中也是这么写的)。感兴趣的小伙伴可以试一下,把它们调换顺序,再看他们的优先级是否变化。

其实总结来说,就是--就近原则(离被设置元素越近优先级别越高)

但注意上面所总结的优先级是有一个前提:内联式、嵌入式、外部式样式表中css样式是在的相同权值的情况下,什么是权值呢?在后面的9-2小节中会讲解到。

 

什么是选择器?

每一条css样式声明(定义)由两部分组成,形式如下:

选择器{
    样式;
}

在{}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素。比如右侧代码编辑器中第7行代码中的“body”就是选择器。

 

标签选择器

标签选择器其实就是html代码中的标签。如右侧代码编辑器中的、、

。例如下面代码:

p{font-size:12px;line-height:1.6em;}

上面的css样式代码的作用:为p标签设置12px字号,行间距设置1.6em的样式。

 

类选择器

类选择器在css样式编码中是最常用到的,如右侧代码编辑器中的代码:可以实现为“胆小如鼠”、“勇气”字体设置为红色。

语法:

.类选器名称{css样式代码;}

注意:

1、英文圆点开头

2、其中类选器名称可以任意起名(但不要起中文噢)

使用方法:

第一步:使用合适的标签把要修饰的内容标记起来,如下:

胆小如鼠

第二步:使用class="类选择器名称"为标签设置一个类,如下:

胆小如鼠

第三步:设置类选器css样式,如下:

.stress{color:red;}/*类前面要加入一个英文圆点*/


ID选择器

在很多方面,ID选择器都类似于类选择符,但也有一些重要的区别:

1、为标签设置id="ID名称",而不是class="类名称"。

2、ID选择符的前面是井号(#)号,而不是英文圆点(.)。

右侧代码编辑器中就是一个ID选择符的完整实例。

 

类和ID选择器的区别

学习了类选择器和ID选择器,我们会发现他们之间有很多的相似处,是不是两者可以通用呢?我们不要着急先来总结一下他们的相同点和不同点:

相同点:可以应用于任何元素
不同点:

1、ID选择器只能在文档中使用一次。与类选择器不同,在一个HTML文档中,ID选择器只能使用一次,而且仅一次。而类选择器可以使用多次。

下面代码是正确的:

 

三年级时,我还是一个胆小如鼠的小女孩,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。

而下面代码是错误的:

 

三年级时,我还是一个胆小如鼠的小女孩,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。

2、可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以的(不能使用 ID 词列表)。

下面的代码是正确的(完整代码见右侧代码编辑器)

.stress{
    color:red;
}
.bigsize{
    font-size:25px;
}

到了三年级下学期时,我们班上了一节公开课...

上面代码的作用是为“三年级”三个文字设置文本颜色为红色并且字号为25px。

下面的代码是不正确的(完整代码见右侧代码编辑器)

#stressid{
    color:red;
}
#bigsizeid{
    font-size:25px;
}

到了三年级下学期时,我们班上了一节公开课...

上面代码不可以实现为“三年级”三个文字设置文本颜色为红色并且字号为25px的作用。

 

 

子选择器

还有一个比较有用的选择器子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素。如右侧代码编辑器中的代码:

.food>li{border:1px solid red;}

这行代码会使class名为food下的子元素li(水果、蔬菜)加入红色实线边框。

 

包含(后代)选择器

包含选择器,即加入空格,用于选择指定标签元素下的后辈元素。如右侧代码编辑器中的代码:

.first  span{color:red;}

这行代码会使第一段文字内容中的“胆小如鼠”字体颜色变为红色。

请注意这个选择器与子选择器的区别,子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一代后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。

总结:>作用于元素的第一代后代,空格作用于元素的所有后代。

 

 

通用选择器

通用选择器是功能最强大的选择器,它使用一个(*)号指定,它的作用是匹配html中所有标签元素,如下使用下面代码使用html中任意标签元素字体颜色全部设置为红色:

* {color:red;}

伪类选择符

更有趣的是伪类选择符,为什么叫做伪类选择符,它允许给html不存在的标签(标签的某种状态)设置样式,比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色:

a:hover{color:red;}

上面一行代码就是为 a 标签鼠标滑过的状态设置字体颜色变红。这样就会使第一段文字内容中的“胆小如鼠”文字加入鼠标滑过字体颜色变为红色特效。

关于伪选择符:

    关于伪类选择符,到目前为止,可以兼容所有浏鉴器的“伪类选择符”就是 a 标签上使用 :hover 了(其实伪类选择符还有很多,尤其是 css3 中,但是因为不能兼容所有浏览器,本教程只是讲了这一种最常用的)。其实 :hover 可以放在任意的标签上,比如说 p:hover,但是它们的兼容性也是很不好的,所以现在比较常用的还是 a:hover 的组合。

hover 英 [ˈhɒvə(r)] 美 [ˈhʌvər]
vi. 盘旋; 徘徊; 犹豫;
n. 盘旋; 徘徊

 

分组选择符

当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符(,),如下代码为右侧代码编辑器中的h1、span标签同时设置字体颜色为红色:

h1,span{color:red;}

它相当于下面两行代码:

h1{color:red;}
span{color:red;}


特殊性

有的时候我们为同一个元素设置了不同的CSS样式代码,那么元素会启用哪一个CSS样式呢?我们来看一下面的代码:

p{color:red;}
.first{color:green;}

三年级时,我还是一个胆小如鼠的小女孩。

p和.first都匹配到了p这个标签上,那么会显示哪种颜色呢?green是正确的颜色,那么为什么呢?是因为浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。

下面是权值的规则:

标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:

p{color:red;} /*权值为1*/
p span{color:green;} /*权值为1+1=2*/
.warning{color:white;} /*权值为10*/
p span.warning{color:purple;} /*权值为1+1+10=12*/
#footer .note p{color:yellow;} /*权值为100+10+1=111*/

注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。

 

层叠

我们来思考一个问题:如果在html文件中对于同一个元素可以有多个css样式存在并且这多个css样式具有相同权重值怎么办?好,这一小节中的层叠帮你解决这个问题。

层叠就是在html文件中对于同一个元素可以有多个css样式存在,当有相同权重的样式存在时,会根据这些css样式的前后顺序来决定,处于最后面的css样式会被应用。

如下面代码:

p{color:red;}
p{color:green;}

三年级时,我还是一个胆小如鼠的小女孩。

最后 p 中的文本会设置为green,这个层叠很好理解,理解为后面的样式会覆盖前面的样式。

所以前面的css样式优先级就不难理解了:

内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)。

 

重要性

我们在做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,怎么办?这时候我们可以使用!important来解决。

如下代码:

p{color:red!important;}
p{color:green;}

三年级时,我还是一个胆小如鼠的小女孩。

这时 p 段落中的文本会显示的red红色。

注意:!important要写在分号的前面

这里注意当网页制作者不设置css样式时,浏览器会按照自己的一套样式来显示网页。并且用户也可以在浏览器中设置自己习惯的样式,比如有的用户习惯把字号设置为大一些,使其查看网页的文本更加清楚。

这时注意样式优先级为:浏览器默认的样式 < 网页制作者样式 < 用户自己设置的样式,但记住!important优先级样式是个例外,权值高于用户自己设置的样式。

 

 

文字排版--字体

我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。下面我们来看一个例子,下面代码实现:为网页中的文字设置字体为宋体。

body{font-family:"宋体";}

这里注意不要设置不常用的字体,因为如果用户本地电脑上如果没有安装你设置的字体,就会显示浏览器默认的字体。(因为用户是否可以看到你设置的字体样式取决于用户本地电脑上是否安装你设置的字体。)
现在一般网页喜欢设置“微软雅黑”,如下代码:

body{font-family:"Microsoft Yahei";}

body{font-family:"微软雅黑";}

注意:第一种方法比第二种方法兼容性更好一些。

因为这种字体即美观又可以在客户端安全的显示出来(用户本地一般都是默认安装的)。

 

文字排版--字号、颜色

可以使用下面代码设置网页中文字的字号为12像素,并把字体颜色设置为#666(灰色):

body{font-size:12px;color:#666}

文字排版--粗体

我们还可以使用css样式来改变文字的样式:粗体、斜体、下划线、删除线,可以使用下面代码实现设置文字以粗体样式显示出来。

p span{font-weight:bold;}

在这里大家可以看到,如果想为文字设置粗体是有单独的css样式来实现的,再不用为了实现粗体样式而使用h1-h6或strong标签了。

 

文字排版--斜体

以下代码可以实现文字以斜体样式在浏览器中显示:

p a{font-style:italic;}

三年级时,我还是一个胆小如鼠的小女孩。



italic 英 [ɪˈtælɪk] 美 [ɪˈtælɪk, aɪˈtæl-]
.adj. (印刷字体) 斜体的; (书写) 整齐尖细的; (I-) 古意大利的;
n. 斜体字;

文字排版--下划线

有些情况下想为文字设置为下划线样式,这样可以在视觉上强调文字,可以使用下面代码来实现:

p a{text-decoration:underline;}

三年级时,我还是一个胆小如鼠的小女孩。





文字排版--删除线

如果想在网页上设置删除线怎么办,这个样式在电商网站上常会见到:

上图中的原价上的删除线使用下面代码就可以实现:

 .oldPrice{text-decoration:line-through;}



段落排版--缩进

中文文字中的段前习惯空两个文字的空白,这个特殊的样式可以用下面代码来实现:

p{text-indent:2em;}

1922年的春天,一个想要成名名叫尼克卡拉威(托比?马奎尔Tobey Maguire 饰)的作家,离开了美国中西部,来到了纽约。那是一个道德感渐失,爵士乐流行,走私为王,股票飞涨的时代。为了追寻他的美国梦,他搬入纽约附近一海湾居住。


注意:2em的意思就是文字的2倍大小。

 

indent英 [ɪn'dent]美 [ɪn'dɛnt]
n. 缩进;订货单;凹痕;契约
vi. 切割成锯齿状

 

 

段落排版--行间距(行高)

这一小节我们来学习一下另一个在段落排版中起重要作用的行间距(行高)属性(line-height),如下代码实现设置段落行间距为1.5倍。

p{line-height:1.5em;}

菲茨杰拉德,二十世纪美国文学巨擘之一,兼具作家和编剧双重身份。他以诗人的敏感和戏剧家的想象为"爵士乐时代"吟唱华丽挽歌,其诗人和梦想家的气质亦为那个奢靡年代的不二注解。





段落排版--中文字间距、字母间距

中文字间隔、字母间隔设置:

如果想在网页排版中设置文字间隔或者字母间隔就可以使用    letter-spacing 来实现,如下面代码:

h1{
    letter-spacing:50px;
}
...

了不起的盖茨比

注意:这个样式使用在英文单词时,是设置字母与字母之间的间距。

单词间距设置:

如果我想设置英文单词之间的间距呢?可以使用 word-spacing来实现。如下代码:

h1{
    word-spacing:50px;
}
...

welcome to imooc!




段落排版--对齐

想为块状元素中的文本、图片设置居中样式吗?可以使用text-align样式代码,如下代码可实现文本居中显示。(那么什么是块状元素呢?在后面的11-1、11-2小节中会讲到。)

h1{
    text-align:center;
}

了不起的盖茨比

同样可以设置居左:

h1{
    text-align:left;
}

了不起的盖茨比

还可以设置居右:

h1{
    text-align:right;
}

了不起的盖茨比




元素分类

在讲解CSS布局之前,我们需要提前知道一些知识,在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。

常用的块状元素有:

...