HTML的杂七杂八

214 阅读7分钟

基础要打牢,一周时间过了一遍html与css,分两次对了解到的知识做一个简单的总结。

HTML的起手式

首先,什么是HTML,搬用MDN上的解释:HyperText Markup Language,与我们熟悉的c/c++等不同,它不是编程语言,而是一种用来告诉浏览器如何组织页面的标记语言,由一系列的元素组成。
那么何谓元素:参加下图
image.png

标签+内容就组成了一个元素。至于标签,在接下来会详细介绍,在此之前,我们了解了HTML之后,就可以在诸如cscode等软件上开始写代码啦。

框架

当你打开vccode,新建一个html文件之后,输入!+tab就会出现如下的一个东东,即是我们编写的html的一个主体,前辈们也非常形象,包含了等部分,那么接下来就逐一介绍一下。

<!DOCTYPE html>
<html lang = "zh - CN">
<head>
    <meta charset = "UTF-8">
    <meta name = "viewport" content = "width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta http-equiv = "X - UA - Compatible" content = " IE = edge ">
    <title>内容</type>
</head>
<body>
    内容
</body>
</html>

解释

[引用自MDN](HTML 基础 - 学习 Web 开发 | MDN (mozilla.org))

  • <!DOCTYPE html> — 文档类型。混沌初分,HTML 尚在襁褓(大约是 1991/92 年)之时,DOCTYPE 用来链接一些 HTML 编写守则,比如自动查错之类。DOCTYPE 在当今作用有限,仅用于保证文档正常读取。现在知道这些就足够了。
  • <html></html> — <html> 元素。该元素包含整个页面的内容,也称作根元素。
  • <head></head> — <head> 元素。该元素的内容对用户不可见,其中包含例如页面描述、CSS 样式表和字符编码声明等。
  • <meta charset="utf-8"> — 该元素指定文档使用 UTF-8 字符编码 ,UTF-8 包括绝大多数人类已知语言的字符。基本上 UTF-8 可以处理任何文本内容,还可以避免以后出现某些问题,没有理由再选用其他编码。
  • <title></title> — <title> 元素。该元素设置页面的标题,显示在浏览器标签页上,也作为收藏网页的描述文字。
  • <body></body> — <body> 元素。该元素包含期望让用户在访问页面时看到的内容,包括文本、图像、视频、游戏、可播放的音轨或其他内容。

在上边提到的<head></head>标签所包裹的内容对用户不可见,在它其中包含css的样式,网页的标题(主要不要弄混和h1和title),以及一些元数据等。接下来我们就简单说一下元数据:

  • 首先是文档编码,一般使用通用的utf-8即可,这里的utf-8明明是解码方式,为什么要用charset即字符集呢?这涉及到一个遗留问题,就是在以前的解码方式和字符集的名字都是一样的,而utf却有8/16/32等,所以就只能这么叫了
  • 其次是大家可以注意到,元数据有的是以name和content组成的,其中name是指这个元数据的类型、信息,content则是指具体的内容,[打开一个大型的网站](淘宝网 - 淘!我喜欢 (taobao.com))开发模式下可以看到他们常用的元数据,在我们的简单demo中,可以使用淘宝的关于窗口的以下代码。
<meta name = "viewport" content = "width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">  

主要是限制屏幕的缩放

标签

标签用来告诉浏览器,如何处理这段代码。标签的内容就是浏览器所要渲染的、展示在网页上的内容。

  • 标签一般是成对出现,分为开始标签和结束标签,例如<header></header>,但也有部分只有一个,比如上边提到的<meta>
  • 标签不区分大小写,但为了代码美观,一般还是采用小写
  • 标签支持嵌套,这时候标签的闭合顺序就很关键,注意不要烦这种错误 <div><p>我爱中华</div></p>
    下边是一些常用标签

文本标签

  • 标题:<h1 - h6>   :自动加黑加粗,指标题,按数字,字号逐渐减小

  • 章节:<section>   :每一部分即是一个章节,如果需要第一章下边有个1.1节,那么就可以嵌套使用section

  • 文章:<article>

  • 段落:<p>   是一个块级元素,代表文章的一个段落(paragraph)。不仅是文本,任何想以段落显示的内容,比如图片和表单项,都可以放进p元素。

  • 头部:<header>   :顶部的东西

  • 脚部:<footer>     :底部的东西,比如常见的版权声明  ©

  • 主要内容:<main><main>是顶层标签,不能放置在<header>、<footer>、<article>、<aside>、<nav>等标签之中

  • 旁支内容:<aside>

  • 划分:<div>     是一个通用标签,表示一个区块(division),最常见用途就是提供 CSS 的钩子。它没有语义,如果网页需要一个块级元素容器,又没有其他合适的标签,就可以使用这个标签。所以经常出现div嵌套div的情况,可读性太差,所以尽量多使用有语义的标签。

  • <span> :与div类似的通用标签,但是是行内标签(即不会产生换行),不带有任何语义。它通常用作 CSS 样式的钩子,如果需要对某些行内内容指定样式,就可以把它们放置在<span>注: section、div、article的区别与联系(转载其他大佬的说法):

  • div:这个标签一直是我们见得最多、用得最多的标签。它本身无任何语义,用作布局以及样式化标签。

  • section:用作一段有专题性的内容,一般在它里面会带有标题。 section典型的应用场景应该是文章的章节、标签对话框中的标签页、或者论文中有编号的部分。

  • article:article是一个特殊的section标签,它比section具有更明确的语义, 它代表一个独立的、完整的相关内容块。

div、section、article,语义是从无到有,逐渐增强的。div无任何语义,仅仅用作样式化或者脚本化的标签,对于一段主题性的内容,则就适用section,而假如这段内容可以脱离上下文,作为完整的独立存在的一段内容,则就适用 article。 原则上来说,能使用article的时候,也是可以使用section的,但是实际上,假如使用article更合适,那么就不要使用section

图片引用自-粟稷-知乎 image.png

内容标签

  • <ol> + <li>  有序列表 reverse:逆序 start:指定开始的数字或字母等 type:顺序的类型,比如1234或者abcd
  • <ul> + <li>  无序列表
  • <dl> + <dt> + <dd>  dl:描述列表  dt:描述对象  dd:描述内容
  • <pre> : 是一个块级元素,表示保留原来的格式(preformatted),即浏览器会保留该标签内部原始的换行和空格。浏览器默认以等宽字体显示标签内容。
  • <hr>: 加分割线,尽量不用
  • <br>: 用来打断、换行,一般用来实现行的打断,如果需要分段,则需要使用css的样式。<wbr>是一个类似 效果标签,只不过是用来防止在不应该打断的地方打断,即一个主动一个被动
  • <a>: 用来加超链接
  • <em>: 语气上的强调,斜体显示
  • <strong>: 内容上的强调,浏览器会加粗
  • <code> :行内元素,输入等宽的代码,内联元素,分行可以用pre
  • <quote> : 引用       内联
  • <block> :块的引用    块级
  • <sub>和<sup> :数字的上下标
  • <var> :变量的引用

全局属性

属性可以定制元素的行为,不同的属性会导致元素有不同的行为。全局属性通俗来讲就是可以对所有元素使用的属性,不过可能有的元素加上没变化

  • class:给标签分类
  • contentditable:使得元素可以被编辑
  • hidden:使元素看不见
  • id:不到万不得已不使用id
  • style:元素样式
  • tabindex:利用tab键可以在元素间切换,tabindex = 1/2/3,按顺序切换,其中0是最后一个,-1是不被选中
  • title:鼠标悬停时可以显示所有内容 

注:

网道解释的挺好的 ​

引用