我需要创建一个按钮或元素,它将具有透明边角的边框,如示例图像中所示。
我没有为此找到任何CSS,我想要放置4个:after
元素来覆盖元素的角落。你有任何纯粹的CSS或jquery解决方案吗?
答案 0 :(得分:4)
这是 example ,根据要求,使用background-image
(这是一种单色线性渐变)
button {
border:3px transparent solid;
background:tomato;
padding:5px;
margin:5px;
display:inline-block;/* optionnal, it should be defaut layout */
background-image:
linear-gradient(to left, brown, brown),
linear-gradient(to left, brown, brown),
linear-gradient(to left, brown, brown),
linear-gradient(to left, brown, brown);
background-size:
80% 2px,
80% 2px,
2px 80%,
2px 80%;
background-repeat:no-repeat;
background-position:
top,
bottom,
left,
right;
}
答案 1 :(得分:2)
我认为选定的答案会摇滚!在我注意到这个问题得到解答之前我做到了它使用:before和:after。它可能与传统浏览器兼容 - 如果浏览器支持伪元素。它也是一个单一元素。
<强> http://jsbin.com/gopox/1/edit 强>
CSS:
.button {
position: relative;
display: inline-block;
border: 0;
padding: 8px 15px;
font-size: 16px;
box-sizing: border-box;
text-decoration: none;
color: #333;
font-family: sans-serif;
line-height: 1;
background:#f7f7f7;
cursor:pointer;
}
.button:before, .button:after {
content: '';
position: absolute;
left: 0;
right: 0;
border: 1px solid red;
top: 5px;
bottom: 5px;
border-top: 0;
border-bottom: 0;
}
.button:after {
left: 5px;
right: 5px;
top: 0;
bottom: 0;
border: 1px solid red;
border-left: 0;
border-right: 0;
}
.button:hover:before,
.button:hover:after {
border-color: blue;
color:blue;
}
HTML
<a href="http://google.com" class="button">My Button</a>
<button class="button">My Button</button>