• html概述


    介绍

    html,hypertext markup language超文本标记语言。

    通过标签组织文本、图片等多种资源在内的关系。

    html是标记语言而非编程语言,没有编程语言所共有的特征,数据类型、运算符合控制结构等。

    结构与文件

    基本结构

    <!doctype html>
    <html>
    <head></head>
    <body></body>
    </html>
    

    文件

    html一般保存为后缀名为.html的文件。也可以写作.htm。

    除了静态文件,html代码还可以保存在动态文件中,比如.php,.jsp,.aspx等。也可以是动态接口直接输出。

    在某些应用中,存在直接使用html语法来描述数据关系和显示以及事件。

    版本及声明

    html经历了多个版本的迭代。各个版本之间存在差异,新版本会增加标签、增加标签的属性和事件,也会弃用某些标签,以及标签的属性或事件。

    html的解析依靠浏览器完成,浏览器一般会同时支持多个版本,通过在html中对使用的版本声明,可以准确解析。

    版本 发布时间
    HTML 1991
    HTML+ 1993
    HTML 2.0 1995
    HTML 3.2 1997
    HTML 4.01 1999
    XHTML 1.0 2000
    HTML5 2012
    XHTML5 2013

    关于各版本的声明,参考:https://www.runoob.com/tags/tag-doctype.html

    语法

    注释

    <!--注释-->
    

    ie声明

    目前不推荐用户使用ie浏览器,小型网站开发过程中也不考虑对ie的兼容。

    但是大型站点会考虑普适性,某些早期的网站基于ie开发,以及某些网站面向的ie浏览器用户。

    存在对ie兼容性技术,通过ie声明网页在ie浏览器中时特殊代码。

    <!--[if IE]>所有的IE可识别<![end if]-->
    <!--[if !IE]>除IE外都能识别<![end if]-->
    <!--[if lt IE6]>IE6以下版本可识别<![endif]-->
    <!--[if lte IE6]>IE6以及IE6以下版本可识别<![endif]-->
    <!--[if gt IE6]>IE6以上版本可识别<![endif]-->
    <!--[if gte IE6]IE6以及IE6以上版本可识别<![endif]-->
    
    !: 代表不等于;
    lt: less than,小于;
    lte: less than or equal to,小于或等于;
    gt: greater than,大于
    gte: greater than or equal to,大于或等于
    
    

    基础语法

    1、html通过标签进行描述

    2、标签分为成对标签和单体标签,某种程度上来讲,普通文本、注释以及ie声明也可以看做是特殊标签。

    3、成对标签由开始标签、结束标签和标签之间的内容组成。
    单体标签只有一个开始标签,单体标签标准的结束是/>

    4、开始标签具有标签名称、属性和事件,存在checked这样的直接使用的属性。

    5、标签之间的关系主要是嵌套和并列。只能是成对标签嵌套单体标签或成对标签。

    6、大小写敏感

    • 标签名、属性名和事件名,以及版本声明大小写不敏感,甚至可以大小写混杂。
    • 事件内容和标签内容是大小写敏感的。
    • 属性值是否大小写敏感需要区分情况。比如伪协议javascript是大小写不敏感,javascript之后的js代码是大小写敏感,而value属性的值是大小写敏感,style属性的值是大小写不敏感的。

    7、引号

    标准的,属性值和事件值使用双引号包围,也可以使用单引号,但是不能是反引号。

    如果属性值或事件值不包含空白符,可以不用引号。

    8、空白符

    空白符一般指空格、换行符,在html中效果相同。

    • 开始标签的<与标签名之间不能有空白符
    • 结束标签的<与/之间不能有空白符
    • 开始标签的标签名、属性值对、事件值对之间通过空白符间隔
    • 开始标签的标签名、属性值对、事件值对之间可以使用字符/替代空白符起到间隔作用,但是相邻的属性值或者事件值必须加引号

    解析与缺省

    浏览器具备强大的补全功能,或者说兼容性,当html不规范或者错误时,仍然可以进行解析。

    1、单体标签,可以不使用/>,而仅是>结尾

    2、标签解析规则

    (1)从前往后解析
    (2)普通文本,不具备任何特殊效果,相邻的普通文本可以视作一个普通文本结构,作为上层嵌套标签的内容使用。
    (3)<开始,紧邻的字符非空白符,开启标签解析。
    (4)<开始,紧邻!--,判定开启注释功能,匹配相邻的下一个-->结构。如果没有-->关闭注释,则将其后所有内容视为注释内容。浏览器在末尾自动补全
    (5)<开始,紧邻非空白符,也不是注释结构或/,则判定是一个开始标签,然后解析属性值对和事件值对。
    (6)属性值或事件值使用单引号或双引号开始,则必须向后匹配有效的单引号或双引号才算结束该属性或事件。
    属性值或事件值未使用单引号或双引号开始,则必须向后匹配有效的空白符或>才算结束该属性或事件。
    (7)如果是成对标签,开始标签解析后,并不会立即匹配其结束标签,而是继续向后,将所有可解析标签解析完成后,对于开始标签匹配相邻的结束标签,如果不符合嵌套规则或者说没有合适的结束标签,则会在允许的最大嵌套范围内补全结束标签。

    (8)嵌套规则:

    • 一般,行内元素只能嵌套行内元素,块级元素可以嵌套块级元素和行内元素
    • 某些元素不允许嵌套其他元素,比如textarea、title,以及script和style等
    • 某些元素不允许嵌套本级元素,比如p和h

    上述标签解析规则纯属自行实验摸索总结,也存在一定的分析,可能存在错误或描述不准确,后续待补充和修正。主要对理解嵌套错误和代码不规范时的补全及处理有所帮助。

    其他

    更多html知识,查看他篇章

  • 相关阅读:
    HDU ACM 1392 Surround the Trees-&gt;凸包
    JMeter使用记录1 -- JDBC測试
    Html学习笔记4
    c++使用mysql的api连接相关问题
    [Angularjs]ng-select和ng-options
    mysql之字符串操作
    mysql之日期函数
    [sharepoint]Rest api相关知识(转)
    [工具类]泛型集合转换为DataTable
    C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限
  • 原文地址:https://www.cnblogs.com/heibaimao123/p/16251264.html
Copyright © 2020-2023  润新知