<a>当外部链接是内部的另一个链接时,外部链接不会包装元素
<a> link outside doesn't wrap element when it's another link inside
我在<div>
外部创建了一个<a>
链接来包装整个元素并赋予它display: block
属性,但是当我在<div>
内创建另一个<a>
链接时,仅将一些文本包装在<div>
内,外部链接变得height: 0
。
它是否能够将一个链接组合在另一个链接中?
我制作了 jsfiddle 示例来展示我想要实现的目标,因此如果没有内部链接,整个红色矩形将包装为链接,但是当我添加内部链接时,仍然没有链接包装矩形。
JSFiddle 示例 - http://jsfiddle.net/ynbc2d6f/2/
不,您不能嵌套链接。发生的情况是,浏览器然后通过关闭元素来补偿无效的 HTML 以使其有效,因此您的原始:
<a class = "big-link" href = "http://www.google.com">
<div class = "big">
<a class = "small-link" href = "http://www.facebook.com">One</a>
</div>
</a>
成为:
<a class="big-link" href="http://www.google.com"></a>
<div class="big">
<a class="big-link" href="http://www.google.com"></a>
<a class="small-link" href="http://www.facebook.com">One</a>
</div>
在可点击的元素中不能有可点击的元素。看:
http://www.w3.org/TR/html5/dom.html#interactive-content-0
根据 HTML 链接上的 W3C 规范
A 元素定义的链接和定位点不得嵌套;A 元素不得包含任何其他 A 元素。
建议:将外部链接更改为div 块,并向其中添加点击事件侦听器。
$('.big-link').on('click', function() {
location.href = $(this).data('href')
});
.big-link {
display: block;
line-height: 100%;
margin-top: 50px;
cursor: pointer;
}
.big {
height: 50px;
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="big-link" data-href="http://www.google.com">
<div class="big">
<a class="small-link" href="http://www.facebook.com">One</a>
</div>
</div>
香草JS版本
document.getElementsByClassName('big-link').item(0).addEventListener('click', function(el) {
location.href = el.dataset.href;
});
.big-link {
display: block;
line-height: 100%;
margin-top: 50px;
cursor: pointer;
}
.big {
height: 50px;
background-color: red;
}
<div class="big-link" data-href="http://www.google.com">
<div class="big">
<a class="small-link" href="http://www.facebook.com">One</a>
</div>
</div>
相关文章:
- Cordova RSS馈送的链接不会在外部浏览器中打开
- 外部链接的Javascript文件赢得't执行,但函数有效
- 动态虚拟目录和外部 JavaScript 链接
- Web 地址虚拟目录会断开外部 JavaScript 链接,因此找不到文件
- Cordova包装应用程序内部链接加载在应用程序中,外部链接加载在浏览器中
- 正在创建网页,并希望将外部链接调用为html和css
- 为在新窗口中打开外部链接创建异常
- 链接外部JS文件与自由标记模板
- 如何仅在启用 javascript 时链接外部样式表
- 在 JSFiddle 中链接外部 JSON 数据文件
- HTML-链接外部Javascript文件
- 可以'似乎无法正确链接外部java脚本
- 当链接外部网站时,用Jquery移动加载弹出窗口
- 如何链接外部JS函数与HTML按钮点击
- 如何链接外部javascript文件的按钮点击
- 禁用动态链接外部Javascript文件中的缓存破坏
- 如果我链接外部javascript,它在dom完全加载后运行吗?
- 链接外部JS库并获取XMLHttpRequest错误
- 如何在Adobe Brackets IDE中链接外部javascript文件
- 为什么要用?variable=value来链接外部javascript ?