我正在尝试为div创建一个类似矩形的背景(圆角),但右角比左角低。这两个角之间的高度差必须保持相同**,与背景的总高度无关。
大概是这样:
我不知道哪种解决方案最好:一个完整的svg,或者只使用css中的clip-path。
我尝试手动创建一个svg,但结果似乎不够精确。
<svg width="500" height="200">
<defs>
<mask id="roundCorner">
<rect width="100%" height="100%" fill="white"/>
//left corner
<rect width="50" height="50" fill="black"/>
<circle r="50" cx="50" cy="50" fill="white"/>
//right corner
<rect x='450' y="25" width="50" height="50" fill="black"/>
<circle r="50" cx="450" cy="76" fill="white"/>
//line
<path d="M50 0 L500 30 L500 0 Z" fill='black' />
</mask>
</defs>
<rect x="0" y="0" width="100%" height="100%" fill="lime" mask="url(#roundCorner)"/>
</svg>
那么我怎样才能有效地实现这样一个干净的背景呢?
1条答案
按热度按时间m2xkgtsf1#
第一个你需要采取的形状在svg格式像这样。
接下来,你需要一个在线的svg到css的剪辑路径转换器here。在这个转换器中你有坐标点,它可以帮助你设置当扩展元素的宽度或高度时哪些部分总是相同的形状。
根据您的问题,如果高度增加,则右下角低于左下角,因此右上角坐标点金色标记在以下屏幕截图中,
在上图中,剩余坐标值如下:
黑色标记-右下
靛蓝色标记-左下
绿色标记-左上角
最后你得到的代码如下,你改变所有的坐标值后,如果需要什么,并点击获取代码按钮.
x一个一个一个一个x一个一个二个x