CSS:如何使span链接扩展?

时间:2009-07-22 06:35:54

标签: css hyperlink

我正在尝试在div按钮内建立链接,当你将鼠标悬停在div中时,它会因为css属性而检测到链接

display:block;width:100%;height:100%;

使用div它工作正常,但我试图将它用作跨度但显示器未对齐。如何使显示正确?

以下是代码:

<style>
.link-rounded-button {
    -webkit-border-radius: 7px;
    -moz-border-radius: 7px;
    border: 1px solid #828282;
    padding:0 0 0 3px;
    /* for test purposes, expand the width */
    width:200px;
}

.link-block {
    display:block;
    width:100%;
    height:100%;
}
</style>

<div class="link-rounded-button">
    <a class="link-block" href="#">this is a link inside a div</a>
</div>
<hr />
<!-- If I make the div to a span, the display is not correct. -->
<span class="link-rounded-button">
    <a class="link-block" href="#">this is a link inside a span</a>
</span>

提前致谢:)

亲切的问候, 标记

3 个答案:

答案 0 :(得分:6)

使<span>也成为块级元素。通过对display: block;标记执行<a>,您可以将其设置为块级元素。 <span>是内联元素。内联元素中不能包含块级元素。因此,您必须使<span>成为块级元素。

以下CSS将实现此目的:

SPAN.link-rounded-button {
    display: block;
}

如果您使用<span>以保持所有链接位于同一行,请使用以下内容:

SPAN.link-rounded-button {
    display: inline-block;
}

警告: IE6及以下版本仅支持默认内联的元素inline-block。例如,它不适用于<div>,但它可以在<span>上正常工作。


语义解决方案

您还可以删除额外的<div><span> ,以使您的代码更具语义性,并且仍然可以达到相同的效果(具有CSS {{ 1}}效果将在IE6中起作用):

<强> HTML:

:hover

<强> CSS:

<a class="link-rounded-button" href="#">this is a link with no extra markup</a>

我已经设置了此解决方案的演示。

  

Semantic Solution Demo


更多信息

以下是被视为块级元素或将块级元素作为子元素接受的元素列表。

  

XHTML 1.0 Block-level Elements

答案 1 :(得分:0)

尝试添加

display: block;

到.link-rounded-button样式。

答案 2 :(得分:0)

span的默认显示是 inline ,因此在其中放置一个块元素将无法提供您预期的结果。将 display:block 添加到.link-rounded-button。