如何在对象周围创建不可点击的区域?

时间:2016-10-29 12:25:29

标签: html css overflow

这个圈子周围必须是不可点击的区域,我该怎么做?

.circ {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: red;
  overflow: hidden;
  transform: translate(-50%, -50%);
}
.circ .sub-1,
.circ .sub-2 {
  position: absolute;
  width: 200px;
  height: 200px;
  background: green;
}
.circ .sub-1 a,
.circ .sub-2 a {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  height: 100%;
  background: yellow;
}
.sub-2 {
  bottom: 0;
  right: 0;
}
<div class="circ">
  <div class="sub-1">
    <a href="#"></a>
  </div>
  <div class="sub-2">
    <a href="#"></a>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

<强>更新

它应该按原样运行,在Edge和Firefox中进行测试并且两者都有效,尽管Chrome(以及其他基于WebKit的浏览器)之前的问题不是clipping border radius,而在你的情况下它们似乎仍然存在问题。

这是一个解决方法,你的简化版本可以正常工作,旋转30度。

让它在Chrome上运行的技巧(假设所有基于WebKit的浏览器)是:

  • 在div position上使用circ并锚定a
  • 使用margin而不是position
  • 移动2:nd锚点

.wrap {
  position: absolute;
  left: 50%;
  width: 400px;
  height: 400px;
  transform: translateX(-50%) rotate(30deg);
}
.circ {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: red;
  overflow: hidden;
}
.circ a {
  display: block;
  width: 50%;
  height: 50%;
  background: yellow;
}
.circ a + a {
  margin-left: 50%;
}
<div class="wrap">
  <div class="circ">
    <a href="#"></a>
    <a href="#"></a>
  </div>
</div>