我知道有可能倾斜,但我没有找到一种方法以特定的角度倾斜每个角。
这是我正在从事的项目:http://map.ucf.edu/
特别查看菜单中的选项卡。 现在我正在使用图像,我想为有能力的浏览器更改它。
我知道可以创建一个 CSS trapazoid,但那是使用没有内容的边框。 最终结果还需要一些圆角。
编辑: 从Zoltan Toth 的解决方案开始,我能够实现这一目标:演示
div {
height: 20px;
padding:2px 5px 0 5px;
color:white;
background: rgba(0,0,0,.5);
margin: 0 10px;
position: relative;
border-top-left-radius: 6px 4px;
border-top-right-radius: 6px 4px;
font-family:sans-serif;
font-size:13px;
line-height:20px;
vertical-align:bottom;
display:inline-block;
white-space:nowrap;
}
div:before {
content: '';
line-height: 0;
font-size: 0;
width: 0;
height: 0;
border-bottom: 19px solid rgba(0,0,0,.5);
border-left: 9px solid transparent;
position: absolute;
bottom: 0;
left: -9px;
}
div:after {
content: '';
line-height: 0;
font-size: 0;
width: 0;
height: 0;
border-bottom: 19px solid rgba(0,0,0,.5);
border-right: 9px solid transparent;
position: absolute;
bottom: 0;
right: -9px;
}
.b { background:black; margin:0 -7px 0 20px; }
.b:after, .b:before { border-bottom-color:black; }
有可能,这是大概的想法:
div {
width: 200px;
height: 100px;
background: #ddd;
margin: 20px 150px;
position: relative
}
div:before {
content: '';
line-height: 0;
font-size: 0;
width: 0;
height: 0;
border-top: 50px solid transparent;
border-bottom: 50px solid #ddd;
border-left: 50px solid transparent;
border-right: 50px solid #ddd;
position: absolute;
top: 0;
left: -99px;
}
div:after {
content: '';
line-height: 0;
font-size: 0;
width: 0;
height: 0;
border-top: 50px solid transparent;
border-bottom: 50px solid #ddd;
border-left: 50px solid #ddd;
border-right: 50px solid transparent;
position: absolute;
top: 0;
right: -99px;
}
<div>Hello</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam cursus ex quis enim posuere auctor.</div>
linear-gradient()
在矩形元素上绘制梯形。
这个技巧使用了将整个形状分成不同部分的想法,然后在背景上独立绘制每个形状。
div {
background-image:
linear-gradient(to bottom right, transparent 50%, silver 50%), /* draws left part */
linear-gradient(to bottom left, transparent 50%, silver 50%), /* draws right part */
linear-gradient(to right, silver, silver); /* draws central flat part */
background-repeat: no-repeat;
/* Sets the background size of each of three shapes individually */
background-size: 75px 100%, 75px 100%, calc(100% - 150px) 100%;
/* Sets the background position of each of three shapes individually */
background-position: 0 0, 100% 0, 75px 0;
}
body {
background: linear-gradient(orange, red) no-repeat;
min-height: 100vh;
margin: 0;
}
div {
background-image: linear-gradient(to bottom right, transparent 50%, silver 50%),
linear-gradient(to bottom left, transparent 50%, silver 50%),
linear-gradient(to right, silver, silver);
background-size: 75px 100%, 75px 100%, calc(100% - 150px) 100%;
background-position: 0 0, 100% 0, 75px 0;
background-repeat: no-repeat;
padding: 20px 80px;
min-height: 80px;
width: 300px;
margin: 25px;
}
<div>
Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet...
</div>
<div>
Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet... Lorem ipsum dolor sit amet...
</div>
.rectangle {
width: 400px;
height: 200px;
background-color: red;
clip-path: polygon(15% 0, 85% 0, 100% 100%, 0% 100%);
}
<div class="rectangle"></div>
在此示例中,我们有 4 个参数。
第一个参数(左上角)
x -> 15% y -> 0
第二个参数(右上角)
x -> 85% y -> 0
第三个参数(右下)
x -> 100% y -> 100%
第四个参数(左下)
x -> 0 y -> 100%