CSS双边框,第二个边框一直到元素的顶部

时间:2014-09-24 15:27:11

标签: html css css3 button

我想在css中重新创建它:

enter image description here

如您所见,它可以像这样轻松完成:

border-top: 1px solid #E2E2E2;
border-left: 1px solid #E2E2E2;
border-bottom: 1px solid #848484;
border-right: 1px solid #848484;

然后我们补充说:

box-shadow: 0.7px 0.7px 0 0.7px hsl(0, 0%, 0%);

但是!这产生了这个:

enter image description here

由于box-shadow的性质有效地将顶部和左侧1像素添加到另一侧,因此底部和右侧有2pxborder,而不是1px。大纲不会发生,因为这一切都在发生。有没有什么方法可以在右边和底部以1px裁剪出来?

3 个答案:

答案 0 :(得分:3)

这是一个JSBin演示:http://jsbin.com/reqev/1/edit?html,css,output

尽管有你的头衔,我还是使用了一个盒子阴影来达到你想要的效果。既然你已经尝试了盒子阴影,我认为你并没有完全反对它,并且对你自己的实现没有好运。如果我的假设不正确,我道歉。

这里是CSS:

body {
  background: white;
}
button {
  border-right:  1px solid black;
  border-bottom: 1px solid black;
  border-top:    none;
  border-left:   none;
  background:    #ddd;
  box-shadow:    inset 1px 1px #e2e2e2,
                 inset -1px -1px #848484;
  padding:       5px 20px;
}

答案 1 :(得分:1)

您可以使用两个元素而不是一个元素来执行此操作:

<div id="x"><div id="z">Button</div></div>

CSS

#x {
    border-top: 1px solid #E2E2E2;
    border-left: 1px solid #E2E2E2;
    border-bottom: 1px solid #000000;
    border-right: 1px solid #000000;
    background-color: #ddd;
    display: inline-block;
    cursor: pointer;
}
#z {
    padding: 5px 10px;
    border-bottom: 1px solid #838383;
    border-right: 1px solid #838383;
}

这是一个小提琴:http://jsfiddle.net/28z9mo8w/3/

答案 2 :(得分:0)

我认为这仍然可以通过使用box-shadow但设置插入

来实现

所以E2E2E2变成了一个左上边框,00000变成了一个右下边界,而848484变成了一个225度的插入阴影

请参阅此代码

https://github.com/necolas/css3-facebook-buttons