详解HTML的a标签(超链接标签)

原文

  简书原文: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

原文地址:https://www.cnblogs.com/shcrk/p/9279960.html

时间: 2024-08-09 23:04:13

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

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

Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML 标签:         用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 Bean 标签:         在访问JavaBeans 及其属性,以及定义一个新的bean 时使用 Logic 标签:          管理条件产生的输出和对象集产生的循环 Template 标签:   随着Tiles框架包的出现,此标记已开始减少使用 Nested 标签: 

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

一.添加标签 Tabs   在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected.onTabUnselected和onTabReselected方法来关联Fragment.代码如下: private class MyTabListener implements ActionBar.TabListener { private TabContentFragment mFragment; public TabLis

AxureRP7.0基础教程系列 部件详解H1,H2,标签,段落,占位符,矩形

原型库网站-讲师金乌原创发布,可自由转载,请注明出处! Axure中文官网:www.AxureRP.cn   <AxureRP7.0部件详解> H1,H2,标签,段落,占位符,矩形 使用示例: 导航按钮 网站导航形状按钮经常被用来创建导航按钮,用来链接到其他页面.这些按钮也经常被用于页头.侧边栏.页脚和应用程序中. 头部.标签和内容 H1,H2,标签,和文本都是形状.默认的标签和文本的样式可以通过在部件样式管理器中编辑. 标签控制按钮 形状按钮可以用来制作标签形状和圆角矩形. 编辑形状按钮:

表单标签概述及详解

1.1 表单标签概述1.1.1 什么是表单标签我们去银行办理一些业务的时候,我们通常需要填写一些纸质单据,而如果我们在网页中需要填写一些单据呢?我们可以通过HTML的表单来实现.例如:1.2 表单标签详解1.2.1 输入项标签<input/>标签表单输入项标签之一,用户可以在该标签上 通过填写和选择 进行数据的输入.? type:设置该标签的种类ü text:文本框. 默认ü password:密码框. 内容为非明文ü radio:单选框. 在同一组内有单选效果ü checkbox:复选框.

memset函数详解

语言中memset函数详解(2011-11-16 21:11:02)转载▼标签: 杂谈 分类: 工具相关  功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程序例: #include <string.h> #include <stdio.h> #include <memory.

【转】JSTL详解

JSTL详解(一) 先来搭下环境,jstl的包当然是不能少的拉.其次,下载必须的标签库或者是java的标签库文件. 将jstl 1.1.jar加到class中,(这就不要我详细的讲了吧),然后将标签库放到WEB-INF下或则将java的标签库文件(*.jar)放到WEB-INF/lib下,就可以写测试代码了. first_jstl.jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"

JAVA 注解的几大作用及使用方法详解

JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种: 1.生成文档.这是最常见的,也是java 最早提供的注解.常用的有@see @param @return 等:

Android基础入门教程——8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash

Android基础入门教程--8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash 标签(空格分隔): Android基础入门教程 本节引言: 在Canvas的API文档中,我们看到这样一个方法:drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) 这个Matrix可是有大文章的,前面我们在学Paint的API中的ColorFilter中曾讲过ColorMatrix 颜色矩阵,一个4 * 5 的矩阵

002--struts.xml配置详解

struts.xml配置详解 1.<include> 利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用<include>标签引入其他配置文件. 比如一个网上购物程序,可以把用户配置.商品配置.订单配置分别放在3个配置文件user.xml.goods.xml和order.xml中,然后在struts.xml中将这3个配置文件引入: struts.xml: <?xml version="1.0"

css选择器的使用详解

-.css选择器的分类: 二.常用选择器详解: 1.标签选择器: 语法: 标签名 { 属性:属性值; } 代码示例: h1 { color: #ccc; font-size: 28px; } 2.类选择器: 语法: .类名 { 属性:属性值: } 代码示例: .top { margin-top:25px; } <div class="top"></div> 3.id选择器: 语法: #ID名称 { 属性:属性值; } 代码示例: #top { padding-t