如何在下面的形状周围添加框阴影

时间:2017-11-21 12:23:50

标签: html css html5 css3

嗨,大家好我想在使用css创建的自定义形状周围添加一个框阴影 如下图所示

enter image description here

body{
   padding:50px
}
div{
    height: 45px;
    width: 209px;
    float: left;
    color: #fff;
    line-height: 45px;
    text-align: center;
    position: relative;
    font-family: Arial;
    font-weight: bold;
    font-size: 16px;
    background-color: #50b3cf;
}
div::after{
    position: absolute;
    z-index: 2;
    content: "";
    width: 0;
    height: 0;
    border-top: 22.5px solid transparent;
    border-bottom: 22.5px solid transparent;
    right: 1px;
    transform: translateX(100%);
    border-left: 22.5px solid #50b3cf;
}
<div></div>

4 个答案:

答案 0 :(得分:4)

  1. 声明伪元素的值 width&amp; height 性能;
  2. 清除边框;
  3. 然后旋转有问题的伪元素;
  4. 现在根据需要应用box-shadow;
  5. 抓住一个很冷的人;
  6. body{
       padding:50px
    }
    div{
        height: 45px;
        width: 209px;
        float: left;
        color: #fff;
        line-height: 45px;
        text-align: center;
        position: relative;
        font-family: Arial;
        font-weight: bold;
        font-size: 16px;
        background-color: #50b3cf;
        box-shadow: 0px 0px 5px 3px #000000;
    }
    div::after {
        position: absolute;
        z-index: 2;
        content: "";
        left: 100%;
        width: 32px;
        height: 32px;
        background: #50b3cf;
        transform: rotate(46deg);
        transform-origin: 0 0;
        box-shadow: 3px -3px 5px 0px #000000;
    }
    div::before { /* ver 2.0 Patch */
        content: "";
        position: absolute;
        background: #50b3cf;
        top: 0;
        bottom: 0;
        width: 25px;
        right: 0;
        z-index: 9;
    }
    <div></div>

答案 1 :(得分:1)

&#13;
&#13;
.box{
	border:1px solid white;
	width:400px;
	height:150px;	
	margin-left:40px;
	box-shadow: 0 0 9px 3px rgba(0,0,0,0.5);
}
.arrow {
   width: 100px;
   height: 100px;
   position: relative;
   top:20px;
   left:-100px;
   overflow: hidden;
   box-shadow: 0 10px 10px -17px rgba(0,0,0,0.5);
     transform: rotate(270deg);  
}
.arrow:after {
   content: "";
   position: absolute;
   width: 50px;
   height: 50px;
   background: white;
   transform: rotate(45deg);
   top: 76px;
   left: 25px;
   box-shadow: -2px -2px 9px 0px rgba(0,0,0,0.5);
}
&#13;
<div class="box">
<div class="arrow"></div>
 </div>
&#13;
&#13;
&#13;

试试此代码

答案 2 :(得分:1)

也许这就是你要做的。
第一个带有框阴影,第二个没有框阴影,但你可以在课程中使用此代码box-shadow: 0px 0px 6px 0px #000;添加它#34; arrow-r&#34;

enter image description here

<style type="text/css">
    .main-box{
      position: relative;
      padding: 0 35px 90px;
}
.box{
  font-size: 20px;
    position: relative;
    display: inline-block;
    clear: both;
    margin-bottom: 8px;
    padding: 13px 14px;
    vertical-align: top;
    border-radius: 5px;
}
.arrow-l {

  float: left;
  color: #fff;
  background-color: #08abf4;    box-shadow: 0px 0px 6px 0px #000;

}
.arrow-r {

  float: right;
  color: #1a1a1a;
  background-color: #e2e2e2;

}
.box:before{
      position: absolute;
    top: 24px;
    width: 8px;
    height: 6px;
    content: '\00a0';
    -webkit-transform: rotate(30deg) skew(-36deg);
    transform: rotate(30deg) skew(-36deg);
}
.box.left:before {
  left: -4px;
  background-color: #08abf4;

}

.box:before{
      position: absolute;
    top: 21px;
    width: 8px;
    height: 6px;
    content: '\00a0';
    -webkit-transform: rotate(30deg) skew(-36deg);
    transform: rotate(30deg) skew(-36deg);
}
.box.right:before {
  right: -4px;
  background-color: #e2e2e2;
}

</style>

<div class="main-box">
  <div class="box arrow-l left">
                    I'm Liam Lababidi
                </div>
    <div class="box arrow-r right">
                    What about u?
                </div>
</div>

答案 3 :(得分:-2)

您想使用box-shadow: 10px 10px 5px #888888;。每个px表示哪一侧,#表示颜色。

body{
   padding:50px
}
div{
    height: 45px;
    width: 209px;
    float: left;
    color: #fff;
    line-height: 45px;
    text-align: center;
    position: relative;
    font-family: Arial;
    font-weight: bold;
    font-size: 16px;
    background-color: #50b3cf;
    box-shadow: 0px 10px 5px #888888;
}
div::after{
    position: absolute;
    z-index: 2;
    content: "";
    width: 0;
    height: 0;
    border-top: 22.5px solid transparent;
    border-bottom: 22.5px solid transparent;
    right: 1px;
    transform: translateX(100%);
    border-left: 22.5px solid #50b3cf;
}
<div></div>