html - 单独的按钮 :active from parentDiv:Active

标签 html css less

我想在一个 div 中添加一个按钮。当按下按钮时,按钮的框阴影消失,当按下父 div 时,它的框阴影也应该消失。

问题是当我按下按钮时,父 div 的阴影也消失了,这不应该是

例如:

<div class="parent">
    <img>
    <h1></h1>
    <p></p>
    <button></button>
</div>

样式:

.parent {
    box-shadow: 0 2px 10px 0 @color;
   //some styling

    button {
        box-shadow: 0 2px 10px 0 @color;
    }

    button:active{
        box-shadow: none;
    }
}

.parent:active{
    box-shadow: none;
}

如何实现分离? 到目前为止,我使用较少并尝试更改 z-index。

我想到的是,如果两个类都处于事件状态,是否可以重新应用框阴影,但我不知道这是否可能以及选择器的外观如何。

我更喜欢完全基于 css 的无 js 解决方案。

最佳答案

想法是使用另一个元素来创建阴影。它将成为按钮的同级按钮,您将不再有问题:

.parent {
  padding:20px;
  text-align:center;
  position:relative;
}
.parent .shadow  {
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  right:0;
  box-shadow: 0 2px 10px 0 red;
}

button {
  box-shadow: 0 2px 10px 0 red;
  position:relative;
  z-index:2;
}

button:active {
  box-shadow: none;
}

.parent .shadow:active {
  box-shadow: none;
}
<div class="parent">
  <h1>a title</h1>
  <p>some text</p>
  <button>a button</button>
  <span class="shadow"></span>
</div>

关于html - 单独的按钮 :active from parentDiv:Active,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51177450/

相关文章:

javascript - 如何在更改新值后保持文本区域的旧值?

php - 在使用 PHP Mysql Excel 上传期间如何验证手机号码列?

javascript - 使用 JQuery 水平和垂直居中 img

css - 边距在 Opera、Chrome 和 IE 中正确显示,但在 FF 中不正确

php - 如何用php验证选择字段?

javascript - 为什么在媒体查询更新后修改 CSS 规则失败

css - 如何给 DIV 两个高度(一个用于 IE,第二个用于其他浏览器)

css - 更少的没有样式的 css 导入规则

css - 根据 body ID 声明 less 变量

javascript - 使用 Less.js 时如何重新加载 CSS