边界半径与css三角形

Dan*_*eld 5 css cross-browser css3 css-shapes

我有一个矩形,对角线的每一边都有自己的颜色

在此输入图像描述

div {
    width: 0;
    height: 0;    
    border-left: 150px solid green;
    border-top: 100px solid gray;
}
Run Code Online (Sandbox Code Playgroud)

现在我想为div添加一个border-radius,但后来我发现除了左下角之外,这对所有边都有效.

所以,如果我添加:

border-radius: 10px 10px 10px 0;
Run Code Online (Sandbox Code Playgroud)

我明白:

在此输入图像描述

..但是一旦我添加了一个左下边界半径,我得到这个:

在此输入图像描述

1)为什么会这样?

2)有一个简单的解决方案吗?

编辑:

我正在使用Chrome,但我只是看了一个火狐和IE,结果不同!

火狐:

在此输入图像描述

IE 11

在此输入图像描述

这是怎么回事?

dfs*_*fsq 5

尝试添加包装容器:

<div class="wrap">
    <div class="triangle"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

这种风格:

.wrap {
    display: inline-block;
    overflow: hidden;
    border-radius: 10px;
}
Run Code Online (Sandbox Code Playgroud)

overflow: hidden; 应该做的伎俩.

演示:http://jsfiddle.net/dfsq/9xDVj/8/

  • 当然,但它没有回答第一个问题. (4认同)
  • @HashemQolami我相信它的发生是因为在这种情况下的行为没有在规范中定义(至少我不知道它),所以这取决于浏览器厂商的具体实现. (2认同)