【问题标题】:Can you tag hyperlinks with arbitrary tags using the relative attribute?您可以使用 relative 属性用任意标签标记超链接吗?
【发布时间】:2019-05-12 09:35:09
【问题描述】:

以下语法似乎在 HTML 中有效:

 <a rel="nofollow" href="http://www.functravel.com/">Cheap Flights</a>

现在,假设我想在“nofollow”的位置插入一个任意词,这有效吗?例如,假设有三种超链接:红色、绿色和蓝色。然后我可以使用这些作为标签如下:

<a rel="green" href="http://www.functravel.com/">Cheap Flights</a> 

如果上述允许,我可以更进一步,定义一个具有两个或多个相关属性的超链接,如下所示:

 <a rel="nofollow red" href="http://www.functravel.com/">Cheap Flights</a> 

我只是对理论上的可能性感兴趣。

【问题讨论】:

  • rel 代表relationship,而不是relative

标签: html rel


【解决方案1】:

HTML 规范定义了allowed values for the rel attribute

由于存在一组允许值,因此(隐式)不允许偏离该列表(如果您尝试,validation 将抛出错误)。

class 属性允许您向任何元素添加任意标签。 data-* 属性还允许您向元素添加自定义信息。请改用其中之一。

【讨论】:

  • 谢谢昆汀。我想知道使用 class 或 data-* 属性的自定义信息是否可以被搜索引擎读取,例如 nofollow 属性的情况?它们可以逐个链接添加,还是一次应用于整个页面?
  • 一般搜索引擎不会关注无效的rel属性,或者你在class或data-*属性中组成并插入的数据。他们为什么会?没有明确的含义。 (而且由于classdata-*属性,它们显然适用于特定元素)。
  • 好的。我只是担心无效的 rel 属性会引发错误。否则,我也许能找到它们的用途。
  • classdata-* 无法获得的无效 rel 属性没有用处,因此只需编写有效的 HTML。
【解决方案2】:

rel 属性指定当前文档和链接文档之间的关系。只有在存在 href 属性时才使用它。

rel 属性的一些可接受的值是替代、作者、书签、外部等。Visit the link to know more rel values

此外,如果您使用蓝色、绿色等自定义值,您可以通过 jquery 访问该值,但如果您在 w3 Validator 上验证页面,则会出现错误。

例如:

<a id='_toBlue' rel='blue' href='blue.php'>blue</a>
<a id='_toGreen' rel='green' href='green.php'>green</a>

使用 JQuery,您可以出于某种目的获取 rel 值

var relBlue = "#!"+$("#_toBlue").attr('rel'); //gives desired result=>"blue"
var relGreen = "#!"+$("#_toGreen").attr('rel'); //gives desired result=>"green"

现在,当您在 W3 Validator 中验证此 HTML 时,您会收到以下错误

元素 a 上属性 rel 的错误值 #blue:关键字 #blue 未注册。

元素 a 上属性 rel 的错误值 #green:关键字 #green 未注册。

所以,如果你没问题,你可以使用它,但强烈不推荐

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 2019-06-06
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多