CSS Transform to skew the shape to a trapezium

2019-02-06 02:10发布

I want to be able to skew an element in the way the image displays below.

rhombus

I have been playing around with it, but dont seem to be able to get close to replicating that shape.

My css code is

transform:skew(30deg,30deg);

Is transform even the right way to do this? Please let me know the best, most browser compatible, solution.

2条回答
萌系小妹纸
2楼-- · 2019-02-06 02:40

Try this:

Html

<div class="trapezium"></div>

StyleSheet

.trapezium {
    border-bottom: 80px solid #fff;
    border-left: 45px solid transparent;
    border-right: 45px solid transparent;
    padding: 0 8px 0 0;
    height: 0;
    width: 120px;
    position: relative;
    margin: 2em auto;
}

.trapezium:before {
    border-bottom: 90px solid #000;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    padding: 0 8px 0 0;
    height: 0;
    width: 130px;
    position: absolute;
    bottom: -85px;
    left: -55px;
    content: "";
    z-index: -1;
}

Here is the Demo

查看更多
The star\"
3楼-- · 2019-02-06 02:47

You can apply some rotate transform around the X axis and apply an appropriate pespective before:

div {    
  width:300px;
  height:200px;
  background:url(http://placekitten.com/300/200);
  border:2px solid red;    
  border-top-width:4px;
  border-bottom-width:1px;
  -webkit-transform: perspective(200px) rotateX(40deg);    
  margin:100px;
}

Demo

查看更多
登录 后发表回答