【问题标题】:How to add box-shadow to ::after when after if is a triangle?当 if 之后是三角形时,如何将 box-shadow 添加到 ::after?
【发布时间】:2019-11-16 18:21:14
【问题描述】:

我想为我的所有元素添加 box-shadow(见图)

但我不知道如何正确地为 ::after. 添加 box-shadow

我现在的 CSS 代码 -

.controll_btn {
  transition: all 0.1s ease;
  position: relative;
  width: 50px;
  height: 40px;
  background-color: #00a4ff;
  cursor: pointer;
  box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.3);
  border-radius: 4px;
  border: none;
  padding: 10px 15px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-content: space-between;
  outline: none;
  z-index: 5;
}
.controll_btn::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -8px;
  z-index: -50;
  border-top: 11px solid #00a4ff;
  border-left: 11px solid transparent;
  filter: 0 0 6px 0 rgba(0, 0, 0, 0.3);
}

如果有人知道如何添加相同的盒子阴影,请写!谢谢!

【问题讨论】:

标签: html css after-effects box-shadow


【解决方案1】:

你可以使用 dropshadow() 过滤器

.controll_btn {
 
  margin:2em;
  transition: all 0.1s ease;
  position: relative;
  width: 50px;
  height: 40px;
  background-color: #00a4ff;
  cursor: pointer;
  box-shadow: 0 2px 6px 2px rgba(0, 0, 0, 0.5),  0 0px 6px 2px rgba(0, 0, 0, 0.5);
  border-radius: 4px;
  border: none;
  padding: 10px 15px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-content: space-between;
  outline: none;
  z-index: 5;
  
}
.controll_btn::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -8px;
  z-index: -50;
  border-top: 11px solid #00a4ff;
  border-left: 11px solid transparent;
  filter: drop-shadow(2px 4px 2px   rgba(0, 0, 0, 1));
}
body {background:yellow;}

/* zie smiley for ze fun */


.smiley  {
  background:white;
  width:30px;
  height:14px;
  display:block;
  margin:20px auto 0;
  border-radius: 50% / 0 0 100% 100% ;
  display:flex;
  justify-content:space-between;
  box-shadow: 0 0 2px black, inset 2px 2px 2px turquoise;
  
}
.smiley:before, .smiley:after {
  content:'';
  float:left;;
  height:10px;
  width:10px;
  background:inherit;
  border-radius:50%; 
  margin-top:-15px;  
  box-shadow:inherit;
}
<div class="controll_btn">  <span class='smiley'></span></div>

https://developer.mozilla.org/en-US/docs/Web/CSS/filter-function/drop-shadow

【讨论】:

  • @Anon 再检查一次,我增加了阴影不透明度以便更好地看到它,否则如果它不工作你使用哪个浏览器?你需要调整它
【解决方案2】:

already an answer 表示要在同一个类中添加一个:before 伪元素,然后设置box-shadowtransform: rotate(45deg)

【讨论】:

  • 谢谢,但这是一个例子与我已经读过的不一样。
猜你喜欢
  • 2015-03-17
  • 1970-01-01
  • 2017-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 2014-09-23
相关资源
最近更新 更多