【发布时间】:2017-01-22 00:25:07
【问题描述】:
我不知道这是否存在,但我正在为自己制作一个小型 Web 构建器,在其中添加新的 HTML 元素,为其提供我想要的属性及其值。
之后,我通过 Javascript 进行了一些 CSS 更改,对于 border-radius,我使用了这个:
function borderRadius(){
var dr = document.getElementById("displayColor");
var rv = document.getElementById("radiusValue");
var tl = document.getElementById("tl").value;
var tr = document.getElementById("tr").value;
var bl = document.getElementById("bl").value;
var br = document.getElementById("br").value;
rv.innerHTML = 'Top-Left: '+tl+'%; Top-Right: '+tr+'%; Bottom-Left: '+bl+'%; Bottom-Right: '+br+'%;';
dr.style.borderTopLeftRadius = tl+'%';
dr.style.borderTopRightRadius = tr+'%';
dr.style.borderBottomLeftRadius = bl+'%';
dr.style.borderBottomRightRadius = br+'%';
}
现在我的问题是我可以通过 CSS 制作类似的东西
周围不做额外的元素?
更新:
正如 GabyakaG.Petrioli 所说,这可能是一个解决方案,有了它我已经成功了一半:
.round {
background:
radial-gradient(circle at 0 50%, rgba(204,0,0,0) 40%, #c00 10%),
radial-gradient(circle at 100% 50%, rgba(204,0,0,0) 40%, #c00 10%),
radial-gradient(circle at 100%, rgba(204,0,0,0) 40%, #c00 10%),
radial-gradient(circle at 0, rgba(204,0,0,0) 40%, #c00 10%);
background-position: bottom left, bottom right, top right, top left;
background-size: 50% 100%;
background-repeat: no-repeat;
padding: 10%;
padding-left: 22%;
padding-right: 22%;
}
<div class="round">By using radial gradients, you can simulate rounded corners with a negative radius. Just in this case, don't put the color stops at the exact same position, since the result will be too aliased in most browsers (and kinda still is in Webkit).</div>
我也在这里找到了答案和解决方案,但我仍然有一些边距或其他东西:
*{margin: 0; outline:0; border: 0;}
.round {
background:
radial-gradient(circle at 0 100%, rgba(204,0,0,0) 70%, #c00 71%),
radial-gradient(circle at 100% 100%, rgba(204,0,0,0) 70%, #c00 71%),
radial-gradient(circle at 100% 0, rgba(204,0,0,0) 70%, #c00 71%),
radial-gradient(circle at 0 0, rgba(204,0,0,0) 70%, #c00 71%);
background-position: bottom left, bottom right, top right, top left;
background-size: 50% 50%;
background-repeat: no-repeat;
width: 300px;
height: 300px;
padding: 10%;
transform: rotate(45deg);
}
p{
transform: rotate(-45deg);
width: 100px;
margin: 100px;
}
<div class="round"><p>
By using radial gradients, you can simulate rounded corners with a negative radius. Just in this case,</p></div>
【问题讨论】:
-
我不这么认为 - 看看这里以了解可以做什么:1stwebdesigner.com/css-shapes 和 css-tricks.com/examples/ShapesOfCSS
-
我确实看到了这些,但无论如何感谢它们也很酷,同时通过实时添加边框大小等来创建它们,并且此输入具有范围类型等,它可以制作许多好看的元素。但我在想这个很好,它可以用周围的 4 个元素和它们的边界来完成,但我想要没有它们:D
-
看看stackoverflow.com/a/18518367/128165,但它需要大量调整(使用渐变)
-
@GabyakaG.Petrioli 谢谢,我需要看看它是如何工作的,但这是一个很好的例子。
标签: javascript css css-shapes