30分钟,认识 html 本质

30分钟,认识 html 本质

  • html 是什么?
  • html 起源
  • html 发展
  • 标签分类
    • 空间占用方式
    • 布局
    • 文本修饰
    • 流媒体标签
  • 预定义符号 Symbols
  • 弃用的部分标签
  • 学习 html

html 是什么?

HTML的英文全称是 Hyper Text Markup Language,即超文本标记语言。HTML是由Web的发明者 Tim Berners-Lee和同事 Daniel W. Connolly于1990年创立的一种标记语言,它是标准通用化标记语言SGML的应用。

所谓标记语言就是使用各种标签,对文本内容修饰的语言。事实上,对于标签,我们应该是很熟悉的,在各种场景里都非常常见的。

比如,在超市里,熟食区,海鲜区,零食区,饮品区。

再比如,男的站左边,女的站右边。

这些,都是各种各样的标签,嗯,不过都是隐形的。

那么,对于 html 来说,也会有各种各样的标签,用来协助网页内的文本进行不同的排列布局。在 html 语言规范中,使用尖括号所包含的内容,且左尖括号后跟随英文开头的字符串,或斜杠/开头的字符串,就表示一个标准的 html 标签。比如 <b>粗体</b>,比如<i>斜体</i>,比如<u>下划线</u>

CSDN 文盲老顾的博客,https://blog.csdn.net/superwfei

html 起源

html 出现的时间并不长,是在 http 协议产生后,才跟随产生的,为了支持在文本传输过程中,保持文本格式而产生的一个标签语言集,而 html 的前身,可以向前追溯到 IBM 在 60 年代便开始研究的 GML(Generalized Markup Language,通用标记语言) 标签集。

在 http 协议开始使用,嗯,有人就偷懒,从 GML 中做了个子集,用来保持文本格式,经典的标签,比如 A(链接)为什么会默认具有下划线,而不是其他表现方式。。。。嗯,因为这是 IBM 工程师们的失误。

GML
IBM在20世纪60年代,创建了GML(Generalized Markup Language,通用标记语言),以在其出版系统内部实现这一需求。IBM使用GML来用单一类型的源文件维护书籍、报表以及其他文件。
SGML
SGML(Standard Generalized Markup Language)源于标记的重点应该是文档结构的想法。SGML融合过gencode的思想。SGML从IBM的GML演化而来,是第一个标准化的信息结构化技术。SGML成为了IBM内部格式化和维护合法文件的手段。SGML后来被扩展和修改,作为一种全面的信息标准以适应工业范围的广泛应用。但直到1986年,SGML才成为了ISO标准。尽管SGML的功能非常强大,但是由于它非常复杂,需要一大堆昂贵的软件配合运行,因而在很长一段时间都没有被推广。
HTML
1989年,欧洲粒子物理实验室(CERT)的研究员 Tim Berners-Lee 和 Anders Berglund 两人创建了一种基于标记的语言HTML,为给Internet上共享的文章做标记。HTML可以看作是SGML的简化的应用。但是HTML标签逐渐庞大,并且失去严谨性。

html 发展

任何事物的发展,都离不开时代的特征。html 同样如此。

在最早的时候,Http 刚刚出现的时候,html 中,对于流媒体的信息支持的非常非常少,仅仅有一个 img 标签,用来显示一些图片。而更多的标签,则是为了排版做支持的。

在这个时候,使用的最多的应该就是 p 段落标签,h1 - h7 标题标签,以及 table 表格标签。当然,还有为了保持文本格式的 pre 标签,以及文字修饰标签 font。

随着网络速度的提升,以及计算机性能的提升,html 也在慢慢的追加一些内容,比如流行一时的 mdi 音频,wav 音频。

当老顾开始接触到 html 的时候,已经是在97年之后的事情了,混到一个电脑培训班里,给小伙伴们讲解一个叫做 front page 的工具,嗯,就是一个 web 可视化开发工具。这个时候已经发展到 html 4.0 了,功能就已经很完善了。

比如,曾经霸占了所有浏览器的 flash 内容所使用的 embed 标签。比如可以引用动态控件的 object 标签。比如可以播放视频的 video 标签等等。

以及,现在发展到了 html5 ,各种各样的新标签。

标签分类

在各种标签中,左前括号后边跟随的英文开头的内容,称之为标签名,也叫做页面元素。每个页面元素,都会占用一定的页面空间。

空间占用方式

按照占用空间的方式,分为行内元素(inline),以及块级元素(block),没错,就是现在 css 所描述的那些。

在古老的时代,网络速度很慢,所以很多内容是不使用 css 的,所以标签就显得相对重要了。除了 pre、table、p、div 是默认的块级标签之外,其他标签都是行内标签。

布局

在没有引入 css 之前,html 本身能够完成的布局只有居左,居中,居右,除了特有的 center 是居中标签外,其他的布局方式,都只能通过标签的属性来进行设置。

没错,标签是可以带属性的,布局通常是使用 center 标签居中,pre 标签保持空格,以及属性 align=“left/center/right” 来进行设置。

在 css 引入后,html4新增了一个坐标布局(相对坐标布局及绝对坐标布局),以及 css3 引入的更好用的弹性布局(flex布局)

文本修饰

在 css 流行开之前,文本修饰只有少少的几样,加粗斜体删除线下划线算是独立的标签,还有一个重要的标签 font ,现在已经算是弃用了的。我们都是通过 font 来设置字体、颜色、字号,而现在,我们更习惯用 span 加样式的方式来进行修饰了。

以上这些元素,在 css 引入后,其实大多数存在可替代的情况,除了少少的几个,比如 img 图片(流媒体标签)、a链接(跳转)、iframe/frameset 框架(嵌入框架/结构框架)。

为什么说是可替代,那是因为,我们可以通过样式,来修改、设置任意标签的默认渲染效果,达到原有 html 指定标签的效果,比如边距、字号、行高、布局方式、占用空间等等。

流媒体标签

在网络越来越快,以及压缩算法越来越成熟的今天,各种各样的流媒体也大量的呈现在了网页之中,这少不了流媒体相关标签的支持。这些标签的实现方式,是基于浏览器调用相关的协议、算法进行实现的。

流媒体标签的特殊之处在于,你必须使用相关标签,才能调用相关的协议、算法,这些标签是不可替代的。

预定义符号 Symbols

html 除了有标签部分之外,还有一些预定义的符号,可以作为使用,比如尖括号就是一个很麻烦的东西,他是作为标签语法的一部分,如果想在页面显示尖括号怎么办?答案是通过预定义符号来描述,比如 &lt; 就是左尖括号。

老顾在这里列一下老顾已知的各种符号。

    public enum HtmlSymbols{// 由于int为c#保留字,所以&int;对应的枚举为INT,该特例需要在使用中处理Alpha = 'Α', Beta = 'Β', Gamma = 'Γ', Delta = 'Δ', Epsilon = 'Ε', Zeta = 'Ζ', Eta = 'Η', Theta = 'Θ',Iota = 'Ι', Kappa = 'Κ', Lambda = 'Λ', Mu = 'Μ', Nu = 'Ν', Xi = 'Ξ', Omicron = 'Ο', Pi = 'Π', Rho = 'Ρ',Sigma = 'Σ', Tau = 'Τ', Upsilon = 'Υ', Phi = 'Φ', Chi = 'Χ', Psi = 'Ψ', Omega = 'Ω',alpha = 'α', beta = 'β', gamma = 'γ', delta = 'δ', epsilon = 'ε', zeta = 'ζ', eta = 'η', theta = 'θ',iota = 'ι', kappa = 'κ', lambda = 'λ', mu = 'μ', nu = 'ν', xi = 'ξ', omicron = 'ο', pi = 'π', rho = 'ρ',sigmaf = 'ς', sigma = 'σ', tau = 'τ', upsilon = 'υ', phi = 'φ', chi = 'χ', psi = 'ψ', omega = 'ω',trade = '™', reg = '®', copy = '©', sect = '§', yen = '¥', pound = '£', euro = '€', spades = '♠', clubs = '♣', hearts = '♥', diams = '♦',nbsp = ' ', lt = '<', gt = '>', amp = '&', quot = '"', ldquo = '“', rdquo = '”', lsquo = '‘', rsquo = '’', hellip = '…', mdash = '—', middot = '·',ordf = 'ª', sup2 = '²', sup3 = '³', frac12 = '½', frac14 = '¼', frac34 = '¾', permil = '‰', bull = '•', prime = '′', Prime = '″', oline = '‾', frasl = '⁄',ordm = 'º', deg = '°', acute = '´', tilde = '˜', circ = 'ˆ', laquo = '«', raquo = '»', bdquo = '„', rsaquo = '›', lsaquo = '‹', sbquo = '‚', ndash = '–',ensp = ' ', emsp = ' ', thetasym = 'ϑ', upsih = 'ϒ', piv = 'ϖ', weierp = '℘', image = 'ℑ', real = 'ℜ', alefsym = 'ℵ', para = '¶',minus = '−', times = '×', divide = '÷', asymp = '≈', ne = '≠', equiv = '≡', le = '≤', ge = '≥', lowast = '∗', radic = '√', prod = '∏', sum = '∑',larr = '←', uarr = '↑', rarr = '→', darr = '↓', harr = '↔', crarr = '↵', lArr = '⇐', uArr = '⇑', rArr = '⇒', dArr = '⇓', hArr = '⇔', forall = '∀',part = '∂', exist = '∃', empty = '∅', nabla = '∇', isin = '∈', notin = '∉', ni = '∋', cedil = '¸',prop = '∝', infin = '∞', ang = '∠', and = '∧', or = '∨', cap = '∩', cup = '∪', INT = '∫', there4 = '∴', sim = '∼', cong = '≅',sub = '⊂', sup = '⊃', nsub = '⊄', sube = '⊆', supe = '⊇', oplus = '⊕', otimes = '⊗', perp = '⊥', sdot = '⋅',lceil = '⌈', rceil = '⌉', lfloor = '⌊', rfloor = '⌋', loz = '◊', iexcl = '¡', cent = '¢', curren = '¤', brvbar = '¦',uml = '¨', not = '¬', macr = '¯', plusmn = '±', micro = 'µ', iquest = '¿', dagger = '†', Dagger = '‡',}

使用符号就是在字符名前边加个 &,后边加个;,比如&empty; 就是 ∅了。

弃用的部分标签

现在由于 css 的大力发展,原来很多的标签已经没有了存在的必要了.。

比如 font 标签,现在已经见不到了。

比如 pre 布局,已经通过样式实现了。

比如下划线删除线,下标上标之类的,也都有自己的样式了,甚至给你搞出上划线来了。

学习 html

那么,该怎么学习 html 呢?相信看到前边这些内容,小伙伴应该有一定的领悟了。

按照老顾的说法,html 就是具有特定默认值,特定属性的一些元素修饰内容。而 html 文档呈现的内容,就是通过这些标签元素对文本修饰后,堆出来的文本堆罢了。

事实上,在理解了 html 的本质:文本修饰元素、引入流媒体、布局设置,这个内容之后,其实 html 大可不必专门去学。老顾之前说自己是在培训班学的 html ,通过 front page ,理解了他是标签修饰内容后,就再没专门看过 html 学习的内容,都是随随便便去 w3school 之类的网站上看看手册,找找有没有适用的标签就完事。写的多了,用的多了,自然标签名也就记住了。

嗯,古早时代,手册类书籍是比较常见的,不知道为什么现在的这类书籍越来越少了,都是各种花哨的什么入门到精通。。。。
在这里插入图片描述
有个手册,这种标签类语言,就可以轻松上手了啊,别花费太多时间去专门硬背这些,用多了,自然就熟练的记住了,如果碰到没见过的标签,则直接上手册里一查,就能理解的七七八八了。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8516.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot中RabbitMQ自动配置的介绍、原理和使用

Spring Boot中RabbitMQ自动配置的介绍、原理和使用 引言 RabbitMQ是一种高性能的消息队列系统&#xff0c;它支持多种消息协议和丰富的功能&#xff0c;如消息路由、消息确认、消息重试、死信队列等。在Spring Boot中&#xff0c;我们可以通过自动配置的方式来使用RabbitMQ。…

ICMP类型

ICMP&#xff08;Internet Control Message Protocol&#xff09;Internet控制报文协议。它是TCP/IP协议簇的一个子协议&#xff0c;用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户…

命令模式的学习与使用

1、命令模式的学习 当你想要将请求与实际执行操作的对象解耦时&#xff0c;可以使用命令模式。它将一个请求封装为一个对象&#xff0c;从而使你可以根据不同的请求将其参数化&#xff0c;将请求队列或日志请求&#xff0c;并支持可撤销的操作。   命令模式由以下几个核心角色…

Can’t connect to MySQL server on ‘localhost’ (10061)

标题:Can’t connect to MySQL server on ‘localhost’ (10061) 一种情况是&#xff0c;mysql服务没有开启&#xff0c; 解决方式&#xff1a;以管理员身份进入cmd&#xff0c;然后输入net start mysql&#xff0c;注意这里的mysql&#xff0c;指的是你的mysql服务的名称&am…

Vue + electron 构建桌面应用程序

文章目录 需求分析解决 需求 使用Vue.js构建桌面应用程序 分析 选择一个Vue.js框架&#xff1a;选择一个适合你的Vue.js框架。推荐使用Electron&#xff0c;因为它是最流行的桌面应用程序框架之一&#xff0c;而且与Vue.js非常兼容。还有其他框架&#xff0c;如 Proton Native…

【SCI/EI/CNKI录用案例】最快8天录用

生命科学类SCI 【期刊简介】IF&#xff1a;2.5-3.0&#xff0c;JCR2区&#xff0c;中科院3区 【检索情况】SCI 在检&#xff0c;正刊 【征稿领域】生物科学、环境科学、医学科学和健康科学方向相关研究均可 【截稿时间】仅剩10篇版面左右 录用案例&#xff1a;仅1个月13天录…

基于深度学习的高精度工人安全帽检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度工人安全帽检测识别系统可用于日常生活中或野外来检测与定位工人安全帽目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的工人安全帽目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用…

ThingsBoard IoT Gateway 专栏 分享 前言

最近有朋友询问tb-gateway相关的问题&#xff0c;于是抽业余时间查看了一下官方文档&#xff0c;并做了一些尝试和案例。接下来我会将这些分享给大家。这也是一个系列&#xff0c;将会和我的ThingsBoard专栏放在一起。 ThingsBoard IoT Gateway 能够帮助你将连接到传统和第三方…

idea中如何过滤某些文件不提交

文章目录 前言设置.gitignore文件解决方案 设置新的忽略文件具体步骤如下 常用过滤文件 前言 在开发过程中&#xff0c;经常会遇到一些文件是我们不想提交的内容。那么应该如何过滤掉&#xff1f;不去提交到我们的git仓库&#xff1f; 比如&#xff0c;我们常用的一些配置文件…

全新FinClip Studio 现已发布上线;正式支持多租户能力

FinClip 的使命是使您&#xff08;业务专家和开发人员&#xff09;能够通过小程序解决关键业务流程挑战&#xff0c;并完成数字化转型的相关操作。不妨让我们看看在本月的产品与市场发布亮点&#xff0c;看看是否有助于您实现目标。 产品方面的相关动向&#x1f447;&#x1f…

vue表单验证的时候提示 async-validator:‘‘xxx is not a string“

对vue不是很熟悉&#xff0c;在做vue开发的时候&#xff0c;遇到一个很奇怪的问题&#xff0c;输入框涉及到number类型的时候会提示 is not a string 这块的代码是这样的&#xff1a; v-decorator"[ fraction, { rules: [{ required: true, type: number, message: 请输入…

Spring Boot 中的 @RabbitListener 注解是什么,原理,如何使用

Spring Boot 中的 RabbitListener 注解是什么&#xff0c;原理&#xff0c;如何使用 在 RabbitMQ 中&#xff0c;消息的接收需要通过监听队列来实现。在 Spring Boot 应用程序中&#xff0c;可以使用 RabbitListener 注解来监听队列&#xff0c;并在接收到消息时执行指定的方法…