"link href='#'是什么意思?"

21

我在一个网站的源代码中偶然发现了以下片段。

<link href="#" id="colour-scheme" rel="stylesheet">

这是做什么的?


我的猜测是,单独来看,什么也没有。该网站可能利用ID与JS一起做些事情,例如随机加载特定的颜色方案? - naththedeveloper
请问一个没有href属性的锚标签是否安全? - PSR
@DarthVader 如果可能的话,请提供更多细节。 - Arun Chandran Chackachattil
9个回答

3
没有 base 元素时,它除了略微消耗浏览器资源外没有任何作用。根据 URL 规范,以 # 作为 URL 是对当前基础 URL 下文档开头的��用。由于标签必须在 HTML 文档中,因此会失败(因为文档使用 HTML 媒体类型进行服务或者在浏览器尝试使用 CSS 解析器解析 HTML 失败后)。
如果您使用一个将基础 URL 设置为指向 CSS 文档的 base 标签,则在技术上可以工作,例如:
<!doctype html>
<title>Demo</title>
<base href="http://www.cs.tut.fi/~jkorpela/basic.css">
<link href="#" id="colour-scheme" rel="stylesheet">
<h1>Hello world</h1>

这其实是相当不正常的,而且这将有效地防止您在文档中使用相对URL。所以这只是一种理论上的可能性,而不是真正发生的情况。
可能 href="#" 只是一个占位符,将被 JavaScript 代码或其他东西覆盖。这是一种糟糕的编码风格,有几个原因。最好省略 href 属性(即使在 HTML5 中这是技术上无效的)并动态插入一个。

3

这实际上什么都不做,只是停留在同一页。

这来自于锚点,允许跳转到页面的某一部分(更具体地说,是跳转到某个id)。

通常写这句话是想说应该在这里介绍一些链接,因为它们没有任何效果。当您编写网站时,即使链接所指向的页面尚不存在,显示链接也很有用。这往往是一个临时解决方案。

正如RyanTom的回答中指出的那样,也可以用于动态加载CSS文件。


声明具体是什么? - DarthVader
@DarthVader 修改以回答该问题。 - Jerska
4
@Jerska 您所说的是 <a> 标签。问题是 <link /> 标签... (原文已被翻译成中文) - user1823761
不,我不是。这只是一个提醒,链接在此供程序员使用。CSS样式表显然不会被加载,因为不存在。我唯一能看到的兴趣是提醒开发人员不要忘记这个样式表,就像<a>标签一样。当我写“显示链接”时,它不仅仅是客户端的。 - Jerska

2

在链接标签中使用 # 是常用的方法,如果 URL 未知或不需要默认设置,则可以稍后使用 JavaScript。

例如:

HTML

<link href="#" id="colour-scheme" rel="stylesheet">

JS

document.getElementById("colour-scheme").href="red.css"; 

这使您可以在JS中设置样式表的URL,而不是静态地设置位置。


1
它可能是常用的,但毫无意义:即使link标签没有href属性,您仍然可以设置link元素的href属性。 - Jukka K. Korpela
非常正确,毫无异议。但是提供了一个很好的占位符。 - Ryan McDonough

1
href = uri

这个属性指定了Web资源的位置,从而定义了当前元素(源锚点)与该属性定义的目标锚点之间的链接。

这不回答他的问题。 - naththedeveloper

1

可能是稍后要加载的某些样式表。


1

在开发过程中,使用井号(#)作为引用是常见的做法,但如果不知道实际引用时,可能会出现这种情况。然而,如果这是在一个实际网站上,可能会使用JavaScript根据用户的颜色方案选择来加载样式表。在他们做出选择之前,不需要任何颜色方案,因此没有给出引用,因此使用井号(#)。


0
<link href="#" id="colour-scheme" rel="stylesheet">

href : 用于指定要在网页中导入的CSS文件的位置

当使用href="#"时,不会导入任何CSS文件。


0
通常我们使用 来调用我们的CSS文件,例如下面的例子。假设我有一个HTML文件,我想调用我的外部CSS文件,这时我需要使用 。更多信息请查看此链接 http://www.w3schools.com/tags/att_link_href.asp


0

根据HTML链接标签,我的猜测是它主要用于链接外部文件,比如

href="theme.css"

由于您正在使用href="#",它不会做任何事情/没有任何作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接