缺角效果
先看效果圖
這是内容
.div1 {
width: 100px;
height: 40px;
line-height: 40px;
background:linear-gradient(-135deg, transparent 15px, #162e48 0);
color: #fff;
padding: 5px 15px;
text-align: center;
margin-bottom: 30px;
}
補角效果
先看效果圖
這是内容
.div2 {
width: 100px;
height: 40px;
line-height: 40px;
background:linear-gradient(-135deg, #f00 15px, #162e48 0);
color: #fff;
padding: 5px 15px;
text-align: center;
margin-bottom: 30px;
}
隻是在栗子1的基礎上修改了linear-gradient,将transparent修改為#f00
帶邊框的效果
先看效果圖
這是内容
.div3 {
width: 100px;
height: 40px;
line-height: 40px;
background:linear-gradient(-135deg, #f00 15px, #162e48 0);
color: #fff;
padding: 5px 15px;
text-align: center;
margin-bottom: 30px;
box-shadow: 0 0 1px 1px #fff inset;
}
在栗子2的基礎上增加了box-shadow,當然加邊框可以有多種方式,可自行選擇。
開關效果
效果圖
OFF ON
.div4 {
width: 144px;
height: 30px;
line-height: 30px;
background: #162e48;
color: #FFF;
text-align: center;
margin-bottom: 30px;
}
.div4-1, .div4-2 {
width: 86px;
float: left;
}
.div4-1.active {
margin-right: -28px;
background:linear-gradient(-135deg, transparent 20px, #f00 0);
}
.div4-2.active {
margin-left: -28px;
background:linear-gradient(45deg, transparent 20px, #f00 0);
}
最終效果可根據需要自行調整
在栗子3的基礎上做到以下效果,單純使用linear-gradient沒有找到解決方法,如有方案,請在評論下給出方案。以下是其中一種解決方式
效果圖
.div5 {
width: 100px;
height: 40px;
line-height: 40px;
background:linear-gradient(-135deg, #fff 15px, #162e48 0);
color: #fff;
padding: 5px 15px;
text-align: center;
box-shadow: 0 0 1px 1px #fff;
margin-bottom: 30px;
position: relative;
}
.div5:after {
content: ' ';
border: solid transparent;
position: absolute;
border-width: 15px;
border-top-color: #000;
border-right-color: #000;
top: -1px;
right: -1px;
}
考慮到相容性問題,可以通過:before和:after實作同樣的效果,給出一個栗子
.div6 {
width: 100px;
height: 40px;
line-height: 40px;
background:#162e48;
color: #fff;
padding: 5px 15px;
text-align: center;
position: relative;
border: 1px solid #fff;
margin-bottom: 30px;
}
.div6:before {
content: ' ';
border: solid transparent;
position: absolute;
border-width: 15px;
border-top-color: #fff;
border-right-color: #fff;
right: 0px;
top: 0px;
}
.div6:after {
content: ' ';
border: solid transparent;
position: absolute;
border-width: 15px;
border-top-color: #000;
border-right-color: #000;
top: -1px;
right: -1px;
}