我在<a>
之外创建了一个<div>
链接来包装整个元素并赋予它display: block
属性,但当我在<div>
另一个<a>
内部时链接包裹外部链接<div>
内的一些文本变为height: 0
。
是否可以将一个链接组合在另一个链接中?
我制作了jsfiddle示例以显示我想要实现的内容,因此如果没有内部链接,整个红色矩形将被包装为链接,但是当我添加内部链接时,仍然没有链接包装矩形。
JSFiddle示例 - http://jsfiddle.net/ynbc2d6f/2/
答案 0 :(得分:1)
不,你不能嵌套链接。接下来会发生的事情是浏览器通过关闭元素来补偿无效的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>
答案 1 :(得分:0)
您无法在可点击元素中包含可点击元素。参见:
答案 2 :(得分:0)
A元素定义的链接和锚点不能嵌套; A元素不得包含任何其他A元素。
答案 3 :(得分:0)
建议:将外部链接更改为div块并将click事件侦听器添加到其中。
$('.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>
Vanilla 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>