Html基础

  HTML(超文本标记语言)是网页使用的语言,定义了网页的结构和内容。浏览器访问网站,其实就是从服务器下载 HTML 代码,然后渲染出网页。

网页是什么?

  写网页时自己部署服务器环境,推荐使用Phpstudy,Phpstudy部署的服务器为W+A+M+P,

W-windows,A-apache,M-mysql,P-php。

  网页,是指网站中的任何一页面,通常是HTML(标准通用标记语言下的一个应用)格式(文件扩展名为html、或htm、或asp、或aspx、或php、或jsp等。浏览器的网页开发,涉及三种技术:HTML、CSS 和 JavaScript。HTML 语言定义网页的结构和内容,CSS 样式表定义网页的样式,JavaScript 语言定义网页与用户的互动行为。HTML 语言是网页开发的基础,CSS 和 JavaScript 都是基于 HTML 才能生效,即使没有这两者,HTML 本身也能使用,可以完成基本的内容展示。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <title>网页标题</title>
</head>
<body>
  <p>Hello World</p>
</body>
</html>

  浏览器右键的“查看源码”,可以展示当前网页的 HTML 源码,或者按ctrl+shift+i打开开发者工具,也可查看。运行结果:

Html中的网页标签

  标签用来告诉浏览器,如何处理这段代码。标签的内容就是浏览器所要渲染的、展示在网页上的内容。标签放在一对尖括号里面(比如<title>),大多数标签都是成对出现的,分成开始标签和结束标签,结束标签在标签名之前加斜杠(比如</title>)。

<!Doctype>

  网页的第一个标签通常是<!doctype>,表示文档类型,告诉浏览器如何解析网页。一般来说,只要像下面这样,简单声明doctypehtml即可。浏览器就会按照 HTML 5 的规则处理网页。       <!doctype html>有时,该标签采用完全大写的形式,以便区别于正常的 HTML 标签。因为<!doctype>本质上不是标签,更像一个处理指令。

<html>

 <html>标签是网页的顶层容器,即标签树结构的顶层节点,也称为根元素(root element),其他元素都是它的子元素。一个网页只能有一个<html>标签。

<html lang="zh-CN">

  该标签的lang属性,表示网页内容默认的语言。上面代码表示,网页是中文内容。如果是英文内容,zh-CN要改成en

<head>

<head>标签是一个容器标签,用于放置网页的元信息。它的内容不会出现在网页上,而是为网页渲染提供额外信息。

<!doctype html>
<html>
  <head>
    <title>网页标题</title>
  </head>
</html>

<head><html>的第一个子元素。如果网页不包含<head>,浏览器会自动创建一个。

<head>的子元素一般有下面七个,

  • <meta>:设置网页的元数据。

  • <link>:连接外部样式表。

  • <title>:设置网页标题。

  • <style>:放置内嵌的样式表。

  • <script>:引入脚本。

  • <noscript>:浏览器不支持脚本时,所要显示的内容。

  • <base>:设置网页内部相对 URL 的计算基准。

<meta>

  <meta>标签用于设置或说明网页的元数据,必须放在<head>里面。一个<meta>标签就是一项元数据,网页可以有多个<meta><meta>标签约定放在<head>内容的最前面。

不管什么样的网页,一般都可以放置以下两个<meta>标签。

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Page Title</title>
</head>

上面例子中,第一个<meta>标签表示网页采用 UTF-8 格式编码,第二个<meta>标签表示网页在手机端可以自动缩放,即自适应。

<meta>标签的属性,

(1)charset 属性

  <meta>标签的charset属性,用来指定网页的编码方式。该属性非常重要,如果设置得不正确,浏览器可能无法正确解码,就会显示乱码。

<meta charset="utf-8">

  上面代码声明,网页为 UTF-8 编码。虽然开发者可以使用其他的编码方式,但正确的做法几乎总是应该采用 UTF-8。 UTF-8为可变长的Unicode编码。网页中英文字符与汉字共同存在。一个英文字符占1个字节,而一个汉字占三个字节,而Unicode编码为定长,使英文字母也占三个字节,导致资源浪费。 这里声明的编码方式,应该与网页实际的编码方式一致,即声明了utf-8,网页就应该使用 UTF-8 编码保存。如果这里声明了utf-8,实际却是使用另一种编码(比如 GB2312),并不会导致浏览器的自动转码,网页可能会显示为乱码。

(2)name 属性,content 属性

 <meta>标签的name属性表示元数据的名字,content属性表示元数据的值。它们合在一起使用,就可以为网页指定一项元数据。

<head>
  <meta name="description" content="HTML 语言入门">
  <meta name="keywords" content="HTML,教程">
  <meta name="author" content="张三">
</head>

 上面代码包含了三个元数据:description是网页内容的描述,keywords是网页内容的关键字,author是网页作者。

(3)http-equiv 属性,content 属性

 <meta>标签的http-equiv属性用来覆盖 HTTP 回应的头信息字段,content属性是对应的字段内容。

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

上面代码可以覆盖 HTTP 回应的Content-Security-Policy字段。

<meta http-equiv="Content-Type" content="Type=text/html; charset=utf-8">
<meta http-equiv="refresh" content="30">
<meta http-equiv="refresh" content="30;URL='http://website.com'">

<title> 

 <title>标签用于指定网页的标题,会显示在浏览器窗口的标题栏。

<head>
  <title>网页标题</title>
</head>

 搜索引擎根据这个标签,显示每个网页的标题。它对于网页在搜索引擎的排序,有很大的影响,应该精心安排,反映网页的主题。<title>标签的内部,不能再放置其他标签,只能放置无格式的纯文本。

<body>

 <body>标签是一个容器标签,用于放置网页的主体内容。浏览器显示的页面内容,都放置在它的内部。它是<html>的第二个子元素,紧跟在<head>后面。

<html>
  <head>
    <title>网页标题</title>
  </head>
  <body>
    <p>hello world</p>
  </body>
</html>

空格和换行

 HTML 语言有自己的空格处理规则。标签内容的头部和尾部的空格,一律忽略不计。

<p>  hello world   </p>

 代码中,hello前面的空格和world后面的空格,浏览器一律忽略不计。

标签内容里面的多个连续空格(包含制表符\t),会被浏览器合并成一个。

<p>hello      world</p>

 代码中,helloworld之间有多个连续空格,浏览器会将它们合并成一个。网页渲染的结果是,helloworld之间只有一个空格。

 浏览器还会将文本里面的换行符(\n)和回车符(\r),替换成空格。

<p>hello
​
​
​
world
</p>

 代码中,helloworld之间有多个换行,浏览器会将它们替换成空格,然后再将多个空格合并成一个。网页渲染的结果是,helloworld之间有一个空格。

Html 中的链接标签

  链接(hyperlink)是互联网的核心。它允许用户在页面上,从一个网址跳转到另一个网址,从而把所有资源联系在一起。URL 是链接指向的地址。链接不仅可以指向另一个网页,也可以指向文本、图像、文件等资源。可以这样说,所有互联网上的资源,都可以通过链接访问。

<a>

  链接通过<a>标签表示,用户点击后,浏览器会跳转到指定的网址。下面就是一个链接:

<a href="https://wikipedia.org/">维基百科</a>

  上面代码就定义了一个超级链接。浏览器显示“维基百科”,文字下面默认会有下划线,表示这是一个链接。用户点击后,浏览器跳转到href属性指定的网址。

<a>标签内部不仅可以放置文字,也可以放置其他元素,比如段落、图像、多媒体等等。

<a href="https://www.example.com/">
  <img src="https://www.example.com/foo.jpg">
</a>

 上面代码中,<a>标签内部就是一个图像。用户点击图像,就会跳转到指定网址。

<a>标签的属性

(1)href

 href属性给出链接指向的网址。它的值应该是一个 URL 或者锚点。

<a href="#demo">示例</a>

 上面代码中,href属性的值是#加上锚点名称。点击后,浏览器会滚动,停在当前页面里面demo锚点所在的位置。

(2)hreflang

  hreflang属性给出链接指向的网址所使用的语言,纯粹是提示性的,没有实际功能。

<a
  href="https://www.example.com"
  hreflang="en"
>示例网址</a>

   上面代码表明,href属性指向的网址的语言是英语。

(3)title

  title属性给出链接的说明信息。鼠标悬停在链接上方时,浏览器会将这个属性的值,以提示块的形式显示出来。

<a
  href="https://www.example.com/"
  title="hello"
>示例</a>。

 上面代码中,用户鼠标停留在链接上面,会出现文字提示hello

(4)target

target属性指定如何展示打开的链接。它可以是在指定的窗口打开,也可以在<iframe>里面打开。

<p><a href="http://foo.com" target="test">foo</a></p>
<p><a href="http://bar.com" target="test">bar</a></p>

上面代码中,两个链接都在名叫test的窗口打开。首先点击链接foo,浏览器发现没有叫做test的窗口,就新建一个窗口,起名为test,在该窗口打开foo.com。然后,用户又点击链接bar,由于已经存在test窗口,浏览器就在该窗口打开bar.com,取代里面已经打开的foo.com

target属性的值也可以是以下四个关键字之一。

  • _self:当前窗口打开,这是默认值。

  • _blank:新窗口打开。

  • _parent:上层窗口打开,这通常用于从父窗口打开的子窗口,或者<iframe>里面的链接。如果当前窗口没有上层窗口,这个值等同于_self

  • _top:顶层窗口打开。如果当前窗口就是顶层窗口,这个值等同于_self

<a
  href="https://www.example.com"
  target="_blank"
>示例链接</a>

上面代码点击后,浏览器会新建一个窗口,在该窗口打开链接,并且新窗口没有名字。

注意,使用target属性的时候,最好跟rel="noreferrer"一起使用,这样可以避免安全风险。

(5)rel

rel属性说明链接与当前页面的关系。

<a href="help.html" rel="help">帮助</a>

上面代码的rel属性,说明链接是当前页面的帮助文档。

下面是一些常见的rel属性的值。

  • alternate:当前文档的另一种形式,比如翻译。

  • author:作者链接。

  • bookmark:用作书签的永久地址。

  • external:当前文档的外部参考文档。

  • help:帮助链接。

  • license:许可证链接。

  • next:系列文档的下一篇。

  • nofollow:告诉搜索引擎忽略该链接,主要用于用户提交的内容,防止有人企图通过添加链接,提高该链接的搜索排名。

  • noreferrer:告诉浏览器打开链接时,不要将当前网址作为 HTTP 头信息的Referer字段发送出去,这样可以隐藏点击的来源。

  • noopener:告诉浏览器打开链接时,不让链接窗口通过 JavaScript 的window.opener属性引用原始窗口,这样就提高了安全性。

  • prev:系列文档的上一篇。

  • search:文档的搜索链接。

  • tag:文档的标签链接。

(6)referrerpolicy

referrerpolicy属性用于精确设定点击链接时,浏览器发送 HTTP 头信息的Referer字段的行为。

该属性可以取下面八个值:no-referrerno-referrer-when-downgradeoriginorigin-when-cross-originunsafe-urlsame-originstrict-originstrict-origin-when-cross-origin

其中,no-referrer表示不发送Referer字段,same-origin表示同源时才发送Referer字段,origin表示只发送源信息(协议+域名+端口)。其他几项的解释,请查阅 HTTP 文档。

(7)ping

  ping属性指定一个网址,用户点击的时候,会向该网址发出一个 POST 请求,通常用于跟踪用户的行为。

(8)type

  type属性给出链接 URL 的 MIME 类型,比如到底是网页,还是图像或文件。它也是纯粹提示性的属性,没有实际功能。

<a
  href="smile.jpg"
  type="image/jpeg"
>示例图片</a>

上面代码中,type属性提示这是一张图片。

(9)download

  download属性表明当前链接用于下载,而不是跳转到另一个 URL。

<a href="demo.txt" download>下载</a>

 上面代码点击后,会出现下载对话框。download属性只在链接与网址同源时,才会生效。也就是说,链接应该与网址属于同一个网站。如果download属性设置了值,那么这个值就是下载的文件名。

<a
  href="foo.exe"
  download="bar.exe"
>点击下载</a>

  上面代码中,下载文件的原始文件名是foo.exe。点击后,下载对话框提示的文件名是bar.exe

  注意,如果链接点击后,服务器的 HTTP 回应的头信息设置了Content-Disposition字段,并且该字段的值与download属性不一致,那么该字段优先,下载时将显示其设置的文件名。

 download属性还有一个用途,就是有些地址不是真实网址,而是数据网址,比如data:开头的网址。这时,download属性可以为虚拟网址指定下载的文件名。

<a href="data:,Hello%2C%20World!">点击</a>

上面链接点击后,会打开一个虚拟网页,上面显示Hello World!

<a
  href="data:,Hello%2C%20World!"
  download="hello.txt"
>点击</a>

上面链接点击后,下载的hello.txt文件内容就是“Hello, World!”。

Html中的文本标签

<div>

  <div>是一个通用标签,表示一个区块)。它没有意义,如果网页需要一个块级元素容器,又没有其他合适的标签,就可以使用这个标签。

<p>

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

<p>hello world</p>

这就是一个简单的段落。

<span>

  <span>是一个通用目的的行内标签(即不会产生换行),不带有任何语义。如果需要对某些行内内容指定样式,就可以把它们放置在<span>

<p>这是一句<span>重要</span>的句子。</p>

可以把句子中需要强调的部分放在<span>

<br><wbr>

  <br>让网页产生一个换行效果。该标签是单独使用的,没有闭合标签。

hello<br>world

  浏览器渲染上面代码时,会分成两行,helloworld各占一行。

<br>对于诗歌和地址的换行非常有用。

<p>
  床前明月光,<br>
  疑是地上霜。<br>
  举头望明月,<br>
  低头思故乡。
</p>

  上面的代码如果不用<br>标签,会显示成一行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值