将一组div转换为链接

时间:2011-05-19 13:16:24

标签: html css

我有这样的列表元素:

<div class="outer">
    <div>Head</div>
    <div>Content</div>
</div>

我想拥有的是整个外部div的链接,就像你用它包装一样(但不幸的是,这不是有效的)

我知道可以使用“display:block”作为div中的“a”标记,以使其达到div的完整大小,但不幸的是,div的大小取决于(动态)内容因此不是通过CSS设置的。这意味着如果我将所述“a”标签的宽度和高度设置为100%,那么它将采用外部div的父级的大小。

这是否有一个有效的解决方案?

6 个答案:

答案 0 :(得分:2)

以下内容可能有效:

<div class="outer">
    <a href="" class="spec_link"></a>
    <div>Head</div>
    <div>Content</div>
</div>

和css:

.outer{ position:relative;}

.outer .spec_link{
display:block;
position:absolute;
top:0;
left:0;
bottom:0;
right:0;
}

无论大小如何,链接都会将自己包裹在外部。我对具有透明度的块做了类似的事情

答案 1 :(得分:2)

您可以将div转换为span并将其设置为display:block

<a href="..." class="forced">
    <span class="outer">
        <span>Head</span>
        <span>Content</span>
    </span>
</a>

并使用

的css规则
.forced, .forced .outer, .forced .outer > span{
  display:block;
}

答案 2 :(得分:1)

使用一些JavaScript可以达到这个效果:

<div class="outer" style="cursor:pointer;" 
    onclick="document.location='somepage.html';">
  <div>Head</div>
  <div>Content</div>
</div> 

答案 3 :(得分:0)

您可以使用Javascript处理链接:

<div class="outer" onclick="window.location.replace('yourlink.html');">
    <div>Head</div>
    <div>Content</div>
</div>

答案 4 :(得分:0)

不确定您是否正在寻找纯css解决方案。 Jquery允许您绑定click事件:

jQuery('.outer').click(function() {
  window.location = 'http://www.google.com/';
});

答案 5 :(得分:0)

<a href="...">
<div>
...
</div>
</a>

对HTML5有效。