零基础小白前端学习之HTML(六)

553 阅读6分钟

本节重点

  • 列表标签
  • div和span标签
  • table标签
学完本节,我们可以在网页中展示一些信息列表及表格数据,使网页中的信息更加丰富
1.使用ul,添加新闻信息列表

在浏览网页中,比如打开百度新闻首页,你会发现网页中很多新闻信息的列表,如新闻网站中的新闻列表,图片列表。

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

代码如下:

<ul>
    <li>多地提高城乡居民基础养老金 这两类人涨得更多</li>
    <li>10天第2名中石油系统官员落马</li>
    <li>春节假期接近尾声 道路交通迎来返程高峰</li>
</ul>

大家会发现,ul-li默认的样式一般为:每项li前都有一个圆点。

2.使用ol,添加热门点击排行榜

如果想在网页中展示有前后顺序的信息列表,怎么办呢?如,百度新闻网的热门点击排行榜,那么我们就可以使用ol-li标签来制作有序列表 举例:

下面是一个前端学习技术栈下载排行榜

<ol>
    <li>vue全家桶</li>
    <li>react全家桶</li>
    <li>Nodejs精讲</li>
    <li>es6深入挖掘</li>  
</ol>

<ol>在网页中显示的默认样式一般为:每项<li>前都自带一个序号,序号默认从1开始.

3.认识div在排版中的作用(放在后面)

在网页制作中,我们可以把一些独立的逻辑部分划分出来,放在一个div标签中,这个<div>标签的作用就相当于一个容器。把我们想要的内容给装起来。

div的意思是division “分割”的意思,span的意思是“范围、跨度”。

首先,在使用div标签的使用,我们要确定哪儿是逻辑部分?

它是页面上相互关联的一组元素。如网页中农的独立的栏目板块,就是一个典型的逻辑部分。如图所示:图中用红线框出的部分就是一个逻辑部分,那么我们就可以使用<div>标签作为容器。

举个栗子

<div>
    <div>
        <h2>热门学科</h2>
        <ul>
            <li>python</li>
            <li>web前端</li>
            <li>linux</li>
            <li>go</li>
        </ul>
    </div>
    <div>
        <h2>学科排名</h2>
        <ol>
            <li>web前端</li>
            <li>python</li>
            <li>go</li>
            <li>linux</li>
        </ol>
    </div>
</div>

会发现,现在编写代码呈现出来的效果与之前的效果没有太大的区别。那么下节课,我们可以给<div>来命名,将我们展现的独立的逻辑部分表示出来,使我们的网页更加有清晰感和层次感。

4.给div命名,使我们的逻辑更加清晰

在上小节中,我们把一些标签放进<div>中,划分出一个个独立的逻辑部分。为了使逻辑更加清晰,我们可以为这一个独立的逻辑部分设置一个名称,用id属性来为<div>提供唯一的名称,这个就好比是我们每个人都有一个身份证号,这个身份证号是唯一标识我们的身份的,也是必须唯一。

语法:

<div id='板块名字'>.....</div>

修改上节课代码:

<div id='courses'>
    <div id='hot_course'>
        <h2>热门学科</h2>
        <ul>
            <li>python</li>
            <li>web前端</li>
            <li>linux</li>
            <li>go</li>
        </ul>
    </div>
    <div id='sort_course'>
        <h2>学科排名</h2>
        <ol>
            <li>web前端</li>
            <li>python</li>
            <li>go</li>
            <li>linux</li>
        </ol>
    </div>
</div>

上述代码可以很明显的看出,热门学科学科排名都属于courses的。并且热门学科学科排名分别用id属性值hot_coursesort_course来表现各自独立的逻辑部分,使得逻辑部分更加有层次感。

5.学习table标签,认识网页中的表格

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

产品名称品牌总量入库时间
电视机小米1002018-09
音响小米2002018-08
电冰箱海尔1892018-12

首先我们观察一下上述表格,我们会发现表格是由行组成,行的出现,才使得列有了存在。此是4行4列的表格

代码如下:

<table>
    <tr>
        <th>产品名称</th>
        <th>品牌</th>
        <th>总量</th>
        <th>入库时间</th>
    </tr>
    <tr>
        <td>电视机</td>
        <td>小米</td>
        <td>100</td>
        <td>2018-09</td>
    </tr>
    <tr>
        <td>音响</td>
        <td>小米</td>
        <td>200</td>
        <td>2018-08</td>
    </tr>
    <tr>
        <td>电冰箱</td>
        <td>海尔</td>s
        <td>189</td>
        <td>2018-12</td>
    </tr>
</table>

创建表格的四个元素:

table、tr、th、td

  1. <tabel>...</table>:整个表格以<table>标记开始、</table> 标记结束。
  2. <tr>...</tr>:表格的一行,那么以为着有几个tr,表格就有几行。
  3. <td>...</td>:表格的一个单元格,一行中包含几对<td></td>,说明一行中就有几列。
  4. <th></th>:表格的头部的一个单元格,表格表头
  5. 表格中列的个数,取决于一行中数据单元格的个数

效果展示:

总结:

  1. table表格在没有添加css样式之前,在浏览器中显示是没有表格线的
  2. 表头,也就是th标签中的文本默认为粗体并且居中显示
6.给<table>添加border属性,为表格添加边框

table表格在没有添加css样式之前,是没有边框的。我们可以给<table>添加一个border属性,并且设置该值为1.

语法:

<table border='1'>....</table>

效果展示:

如果想实现很细的表格边线,

<table cellspacing='0' border='1'>......</table>

7.caption标签,为表格添加标题

上述的表格我们还需要添加一些标签进行优化,可以添加标题

代码如下:

<table border="1" cellspacing='0'>
    <caption>商品清单</caption>
    <tr>
        <th>产品名称</th>
        <th>品牌</th>
        <th>总量</th>
        <th>入库时间</th>
    </tr>
    <tr>
        <td>电视机</td>
        <td>小米</td>
        <td>100</td>
        <td>2018-09</td>
    </tr>
    <tr>
        <td>音响</td>
        <td>小米</td>
        <td>200</td>
        <td>2018-08</td>
    </tr>
    <tr>
        <td>电冰箱</td>
        <td>海尔</td>
        <td>189</td>
        <td>2018-12</td>
    </tr>
</table>

标题

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

语法

<table>
    <caption>标题文本</caption>
    <tr>
        <td></td>
        <td></td></tr></table>
8.横向合并、纵向合并单元格

我们上节课的表格,只是我们普通的表格,那么如果我们要想让单元格和单元格发生点什么?比如横向合并或者纵向合并,那么就得借助colspanrowspan两个属性。

先看横向合并

比如:

那么有此图可以看出。原来表格中第一行中姓名、年龄这两个单元格,我们要对他们横向合并成一个单元格,才能实现我们的效果。

代码如下:

<table border="1" cellspacing="0">
    <caption>横向合并单元格</caption>
    <!--colspan中必须指定要合并的列数目,是两列还是三列等等-->
    <tr>
        <th colspan="2">姓名和年龄</th>
        <th>电话</th>
    </tr>
    <tr>
        <td>Jack</td>
        <td>24</td>
        <td>1351234567</td>
    </tr>
    <tr>
        <td>Tom</td>
        <td>22</td>
        <td>1351234567</td>
    </tr>
    <tr>
        <td>Rose</td>
        <td>22</td>
        <td>1351234567</td>
    </tr>
    <tr>
        <td>张三</td>
        <td>25</td>
        <td>1351234567</td>
    </tr>
</table>

同理,纵向合并是一个原理的。

比如:

代码如下:

<table border="1" cellspacing="0">
    <caption>纵向合并单元格</caption>
    <tr>
        <th>班级</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>电话</th>
    </tr>
    <tr>
        <td rowspan="2">601班</td>
        <td>Jack</td>
        <td>24</td>
        <td>1351234567</td>
    </tr>
    <tr>
        <td>Tom</td>
        <td>22</td>
        <td>1351234567</td>
    </tr>
    <!--rowspan中必须指定要合并的列数目,是两行还是三行等等-->
    <tr>
        <td rowspan="3">602班</td>
        <td>Rose</td>
        <td>22</td>
        <td>1351234567</td>
    </tr>
    <tr>
        <td>张三</td>
        <td>25</td>
        <td>1351234567</td>
    </tr>
    <tr>
        <td>李四</td>
        <td>25</td>
        <td>1351234567</td>
    </tr>
</table>