4

我正在尝试仅使用 css 重现此图像

在此处输入图像描述

我玩过半径属性,但你会看到我没有得到相同的角度效果。

.shape{
background-color: black;
opacity:0.9;
filter:alpha(opacity=90); /* For IE8 and earlier */    
    color:white;
    font-weight:bold;
    padding: 30px 30px 30px 50px;
    text-align:center;
    position:absolute;
    right:0;
    bottom:0;
    z-index:1003;
    font-size: 20px;    
    border-top-left-radius: 125px;
    -moz-border-radius-topright: 125px;
}
​

您可以在http://jsfiddle.net/ymorin007/7qX4U/看到我尝试过的内容

谢谢。

4

2 回答 2

5

可能不兼容跨浏览器,但这会让你接近:)

.shape{
    background-color: black;
    opacity:0.9;
    filter:alpha(opacity=90); /* For IE8 and earlier */    
    color:white;
    font-weight:bold;
    padding: 30px 30px 30px 50px;
    text-align:center;
    position:absolute;
    right:0;
    bottom:0;
    z-index:1003;
    font-size: 20px;    
    border-top-left-radius: 125px;
    -moz-border-radius-topright: 125px;
}

.shape::before{
   content:"";
   width:0;
   height:0;
   position:absolute;
   left:-34px;
   border-left: 53px solid transparent;
   border-right: 53px solid transparent;    
   border-bottom: 53px solid black;
}
​

小提琴:http: //jsfiddle.net/pggRb/

于 2012-11-30T16:25:55.320 回答
1

如果您需要命中测试,您可能需要考虑使用倾斜的伪元素:

div {
  position: fixed;
  bottom: 0;
  right: 0;
  height: 50px;
  width: 200px;
  background: gray;
  cursor: pointer;
  transition: all 0.6s;
}
div:before {
  content: "";
  position: absolute;
  top: 0;
  left: -50%;
  width: 100%;
  height: 100%;
  background: inherit;
  transform: skewX(-45deg);
  border-radius: 20px 0 0 0;
  z-index: -1;
}
div:hover {
  background: tomato;
  ]
<div>SOME TEXT</div>

于 2015-05-22T11:55:19.467 回答