Skip to content

地址简写

URL 还可以使用两个特殊简写,表示特定位置。

  • .:表示当前目录,比如./a.html(当前目录下的a.html文件)
  • ..:表示上级目录,比如../a.html(上级目录下的a.html文件)

这两种简写可以多个连用,比如../../表示上两级目录。

base标签

<base>标签指定网页内部的所有相对 URL 的计算基准。整张网页只能有一个<base>标签,而且只能放在<head>里面。它是单独使用的标签,没有闭合标签,下面是一个例子。

html
<head>
<base href="https://www.example.com/files/" target="_blank">
</head>

tabindex

键盘按下 Tab 键后获得焦点的顺序

tabindex属性的值是一个整数,表示用户按下 Tab 键的时候,网页焦点转移的顺序。不同的属性值有不同的含义。

  • 负整数:该元素可以获得焦点(比如使用 JavaScript 的focus()方法),但不参与 Tab 键对网页元素的遍历。这个值通常是-1
  • 0:该元素参与 Tab 键的遍历,顺序由浏览器指定,通常是按照其在网页里面出现的位置。
  • 正整数:网页元素按照从小到大的顺序(1、2、3、……),参与 Tab 键的遍历。如果多个元素的tabindex属性相同,则按照在网页源码里面出现的顺序遍历。
html
<p tabindex="0">这段文字可以获得焦点。</p>

上面代码中,<p>标签的tabindex0,意味着该元素可以获得焦点,并且也可以被 Tab 键遍历,顺序由其在源码里面的位置决定。

一般来说,tabindex属性最好都设成0,按照自然顺序进行遍历,这样比较符合用户的预期,除非网页有特殊布局。如果网页所有元素都没有设置tabindex,那么只有那些默认可以遍历的元素(比如链接、输入框等)才能参与 Tab 键的遍历,顺序由其在源码的位置决定。因此实际上,只有那些无法获得焦点的元素(比如<span><div>)需要参与遍历,才有必要设置tabindex属性。

accesskey

accesskey属性指定网页元素获得焦点的快捷键,该属性的值必须是单个的可打印字符。只要按下快捷键,该元素就会得到焦点。

html
<button accesskey="s">提交</button>

上面代码中,<button>的快捷键是s,按下快捷键,该元素就得到了焦点。

accesskey属性的字符键,必须配合功能键,一起按下才会生效。也就是说,快捷键是“功能键 + 字符键”的组合。不同的浏览器与不同的操作系统,功能键都不一样。比如,Chrome 浏览器在 Windows 系统和 Linux 系统的快捷键是Alt + 字符键,在 Mac 系统的快捷键是Ctrl + Alt + 字符键

注意,accesskey如果跟操作系统或浏览器级别的快捷键有冲突,这时不会生效。

hidden

hidden是一个布尔属性,表示当前的网页元素不再跟页面相关,因此浏览器不会渲染这个元素,所以就不会在网页中看到它。

html
<p hidden>本句不会显示在页面上。</p>

上面代码中,这个p元素不会出现在网页上。

注意,CSS 的可见性设置,高于hidden属性。如果 CSS 设为该元素可见,hidden属性将无效。

contenteditable

HTML 网页的内容默认是用户不能编辑,contenteditable属性允许用户修改内容。它有两个可能的值。

  • true或空字符串:内容可以编辑
  • false:不可以编辑
html
<p contenteditable="true">
鼠标点击,本句内容可修改。
</p>

上面代码中,鼠标单击句子,就可以进入编辑状态,用户可以改变句子的内容。当然,除非提交到服务器,否则刷新页面还是显示原来的内容。

该属性是枚举属性,不是布尔属性,规范的写法是最好带上属性值。

data-属性

data-属性用于放置自定义数据。如果没有其他属性或元素合适放置数据,就可以放在data-属性。

html
<a href="#" class="tooltip" data-tip="this is the tip!">链接</a>

字符的数字表示法

网页可以使用不同语言的编码方式,但是最常用的编码是 UTF-8。UTF-8 编码是 Unicode 字符集的一种表达方式。这个字符集的设计目标是包含世界上的所有字符,目前已经收入了十多万个字符。

由于各种的原因,不是每一个 Unicode 字符都能直接在 HTML 语言里面显示。

html
HTML 为了解决上面这些问题,允许使用 Unicode 码点表示字符,浏览器会自动将码点转成对应的字符。

字符的码点表示法是&#N;(十进制,N代表码点)或者&#xN;(十六进制,N代表码点),比如,字符a可以写成&#97;(十进制)或者&#x61;(十六进制),字符中可以写成&#20013;(十进制)或者&#x4e2d;(十六进制),浏览器会自动转换它们。

字符的实体表示法

数字表示法的不方便之处,在于必须知道每个字符的码点,很难记忆。为了能够快速输入,HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法(entity)。

实体的写法是&name;,其中的name是字符的名字。下面是其中一些特殊字符,及其对应的实体。

html
<&lt;
>:&gt;
":&quot;
':&apos;
&:&amp;
©:&copy;
#:&num;
§:&sect;
¥:&yen;
$:&dollar;
£:&pound;
¢:&cent;
%:&percnt;
*:$ast;
@:&commat;
^:&Hat;
±:&plusmn;
空格:&nbsp;

​ 注意,上面最后一个特殊字符是空格,它也有对应的实体表示法。

字符的数字表示法和实体表示法,都可以表示正常情况无法输入的字符,逃脱了浏览器的限制,所以英语里面称为“escape”,中文翻译为“字符的转义”。