CSS相对定位阻止点击链接

时间:2014-04-06 12:53:44

标签: css

请在这里查看我的jsfiddle - http://jsfiddle.net/ftuZ5/。我知道为什么链接不起作用,因为我用来创建我想要的链接/菜单背景的相对位置是覆盖一个元素,但我无法弄清楚如何解决问题(尝试过相对和z-index在li和a元素上,再加上额外的div来跨越一个元素,使用它来创建“按钮”风格的背景),但都无济于事。

li {
    list-style: none;
}
.side-nav li {
  padding-bottom: 3.125em;
  width: 100%;
  line-height: 1.25em;
  text-align: center;
}
.side-nav a {
  position: relative;
  top: 1.75em;
  z-index: -1;
  display: block;
  color: white;
  text-decoration: none;
  background: #c7cbaf;
  -webkit-border-radius: 48px;
  -moz-border-radius: 48px;
  -ms-border-radius: 48px;
  -o-border-radius: 48px;
  border-radius: 48px;
  padding-top: 1.375em;
  padding-bottom: 0.75em;
  text-transform: uppercase;
}
.responsive-side-nav {
  background: transparent url(http://thewebbakery.co.uk/assets/graphics/responsive-icon-sml.png) no-repeat top center;
}

.interactive-side-nav {
  background: transparent url(http://thewebbakery.co.uk/assets/graphics/interactive-icon-sml.png) no-repeat top center;
}

.ux-side-nav {
  background: transparent url(http://thewebbakery.co.uk/assets/graphics/ux-icon-sml.png) no-repeat top center;
}

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

如果将标签显示为“块”

,则必须在标签上设置高度和宽度

答案 1 :(得分:0)

这是一个可能的解决方案:

JSFiddle

<nav class="side-nav" role=navigation>
<ul>
    <li><a href="#"><div id="responsive-side-nav" class="side-nav-image"></div>Responsive Web Design</a></li>
    <li><a href="#"><div id="interactive-side-nav" class="side-nav-image"></div>Interactive Web Design</a></li>
    <li><a href="#"><div id="ux-side-nav" class="side-nav-image"></div>User Experience</a></li>
</ul>

通过将锚标签包裹在图像的新div周围,整个事物变得可点击。

然后您可以根据需要定位图像(我为每个图像创建了一个公共类):

.side-nav-image
{
    width: 100%;
    height: 50px;
    margin-top: -50px;
}

唯一的缺点是按钮的命中区域增加到适合图像的大小。但是如果你想让图像重叠,同时让整个图像可以点击,我不确定是否可能。