a标签去掉下划线_HTML从零开始——文本标签

1db331889825111429fcc641bdc51e8d.png

HTML最早的用途,其实就是展示文本,所以文本标签是它当中最重要的组成成分,接下来就看看HTML的文本标签。


1 <div>

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

它的最常见用途就是提供 CSS 的钩子,用来指定各种样式。所以在早期,下面层层包裹的<div>就很常见:

<

上面代码读起来很费力,因为不带有语义。后来,HTML 5 就提出了语义标签,改进了上面的代码:

<

<div>是无语义的块级元素。下面的例子使用<div>,将图像和文字组合在一起,构成一个警告区块:

<

只要样式上需要多个块级元素组合在一起,就可以使用<div>。但是,这应该是最后的措施,带有语义的块级标签(比如<article><section><aside><nav>等)始终应该优先使用,当且仅当没有其他语义元素合适时,才可以使用<div>

2 <p>

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

<

上面代码就是一个简单的段落。

3 <span>

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

<

上面代码中,句子里面需要强调的部分,就可以放在<span>,并使用CSS指定对应的样式,如斜体,显示如下:

66510e401f0dbef7626324ced8ee5401.png

4 <br>,<wbr>

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

<

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

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

<

4c03464aac2166d16e4bd8a1185afc0b.png

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

注意,块级元素的间隔,不要使用<br>来产生,而要使用 CSS 指定:

<

上面的代码希望段落之间有两个换行,这时不应该使用<br>,而应该使用 CSS

<wbr>标签跟<br>很相似,表示一个可选的断行。如果一行的宽度足够,则不断行;如果宽度不够,需要断行,就在<wbr>的位置的断行。它是为了防止浏览器在一个很长的单词中间,不正确地断行或者不断行,所以事先标明可以断行的位置,主要用于欧洲一些单词很长的语言或者 URL 的断行:

<

上面代码是一个很长的德语单词,为了防止不正确断行,事先用<wbr>告诉浏览器,可以选择在哪里断行:

a4437d927be69c6bf9d475019f5488f0.png
原大小

61ac352926a984596b50e3aef4860611.png
将p标签的宽度改为100px后

5 <hr>

<hr>用来在一篇文章中分隔两个不同的主题,浏览器会将其渲染为一根水平线。该标签是单独使用的,没有闭合标签:

<

上面代码的渲染结果是,两段之间会出现一根水平线。

该标签是历史遗留下来的,建议尽量避免使用。主题之间的分隔可以使用<section>,如果想要水平线的效果,可以使用 CSS

6 <pre>

<pre>是一个块级元素,表示保留原来的格式(preformatted),即浏览器会保留该标签内部原始的换行和空格。浏览器默认以等宽字体显示标签内容:

<

上面代码中,换行和连续空格都会由于<pre>标签,而被保留下来,浏览器按照原样输出:

1061cfd5f0078e5c89e4830c4c01956f.png

注意,HTML 标签在<pre>里面还是起作用的。<pre>只保留空格和换行,不会保留 HTML 标签:

<

上面代码中,<pre>标签的内容会加粗显示:

23b9f210b64d49caa6620db84c3f719b.png

7 <strong>,<b>

<strong>是一个行内元素,表示它包含的内容具有很强的重要性,需要引起注意。浏览器会以粗体显示内容:

<

8a0dec65fcf56e07836b052e9ffa91c5.png

<b><strong>很相似,也表示它包含的内容需要引起注意,浏览器会加粗显示。它是 Boldface 的缩写:

<

它与<strong>的区别在于,由于历史原因,它没有语义,是一个纯样式的标签,违反了语义与样式分离的原则,因此不建议使用,应该优先使用<strong>标签。

8 <em>,<i>

<em>是一个行内标签,表示强调(emphasize),浏览器会以斜体显示它包含的内容:

<

3a7e0a0f9ac9ea66c2e8561504d2a161.png

虽然浏览器通常会以斜体显示<em>,但无法保证一定如此,所以最好还是用 CSS 指定一下这个标签的样式。

<i>标签与<em>相似,也表示与其他地方有所区别,浏览器会以斜体显示。它是 Italic 的缩写:

<

<i>标签的语义不强,更接近是一个纯样式的标签,建议优先使用<em>标签代替它。

9 <sub>,<sup>,<var>

<sub>标签将内容变为下标,<sup>标签将内容变为上标。它们都是行内元素,主要用于数学公式、分子式等:

<

7ff4e93a718b166969d8420a9362b0ce.png

<var>标签表示代码或数学公式的变量。

<

812b706afde4fd1a96ee3df23ed2bdd7.png

10 <u>,<s>

<u>标签是一个行内元素,表示对内容提供某种注释,提醒用户这里可能有问题,基本上只用来表示拼写错误。浏览器默认以下划线渲染内容:

<

上面代码中,<u>提示用户这是一个拼写错误,“安份守己”的下方会有一个下划线:

1264ba23dcd6b98df11d69a9db39855a.png

注意,<u>会产生下划线,由于链接也默认带有下划线,所以必须非常小心使用<u>标签,避免用户误以为可以点击。万一确有必要使用,最好使用 CSS 改变<u>的默认样式。

<s>标签是一个行内元素,为内容加上删除线:

<

上面代码中,“三文鱼”会有一根删除线:

ed03b593a834e991a49b4d916bf29c2a.png

11 <blockquote>,<cite>,<q>

<blockquote>是一个块级标签,表示引用他人的话。浏览器会在样式上,与正常文本区别显示:

<

<blockquote>标签有一个cite属性,它的值是一个网址,表示引言来源,不会显示在网页上:

41d0f1b82e4ea65e6e53e2378b35ba4e.png

<cite>标签表示引言出处或者作者,浏览器默认使用斜体显示这部分内容:

<

b2c77216988e794601b4f7880a77a95e.png

<cite>不一定跟<blockquote>一起使用。如果文章中提到资料来源,也可以单独使用:

<

c83987b3d1aff353f235efd1cf0752a0.png

<q>是一个行内标签,也表示引用。它与<blockquote>的区别,就是它不会产生换行:

<p>
  莎士比亚的《哈姆雷特》有一句著名的台词:
  <q cite="https://quote.example.com">活着还是死亡,这是一个问题。</q>
</p>

上面例子中,引言部分跟前面的说明部分是在同一行里面:

7b70486715e157c68ff3f10d926ed023.png

另外,跟<blockquote>一样,<q>也有cite属性,表示引言的来源网址。

注意,浏览器默认会斜体显示<q>的内容,并且会自动添加半角的双引号。所以,引用中文内容时要小心。

12 <code>

<code>标签是一个行内元素,表示标签内容是计算机代码,浏览器默认会以等宽字体显示:

<

042932a7f600d789aa4757685e491d62.png

如果要表示多行代码,<code>标签必须放在<pre>内部。<code>本身仅表示一行代码:

<

708e30ee46507a424d5217bdf8229515.png

13 <kbd>,<samp>

<kbd>标签是一个行内元素,原意是用户从键盘输入的内容,现在扩展到各种输入,包括语音输入。浏览器默认以等宽字体显示标签内容:

<

01e1417b964bd5fed07c3a7b630e0f78.png

<kbd>可以嵌套,方便指定样式:

<

<samp>标签是一个行内元素,表示计算机程序输出内容的一个例子。浏览器默认以等宽字体显示:

<

32e69c8bc94e167bc0b0b7ab97280b6b.png

14 <mark>

<mark>是一个行内标签,表示突出显示的内容。Chrome 以及基于 Chromium 的浏览器(如我使用的Edge)默认会以亮黄色背景,显示该标签的内容:

<

ffb5a1fcab434cbc145365289f20b4b5.png

<mark>很适合在引用的内容(<q><blockquote>)中,标记出需要关注的句子:

<

00f766a2e7354fa19ba5e342490959e8.png

除了标记感兴趣的文本,<mark>还可以用于在搜索结果中,标记出匹配的关键词。

注意,不要只为了高亮的效果,而使用这个标签,因为不能保证浏览器的处理方式。如果要保证高亮,还是要使用 CSS 样式。

15 <small>

<small>是一个行内标签,浏览器会将它包含的内容,以小一号的字号显示,不需要使用 CSS 样式。它通常用于文章附带的版权信息或法律信息:

<p>文章正文</p>
<p><small>以上内容使用创意共享许可证。</small></p>

6d83a0927d2e670cdfb9518007e0de99.png

16 <time>,<data>

<time>是一个行内标签,为跟时间相关的内容提供机器可读的格式:

<

上面代码中,<time>表示下周三的具体日期。这方便搜索引擎抓取,或者下一步的其他处理。

<time>datetime属性,用来指定机器可读的日期,可以有多种格式:

  • 有效年份:2011
  • 有效月份:2011-11
  • 有效日期:2011-11-18
  • 无年份的日期:11-18
  • 年度的第几周:2011-W47
  • 有效时间:14:5414:54:3914:54:39.929
  • 日期和时间:2011-11-18T14:54:39.929
<

<data>标签与<time>类似,也是提供机器可读的内容,但是用于非时间的场合:

<

上面代码中,选手的机读数据就放在<data>标签的value属性。

17 <address>

<address>标签是一个块级元素,表示某人或某个组织的联系方式:

<

38ac99c25c925f3347d2a67301713e1b.png

该标签有几个注意点。

(1)如果是文章里提到的地址(比如提到搬家前的地址),而不是联系信息,不要使用<address>标签。

(2)<address>的内容不得有非联系信息,比如发布日期。

(3)<address>不能嵌套,并且内部不能有标题标签(<h1>-<h6>),也不能有<article><aside><section><nav><header><footer>等标签。

(4)通常,<address>会放在<footer>里面,下面是一个例子:

<

f39c6abc5c71b41baa81d505a79d5fa5.png

18 <abbr>

<abbr>标签是一个行内元素,表示标签内容是一个缩写。它的title属性给出缩写的完整形式,或者缩写的描述。鼠标悬停在该元素上方时,title属性值作为提示,会完整显示出来。

<

注意,某些浏览器可能对该标签提供圆点下划线:

c615f8dbfb3d6e332c77b2689e02111d.png

19 <ins>,<del>

<ins>标签是一个行内元素,表示原始文档添加(insert)的内容。<del>与之类似,表示删除(delete)的内容。它们通常用于展示文档的删改:

<

浏览器默认为<del>标签的内容加上删除线,为<ins>标签的内容加上下划线:

8be67d4509bf729dae3a686b2bcc381a.png

这两个标签都有以下属性:

  • cite:该属性的值是一个 URL,表示该网址可以解释本次删改。
  • datetime:表示删改发生的时间。
<

20 <dfn>

<dfn>是一个行内元素,表示标签内容是一个术语(definition),本段或本句包含它的定义:

<

052b9ac554c6d526e10dedd3fe8818c1.png

为了脚本操作的方便,可以把术语的定义写入<dfn>标签的title属性:

<

上面代码中,title属性的一个作用是,鼠标悬浮的时候,术语的解释会以提示的形式显示出来:

fa1d7a7e62baf61ac81c5cecfca071be.png

某些时候,术语本身是一个缩写,这时<dfn><abbr>可以结合使用:

<

ac68517c836c8efce916dfaf2592c7aa.png

21 <ruby>

<ruby>标签表示文字的语音注释,主要用于东亚文字,比如汉语拼音和日语的片假名。它默认将语音注释,以小字体显示在文字的上方:

<

上面代码的渲染结果是,汉字上方有小字体的拼音han zi

d71a23cbb2c03c6d0e3ad50447b194a3.png
如果要显示拼音的声调,则需要使用中文输入法的附带功能了,如微软拼音的u模式:uuzm

6113ac0ffec20e645c31bd72f3d67e1c.png

<ruby>标签是一个行内元素,也是一个容器标签。如果要使用语音注释,就必须把文字和注释都放在这个标签里面。

<ruby>的内部还有许多配套的标签:

(1)<rp>

<rp>标签的用处,是为不支持语音注释的浏览器,提供一个兼容方案。对于那些支持语音注释的浏览器,该标签的内容不显示。

<rp>标签一般用于放置圆括号,如果遇到不支持的浏览器,就会将语音注释显示在括号里面:

<

上面代码在不支持语音注释的浏览器中,渲染结果为汉(han)字(zi)。遇到支持语音注释的浏览器,就不会显示圆括号。

(2)<rt>

<rt>标签用于放置语音注释。

(3)<rb>

<rb>标签用于划分文字单位,与语音注释一一对应:

<

上面例子中,汉字这两个字是写在一起的,<rb>标签用于每个字划分出来,跟<rt>标签一一对应。

注意,ChromeChromium 浏览器目前不支持这个标签:

03789ce1f70f381c4036043da1f99846.png

(4)<rbc>,<rtc>

<rbc>标签表示一组文字,通常包含多个<rb>元素。<rtc>标签表示一组语音注释,跟<rbc>对应:

<

上面例子中,汉字这两个字有两组语音注释,分别是汉语拼音与英语。一组语音注释放在<rbc>标签中,另一组语音注释放在<rtc>,用来对应<rbc>。同时,分别使用style属性,指定汉语拼音显示在文字下方,英语显示在文字上方。

注意,ChromeChromium 浏览器目前不支持这两个标签:

cef7b7942caf38188124c7f9c1ae29b9.png

22 <bdo>,<bdi>

大部分文字的阅读方向是从左到右,但是有些文字的方向是从右到左,比如阿拉伯语、希伯来语等。<bdo>标签是一个行内元素,表示文字方向与网页主体内容的方向不一致:

<

上面代码中,<bdo>标签里面的文字,会以相反的方向渲染,结果就是“床前明月光,疑是地上霜”:

100767aba2a9cff8080c07ca7f9b3a42.png

<bdo>dir属性,指定具体的文字方向。它有两个值,ltr表示从左到右,rtl表示从右到左。

<bdi>标签用于不确定文字方向的情况。比如,网页有一个部分是用户输入的内容,但是不知道输入内容的文字方向。这种情况就可以使用<bdi>标签,告诉浏览器,不确定文字的方向,由浏览器自己决定:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值