原文

  简书原文:https://www.jianshu.com/p/d6a2499db73b

大纲

  1、什么是<a>标签
  2、<a>标签的几个重要属性
  3、a标签的运行机制
  4、a标签常用的协议
  5、超链接标签的样式问题——a标签的伪类选择器的书写顺序

1、什么是<a>标签

  <a> 标签定义超链接,用于从一张页面链接到另一张页面。
  <a> 元素最重要的属性是 href 属性,它指示链接的目标。

2、<a>标签的几个重要属性

2.1、href

  规定链接指向的页面的 URL。

<a href="http://www.w3school.com.cn">W3School</a>

2.2、target

  规定在何处打开链接文档。
  a:自定义打开锚点

<frameset cols="100,*">
<frame src="toc.html">
<frame src="pref.html" name="view_frame">
</frameset> <h3>Table of Contents</h3>
<ul>
<li><a href="pref.html" target="view_frame">Preface</a></li>
<li><a href="chap1.html" target="view_frame">Chapter 1</a></li>
<li><a href="chap2.html" target="view_frame">Chapter 2</a></li>
<li><a href="chap3.html" target="view_frame">Chapter 3</a></li>
</ul>

  target的特殊值:有 4 个保留的目标名称用作特殊的文档重定向操作:

    _self:这个目标的值对所有没有指定目标的 <a> 标签是默认目标,它使得目标文档载入
并显示在相同的框架或者窗口中作为源文档。这个目标是多余且不必要的,除非和文档标题
<base> 标签中的 target 属性一起使用。 _parent:这个目标使得文档载入父窗口或者包含来超链接引用的框架的框架集。如果这个
引用是在窗口或者在顶级框架中,那么它与目标 _self 等效。 _top:这个目标使得文档载入包含这个超链接的窗口,用 _top 目标将会清除所有被包含
的框架并将文档载入整个浏览器窗口。 _blank:浏览器总在一个新打开、未命名的窗口中载入目标文档。 提示:这些 target 的所有 4 个值都以下划线开始。任何其他用一个下划线作为开头的
窗口或者目标都会被浏览器忽略,因此,不要将下划线作为文档中定义的任何框架 name 或
id 的第一个字符。

2.3、name

  规定锚的名称。(Html5不支持)

<html>
<body>
<h1>HTML 教程目录</h1>
<ul>
<li><a href="#C1">第一章</a></li>
</ul> <h2><a name="C1">第一章</a></h2>
<p>本章讲解的内容是 ... ...</p>
</body>
</html>

2.4、downloadHTML5新增

  HTML5新增,只有 Firefox 和 Chrome 支持 download 属性。
  download 属性规定被下载的超链接目标。
  在 <a> 标签中必须设置 href 属性。
  该属性也可以设置一个值来规定下载文件的名称。所允许的值没有限制,浏览器将自动检测正确的文件扩展名并添加到文件 (.img, .pdf, .txt, .html, 等等)。

<a href="/images/myw3schoolimage.jpg" download="w3logo">

2.5、media

  media 属性规定目标 URL 是为什么类型的媒介/设备进行优化的。
  该属性用于规定目标 URL 是为特殊设备(比如 iPhone)、语音或打印媒介设计的。
  该属性可接受多个值。
  只能在 href 属性存在时使用。

<a href="att_a_media.asp?output=print" media="print and (resolution:300dpi)">
打开用于打印的 media 属性页面
</a>

3、a标签的运行机制

    1、a标签的href属性值如果是以http开头的,那么浏览器会马上启动http解释器去解释
该网址,首先会在本地机器去找一个hosts文件, 如果在hosts文件上该域名没有对应的主机
,那么浏览器就去到对应的dns服务器去寻找该域名对应的主机号。如果找到了对应的主机,
那么该请求就会发给对应的主机。
2. 如果a标签的href属性值没有以任何协议开头,那么浏览就会启动file协议解释器去解
释该资源路径。
3. 如果a标签的href属性值并不是以http开始,而且其他 的一些协议,那么这时候浏览
器就回去到我们本地的注册表中去查找是否有处理这种协议 的应用程序,如果有,那么马上启
动该应用程序处理该协议。

4、a标签常用的协议

1、file:
file协议(文件协议)这种协议主要是用于搜索本地机器的资源文件的。
格式:file:\\\f:\美女\1.jpg 2、邮件的协议: mailTo 3、迅雷的协议: thunder

5、超链接标签的样式问题——a标签的伪类选择器的书写顺序

5.1、a标签的多重状态

  对于<a>元素,我们可以用“多重人格”来形容它。对于该标签,它一共有五种状态::link, :visited, :hover, :focus, :active.
  “:link”可以用于声明未访问状态链接的样式;
  “:visited”可以用于声明已经访问链接的样式;
  “:hover”可以用于声明鼠标悬停在链接上的样式;
  “:focus”可以用于声明浏览器焦点悬停在链接上的样式(通过键盘选择链接);
  “:active”可以用于声明浏览器点击链接的样式。
  注意:冒号前后不要出现空格
  一般a:hover和a:visited链接的状态(颜色、下划线等)应该是相同的。
  link、visited、active分别对应body元素的link、vlink、alink这三个属性。
  四个“状态”的先后过程是:a:link ->a:hover ->a:active ->a:visited。另外,a:active不能设置有无下划线(总是有的)。

5.2、链接(a标签状态)定义的顺序

  没有规矩不成方圆,虽然链接定义写好了,但它也是有规则的,如果这四项的书写顺序稍有差错,链接的效果可能就没有了,所以每次定义链接样式时务必确认定义的顺序,link--visited--hover-active,也就是我们常说到的LoVe HAte原则(大写字母就是它们的首字母)。
  老外总结了一个便于记忆的“爱恨原则”(LoVe/HAte),即四种伪类的首字母:LVHA。定义A链接样式的正确的顺序:a:link、a:visited、a:hover、a:active。若没有按照这样的顺序的话,有的状态的样式会被放置在后面的样式覆盖而导致像没有触发一样没有效果,如:如果hover放在visited之后,则就算我放上去变色了,但是同时这个标签也具有visited状态以及其的效果,会覆盖了hover的效果。
  为了符合浏览器解释CSS遵循的"就近原则"。我们在定义CSS中,宜将最一般的条件放在最上面,并依次向下,最下面放最特殊的。
  在W3C规范中,也规定了链接的声明顺序:
  在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。
  在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。

a:link、a:visited、a:hover、a:active

参考网址

http://blog.csdn.net/linwh8/article/details/52491645
http://www.jb51.net/css/182670.html
http://www.nowamagic.net/csszone/css_IntroduceToTagA.php

详解HTML的a标签(超链接标签)的更多相关文章

  1. Git应用详解第八讲:Git标签、别名与Git gc

    前言 前情提要:Git应用详解第七讲:Git refspec与远程分支的重要操作 这一节主要介绍Git标签.别名与Git的垃圾回收机制. 一.Git标签(tag) 1.标签的实质 标签与分支十分相似, ...

  2. git 使用详解(8)-- tag打标签

    打标签 同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签.人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做.本节我们一起来学习如何列出所有可用的标签,如何新建标签,以 ...

  3. html body的属性 格式控制标签 内容容器标签 超链接标签 图片标签 表格

    一.body的属性 <body  bgcolor  页面背景色 background 背景壁纸.图片 text文字颜色 topmargin上边距 leftmargin左边距 rightmargi ...

  4. 前端 HTML body标签相关内容 常用标签 超链接标签 a标签

    超链接标签 <a> 超级链接<a>标记代表一个链接点,是英文anchor(锚点)的简写.它的作用是把当前位置的文本或图片连接到其他的页面.文本或图像,也可以是相同网页上的不同位 ...

  5. [19/05/15-星期三] HTML_body标签(超链接标签和锚点)

    一.超链接标签 <html> <head> <meta charset="UTF-8"> <title>04 body超链接标签学习 ...

  6. Android ActionBar详解(二):ActionBar实现Tabs标签以及下拉导航

    一.添加标签 Tabs   在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected.onTabUnselected ...

  7. Struts标签库详解,非常好的Struts标签详解

    Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML 标签:         用来创建能够和Struts 框架和其他相应的HTML 标签交互的H ...

  8. html标签详解

    html标签详解   <!DOCTYPE> 标签 <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE ...

  9. 【jsp】JSTL标签大全详解

    一.JSTL标签介绍 1.什么是JSTL? JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是 ...

  10. day01 html介绍 文档声明头 head标签 body标签

    day01 html   初识html <!--文档的声明--> <!doctype html>   <html lang="en">    # ...

随机推荐

  1. 使用wpaint绘图软件时:Uncaught DOMException: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image argument is a canvas element with a width or height of 0.

    使用wpaint绘图软件时:Uncaught DOMException: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': Th ...

  2. 异步调用WCF的方法需要小心的地方

    直接使用下面的代码,由于client对象占用的资源没有被释放,会导致内存泄露GetSimServiceReference.GetSimServiceClient client = new GetSim ...

  3. install-软件安装跟push的区别

    今天在做项目的时候,需要往一个user版本的手机中安装一个应用,就在网上查了相应的方法,可以使用如下命令 adb install -r out/target/product/vanzo6752_lwt ...

  4. 程序是怎么跑起来的? —— CPU 是什么?C/C++程序的运行

    1. 概念初步 程序:计算机的程序,和做饭.运动会的程序一样,指的是"做事的先后次序": 程序的组成:程序是指令(及物动词)和数据(宾语)的组合体: C 语言 printf(&qu ...

  5. 文件上传流式处理commons-fileupload

    1. 从请求中获取MultipartFile @RequestMapping(value="/upload", method=RequestMethod.POST) public ...

  6. 最小二乘法,python3实现

    https://www.cnblogs.com/BlogOfMr-Leo/p/8627311.html                      [用的是库函数] https://blog.csdn. ...

  7. 查看网站使用何种框架或者技术的插件——Wappalyzer

    Wappalyzer这款插件很强大,可以查看任何网站使用的技术,包括后端语言框架和前端语言框架.还有服务器是何种类型.甚至各种版本... 插件官网:https://wappalyzer.com/

  8. css实现简单的告警提示动画效果

    需求:css实现简单的告警提示动画效果,当接收到实时信息的时候,页面弹出告警信息的动画效果 <!DOCTYPE html> <html lang="en"> ...

  9. Nginx分发服务

    nginx配置分发tomcat服务 http://blog.csdn.net/yan_chou/article/details/53265775 http://www.cnblogs.com/deng ...

  10. 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares

    P1206 [USACO1.2]回文平方数 Palindromic Squares 题目描述 回文数是指从左向右念和从右向左念都一样的数.如12321就是一个典型的回文数. 给定一个进制B(2< ...