2

我正在尝试使用 CSS 创建一个看起来像这样的工具提示:

倒圆角

这就是我试图解决它的方法:http: //jsfiddle.net/NXLuZ/

所以,基本上我正在使用 css3 掩码:

div:after {
    width: 61px;
    height: 10px;
    background: #fff;
    -webkit-mask-image: radial-gradient(circle 10px at 0px 0, transparent 0, transparent 10px, black 11px);
    top: -10px;
    right: 0px;
    position: absolute;
    content: '';
    display: block;
}

在常规显示器上看起来不错,但是当您在视网膜显示器上查看它或尝试放大时可以看到问题:

问题

因为我使用渐变作为蒙版,所以当渐变中的颜色发生变化时,它看起来有点模糊。值得一提的是,圆角需要透明,因为背景不是固定在它后面的。

知道如何解决这个问题吗?

4

1 回答 1

4

你可以用盒子阴影做到这一点:

.demo{
    position: absolute;
    left: 400px;
    top: 106px;
    background: #fff;
    width: 200px;
    height: 200px;
    -moz-border-radius:10px 0 10px 10px;
    -webkit-border-radius:10px 0 10px 10px;
    border-radius:10px 0 10px 10px;
    -moz-box-shadow: 3px 4px 20px rgba(0,0,0,.5);
    -webkit-box-shadow: 3px 4px 20px rgba(0,0,0,.5);
    box-shadow: 3px 4px 20px rgba(0,0,0,.5);    
    line-height:200px;
    text-align:center;
    color:#dbdbdb;
}

.demo:before {
    content: '';
    width: 50px;
    position: absolute;
    right: 0px;
    top: -26px;
    height: 16px;
    background: #fff;
    -moz-border-radius:10px 10px 0 0;
    -webkit-border-radius:10px 10px 0 0;
    border-radius:10px 10px 0 0;
    display: block;
}

.demo:after {
    width: 10px;
    height: 10px;
    background: transparent;
    top: -10px;
    right: 50px;
    position: absolute;
    content: '';
    border-bottom-right-radius: 100%;
    box-shadow: 50px 0px 0px 50px white;
    clip: rect(0px, 60px, 50px, 0px);
    display: block;
}

小提琴

于 2014-01-10T20:19:37.790 回答