首页 > 代码库 > HTML的正确入门姿势——基本结构与基本标签

HTML的正确入门姿势——基本结构与基本标签

一、什么是HTML

    HTML是超文本标签语言,即网页的源码。而浏览器就是翻译解释HTML源码的工具。

二、HTML文档的结构

    HTML文档主要包括三大部分:文档声明部分、<head>头部部分、<body>主体部分。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>我的第一个网页</title>
    </head>
    <body>
    </body>
</html>

<!--
↑文档类型声明:让浏览器按照html5的标准对代码进行解释与执行。
↑文档类型声明必不可少,而且,必须放在文档最上方。
↑如果不写文档类型声明,浏览器会默认按照兼容模式运行,但可能会出现不明bug。
-->

三、HTML的基本标签

1.<head>头部部分

<!--
↑head中主要放关于网页设置的相关语句。
-->


1.1meta标签

<meta charset="utf-8" />

<!--
↑设置网页的字符集编码格式:
GB2312:国标码。简体中文的编码格式。
GBK:扩展的国标码。比国标吗多了更多的编码格式。
utf-8;万国码。可以兼容绝大多数国家的语言。

html4.01之前,声明字符集编码的格式:<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

-->

<meta name="keywords" content="杰瑞教育,html5,Web开发"/>

<!--
设置网页关键字:
name="keywords"表示当前语句用于设置网页关键字
content=""表示网页的关键字内容。多个关键字之间用英文逗号分隔。
-->

<meta name="description" content="这是我在杰瑞开发的第一个网页。我真厉害!!!!!"/>

<!--
设置网页描述:
name="description" 表示当前语句用于设置网页描述
content="" 表示网页的描述内容。
网页的描述,在搜索引擎中搜索网站时,标题下面的一段文字,就是网页的描述内容。
-->


1.2title标签

<title>杰瑞首页</title>

<!--
↓网页的标题,也就是网页选项卡上的文字。
-->


1.3link标签

链接网页与其他文件。

下面举个栗子:链接小图标

<link rel="icon" href="img/icon.PNG"/>

2.<body>主体部分

<!--
body中的内容,会显示在浏览器的展示区域中。
-->


2.1 标签的分类

HTML标签,分为“块级标签”和“行级标签”。

【块级标签和行级标签的区别】

1、块级标签自动换行,前后隔一行;
行级标签不会自动换行,从左往右依次显示
2、块级标签的宽度默认是百分之百,行级标签的宽度由文字内容撑开;
3、块级标签可以设置宽度、高度、边距等属性
行级标签不能设置上述属性

从写法上,HTML标签分为“成对标签”和“自闭合标签(空标签)”
成对标签:成对出现,有开始标签,必须有结束标签,内容包裹在两个标签之间。例如:<h1></h1> <p></p> <title></title>
自闭合标签/空标签:只有一个标签,用/表示标签的自动闭合(/可以省略)。例如<hr /> <link /> <meta />


2.2 常见的块级标签

1、h标签:标题标签,默认加粗,h1最大,h6最小

2、hr标签:水平线标签

3、br标签:换行标签,在代码中敲回车,在网页中并没有作用,必须使用<br>断行。

4、p标签:段落标签,表示网页中的一段文字

5、blockquote标签:引用标签,表示标签中的文字是应用自其他网站的内容。浏览器默认显示效果:整段向后缩进

6、cite:表示引用内容的来源,常写引用的网址URL。

7、pre标签:预格式标签,与p标签不同的是,pre标签会保留代码中的空格和回车,在网页中直接显示。最常的作用,是在网页中显示代码段,保留代码段格式。

8、div分区标签,用于配合css使用。将网页划分为块,可以包裹各种标签。<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title>HTML基本标签</title>
    </head>
    
    <body>
                <h1>我真帅!</h1>
        <h2>我真帅!</h2>
        <h3>我真帅!</h3>
        <h4>我真帅!</h4>
        <h5>我真帅!</h5>
        <h6>我真帅!</h6>


                <hr/>


                <p>这是一个段落。这是一个段落。<br />这是一个段落。这
                    是一个段落。</p>
        <p>这是一个段落。这是一个段落。这是一个段落。这是一个段
                    落。</p>


                <blockquote cite="www.jredu100.com">
                       我是个帅哥 !
                </blockquote>  


                <pre>
            预
            格
            式
            标
            签</pre>


     
<div style="width:100%;height:20px;background-color: red;">
    这是div里面的文字
</div>


2.3 基于布局的块级标签

1、有序列表ol: order list。一个有序列表由多个li组成

<ol>
    <li>第一项</li>
    <li>第二项</li>
    <li>第三项</li>
</ol>

2、无序列表ul: unorder list

<ul>
                <li>第一项</li>
                <li>第二项</li>
                <li>第三项</li>
            </ul>

3、定义列表dl: difine list。

定义列表包含两部分:
<dt></dt>:定义列表的标题,标题顶格显示,一般一个定义列表只有一个标题
<dd></dd>:定义列表的描述项,相对于标题向后缩进显示,一个标题可以有多个描述项。

<dl>
    <dt>定义列表的标题</dt>
    <dd>定义列表的描述项1</dd>
    <dd>定义列表的描述项2</dd>
    <dd>定义列表的描述项3</dd>
</dl>

2.4 了解:组合标签figure

包含两部分:
img 一张图片
figcaption: 图片的标题,在图片正下方显示。

<figure>
    <img src="img/icon.PNG" />
    <figcaption>图片的标题</figcaption>
</figure>

2.5 常用的行级标签

1、span标签:用于包裹行内的文字。常配合css使用修改文字样式。

↓栗子:“帅”字颜色变红,字体变48像素

我真<span style="color: red;font-size: 48px;"></span>!!!

2、em/strong/i/b 区别

1、em和i都能倾斜,strong和b都能加粗。但是,em和strong多了一层强调的含义。
(强调的作用,可以让搜索引擎快速的抓取网页的重点部分。可以实现代码的语义化。)
2、em和strong都有强调的作用,但是em是倾斜,strong是加粗,而且strong的强调程度要比em更高。

<em>em标签,倾斜+强调</em>
<strong>strong标签,加粗+强调</strong>
<i>i标签,倾斜</i>
<b>b标签,加粗</b>
<s>删除线</s>
 <u>u标签,下划线</u>

常见引用标签
常见的引用标签有:blockquoye、q、cite
区别:
1、显示效果上:blockquote整段缩进、q加引号、cite倾斜
2、从功能上:blockquote用于引用一整段内容,是块级标签。q引用一句话,是行级标签。cite常用于引用作品名、书画名。

 

3、img图片标签

①、src属性:表示图片所在的路径。
  [路径的表示方式]
  a网络上的图片地址。不建议使用。 使用http://协议
  b可以使用图片的绝对路径。仅供了解。使用file://协议。严禁使用。因为网页使用http协议,无法打开file://协议的文件
    绝对路径写法:file:///盘符:/文件路径
  c使用相对路径。推荐使用的唯一方式。
    a.图片在当前文件的下一层,“文件夹名/图片名(带后缀)”
    b.图片与当前文件在同一层,直接写“图片名”。
    c.图片在当前文件的上一层,“../图片名”。
    注意:图片必须包含在项目里面,不能退出项目根目录
②、width、height(宽度、高度)属性。
③、title:鼠标指上时显示的文字。
④、alt:图片无法加载时显示的文字,省略alt将默认显示title内容。
⑤、align:图片周围的文字,相对于图片的排列方式:
  top:文字居上
  center:文字居中
  bottom:文字居底

<img src="img/TX.JPG" width="100" height="100" title="鼠标指上时显示的文字" alt="" align="center"/>

4、a标签:超链接

a、href属性:超链接跳转的地址。可以是网页链接,也可以是本地html文件的相对路径。
b、target属性:超链接新页面打开的位置。
  _self在当前页面打开(默认) _blank在新页面打开
c、title属性:鼠标指在超链接上显示的文字。

【功能性超链接】
a、给指定邮箱发送邮件。mailto://协议。写法:mailto://邮箱地址
   eg:<a href="mailto://983364230@qq.com">点击给帅哥发邮件!</a>
b、tencent:与指定QQ聊天。tencent://协议。写法:tencent://message/?uin=QQ号码
  eg:<a href="tencent://message/?uin=983364230">与帅哥聊天</a>
c、锚链接:点击超链接可以跳转到页面的指定位置(锚点)
  ①在页面的指定位置定义一个锚点:<a name="top"></a>
  ②将超链接的href属性,改为“#锚点名称”:<a href="http://www.mamicode.com/#top">跳转顶部</a>
  ③跳转到其他页面锚点的方式:<a href="http://www.mamicode.com/其他页面地址.html#锚点名称">跳转到其他页面指定位置</a>

 <a href="#top" target="_blank" title="百度">这是一个超链接</a>

5、字体大一号和小一号,已淘汰。修改字体统一使用css

<small>小一号字体</small>
 <big>大一号字体</big>

 

【其他行级标签,了解即可】
s标签:带删除线
u标签:带下划线
dfn标签:定义专业术语
abbr标签:专业术语缩写词
code:提示搜索引擎当前为一段计算机代码,但是不会保留代码格式,需要配合pre标签共同使用。pre包含code
var:声明变量
bdo:定义文本显示方向,有一个重要属性:dir, ltr从左往右 rtl从右往左
kbd:表示需要用户输入的文字
sub:下标
sup:上标
time:表示时间

        <u>u标签带下划线</u> 
        <span style="text-decoration: underline;">css实现下划线</span>
        
        <s>s标签带删除线</s>
        <span style="text-decoration: line-through;">css实现删除线</span>
        
        我们正在学习<dfn>HTML5</dfn>,简称为<abbr>H5</abbr><pre>
        <code>
jsLoader({
    name : ‘iplookup‘,
    url : ‘http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js‘
});
        </code>
        </pre>
        
        <var>x</var>+<var>y</var>=1
        
        <bdo dir="rtl">我真帅</bdo>
        
        请输入“<kbd>Esc</kbd>”退出系统。
        
        H<sub>2</sub>O   X<sup>2</sup>
        
        现在是<time>16:10</time>                

 


 

【w3c倡导的web结构】
1、内容与表现分离。html与css分离
2、内容与行为分离。html与javascript分离
3、html代码,必须要实现语义化

【w3c的规范】
1、标签名和属性名必须小写
2、html标签必须关闭
3、属性值必须用引号括起来
4、标签必须正确嵌套
①嵌套的标签,不能发生交叉
②块级标签可以包裹行级,行级标签不能包裹块级;p标签不能包裹p标签等...


 

2.6 表格

表格table标签
表格中的一行,用tr表示;
一行中的每个单元格,用td表示;
首行的表头中每个单元格用th表示,th默认文字会加粗,居中。

【表格中的各种属性】
1、border:给表格的每个td和整个table加边框。如果border的值>1,则只有最外层边框加粗,td上的边框不变。

2、cellspacing:设置单元格与单元格之间的间距。
  cellspacing="0"可以设置边框之间的间距为0,但是相邻的边框不会合并,而是显示两条线的宽度。
[设置表格边框合并]
可以使用css设置:style="border-collapse: collapse;"
设置边框合并以后,cellspacing属性将会失效。

3、cellpadding:单元格内边距,单元格中文字与边框之间的距离。

4、width/height:表格的宽度 /高度

5、align:设置表格在浏览器中居左、居中、居右

6、Bgcolor:表格背景色
  bordercolor:表格的边框颜色
  background:表格背景图。背景色和背景图同时存在,背景图生效。

【表格的行列属性】
作用于tr或td上的属性

1、width/height:宽度/高度

2、bgcolor:背景色
当表格的属性与行列的属性发生冲突时,优先级采用“近者优先”的原则:table<tr<td

3、align:设置表格中的文字水平对齐方式(right、center、left)
Valign:设置表格中的文字垂直对齐方式(top、center、bottom)

【注意】当表格属性与行列属性相冲突时,以行列属性为准
                         (近者优先!!!)
table中的align控制表格在整个浏览器中的显示位置!
单元格中的align控制其中文字在单元格中的对齐方式!
表格的align属性并不影响单元格内文字的水平对齐方式!
tr的align属性可以控制一行中所有单元格的水平对齐方式!

【表格的跨行与跨列】
1、跨列:colspan="n" 如果某个单元格跨n列,择该单元格右侧n-1个td就不需要了。
2、跨行:rowspan="n" 如果某个单元格跨n行,择该单元格下方n-1个td就不需要了。

 

 

代码如下:

    <table border="1"; cellspacing="0"; style="border-collapse: collapse;" cellpadding="10"
            width="500"; height="400"; align="center"; Bbgcolor="yellow"; bordercolor="red"; 
            background="img/TX.JPG"; >
            
            <tr bgcolor="red">
                <th width="300"; bgcolor="cyan"; align="right"; valign="top"; rowspan="3">1-1</th>
                <th colspan="3">1-2</th>
                
            </tr>
            <tr>
                
                <td>2-2</td>
                <td>2-3</td>
                <td>2-4</td>
            </tr>
            <tr>
                <td>3-2</td>
                <td>3-3</td>
                <td>3-4</td>
            </tr>
        </table>

【表格的结构化】
完整的表格结构,包括
caption:表格的标题,无论caption标签放在表格的第几行,表格标题永远在表格的正上方居中
thead:表格的表头部分。永远在表格最上部
tbody:表格的身体部分。永远在表格的thead之下,tfoot之上
tfoot:表格的尾部。永远在表格的最下部。

表格的直列化:
表格有几列,就可以在表格的最上方写几个<col />标签,每个<col />就对应着第几列,可以对<col />标签修改样式、
添加name等属性,表示这一列的所有td同步修改;
如果,需要对多列修改共同样式,可以使用<colgroup></colgroup>包裹多个<col />

 

代码如下:

     <table>
            <col style="background-color: red;"/>
            <colgroup style="background-color: blue;"/>
                <col />
                <col />
            <caption>表格的标题</caption>
            <thead>
                <tr>
                    <th>序号</th>
                    <th>姓名</th>
                    <th>性别</th>
                </tr>
            </thead>
            
            <tbody>
                <tr>
                    <td>1</td>
                    <td>张三</td>
                    <td></td>
                </tr>
                <tr>
                    <td>2</td>
                    <td>李四</td>
                    <td></td>
                </tr>
                <tr>
                    <td>3</td>
                    <td>王二</td>
                    <td>不明</td>
                </tr>
            </tbody>
            
            <tfoot>
                <tr>
                    <td>合计</td>
                    <td></td>
                    <td>3</td>
                </tr>
            </tfoot>
        </table>

 

2.7 表单

【form表单】
1、form表单有两个重要的属性
  action:表示将表单提交给哪个服务器地址。
  method:表单提交数据的方式,可选值有get、post两种。

[get和post的区别]
  ①get使用url传递数据,所有内容在地址栏可见,不安全。
      post的数据无法在地址栏看到,较安全。
  ②get传递的数据量有限,而且只能传递纯文字内容;
           post可以传递大量数据,并且可以传递图片、视频等文件。
  ③get的传输速度要比post快。

[get传递数据的URL格式]
http://原来的地址.html?name1=value1&name2=value2
比如:http://127.0.0.1:8020/0595.html?username=123
所以,input使用时,name属性必不可少,缺少name,将导致该输入框的数据不向后台传递。

2、input的常用属性:
  ①type:表示当前输入框是何种类型的输入框;
  ②name:给输入框起别名。向后台传递时,使用name=value的形式传递。

  ③value:当前input的默认值;
  ④placeholder:输入框的提示内容,当输入框有value时提示内容消失。

  ⑤hidden:隐藏当前输入框。可以写为hidden="hidden",也可以省略属性值,只写<input type="text" hidden>
    隐藏的输入框依然可以向后台传递数据
  ⑥disabled:禁用当前输入框。可以显示,不能使用。
    被禁用的输入框内容,将不能向后台传递数据。
  ⑦ checked="checked" 设置单选/多选按钮,默认选中。
3、input的type类型:
  ①text:普通的文本框;
  ②password:密码框输入的内容,显示为小黑点。
  ③radio:单选按钮,单选按钮的value不能省略,这个value需要传到后台;
    单选按钮,凭借name是否相同,区分按钮是否为同一组。同一组按钮只能选中一个,name必须相同。
    checked="checked" 设置单选按钮,默认被选中。
  ④checkbox:多选按钮,其他与单选按钮相同。
  ⑤file:文件上传框。
    accept属性可以限制只能上传何种类型的文件。"*"表示可以接受所有文件,"image/*"表示只能接受图片。
    multiple="multiple" 设置可以上传多个文件。
  ⑥submit:表单提交按钮
  ⑦reset:表单重置按钮,点击将表单恢复为初始状态。
  ⑧image:图形提交按钮,src属性导入图片,与submit都具有提交表单的作用。
  ⑨button:显示为按钮形状,但是没有任何作用。
  ⑩hidden:隐藏的输入框,与 普通输入框+hidden="hidden" 的作用相同。
4、select 下拉选择区块
  ①select里面的每一项,用<option></option>标签表示;
  ②name属性,需要写到select标签上;
  ③option标签如果有value属性,择向后台传递的将是value属性的值,
    如果没有value属性,则传递的是<option></option>标签之间的文字。
  ④option添加属性中,selected="selected"设置选中默认项
  ⑤select添加属性multiple="multiple",设置当前下拉控件可以多选。
  ⑥option添加属性title,表示鼠标指上后的文字。
  ⑦select可以使用<optgroup></optgroup>标签对选项进行分组,用label属性显示分组名

              <select name="city">
                            <optgroup label="沿海">
                                <option value="123">青岛</option>
                                <option selected="selected">烟台</option>
                            </optgroup>
                            <optgroup label="内地">
                                <option title="济南">济南</option>
                                <option>淄博</option>
                            </optgroup>    
                        </select>

 


5、textarea 文本域
  ①文本域大小控制:
    可以用文本域属性cols="20"(宽度多少字符) rows="20"(高度等于多少行)
    可以使用css样式style="width: 200px; height: 300px;"
  ②设置文本域大小不能拖动 style="resize:none;"
  ③设置文本域为只读模式,不能修改
    <textarea readnoly="readonly"></textarea>
  ④文字超出区域处理:
    使用style="overflow: xx"样式,可以设置文字超出区域的显示的方式:
    >>>overflow:hidden; 超出区域的文字隐藏不显示;
    >>>overflow: scroll:无论文字多少,都会显示水平垂直滚动条;
    >>>overflow: auto:自动,默认效果。文字多显示滚动条,文字少不显示滚动条
    >>>可以使用overflow-x和overflow-y单独修改两个方向的滚动条。
    overflow-x: scroll;overflow-y: hidden;

form表单 代码如下:

    <form action="" method="get" id="form1">
            <table>
                <tr>
                    <td>用户名</td>
                    <td>
                        <input type="text" name="username"  value="sdg"
                             disabled/>
                        <input type="text" name="username"  value="sdg"
                             hidden="hidden"/>
                        
                    </td>
                </tr>
                <tr>
                    <td>密码</td>
                    <td>
                        <input type="password" name="password" value="" placeholder="请输入密码"/>
                    </td>
                </tr>
                <tr>
                    <td>性别</td>
                    <td>
                        <input type="radio" name="sex" value="男" /><input type="radio" name="sex" value="女" /><input type="radio" name="sex" value="不明" checked="checked" />不明
                    </td>
                </tr>
                <tr>
                    <td>兴趣</td>
                    <td>
                        <input type="checkbox" name="hobby" value="吃" /><input type="checkbox" name="hobby" value="喝" /><input type="checkbox" name="hobby" value="玩" /><input type="checkbox" name="hobby" value="乐" /></td>
                </tr>
                <tr>
                    <td>身份证</td>
                    <td>
                        <input type="file" name="card" accept="image/*" multiple="multiple"/>
                    </td>
                </tr>
                <tr>
                    <td>城市</td>
                    <td>
                        <select name="city">
                            <optgroup label="沿海">
                                <option value="123">青岛</option>
                                <option selected="selected">烟台</option>
                            </optgroup>
                            <optgroup label="内地">
                                <option title="济南">济南</option>
                                <option>淄博</option>
                            </optgroup>    
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>阅读服务协议:</td>
                </tr>
                <tr>
                    <td colspan="2">
                        <textarea style="width: 300px; height: 200px; resize: none; overflow: scroll;" 
                            readonly="readonly">这是一份你必须同意的协议</textarea>
                    </td>
                </tr>
                <tr>                    
                    <td>
                        <input type="submit" value="注册"/>
                    </td>
                    <td>
                        <input type="reset"  name="重置"/>
                    </td>
                </tr>
                <tr>                    
                    <td>
                        <input type="image" src="img/icon.PNG"/>
                    </td>
                    <td>
                        <input type="button"  value="一个并没有什么卵用的按钮"/>
                        
                    </td>
                </tr>
            </table>
        </form>

【html5智能表单】
1、H5给我们提供了将form外的input与表单关联的方式。只需要给form表单起一个id,
  然后给表单外面的input添加form属性,指向这个id,就可以实现表单与input的绑定
  <form id="ff"></form>
  <input form="ff"/>
2\H5给我们新增了许多input的新的type类型
  range color date email url等
3、H5新增的input属性:
  ①form属性:关联指定表单的id
  ②placeholder:输入框的提示内容
  ③required="required" 表示必填
  ④autofocus: 指定输入框自动获得焦点
  ⑤autocomplete:可以设置是否开启自动提示完成功能,默认 为开启状态,
  设置为off表示关闭,设置为on表示打开
  可以为form标签设置autocomplete,控制表单所有输入框的自动提示功能。

HTML的正确入门姿势——基本结构与基本标签