【发布时间】:2014-11-14 20:23:06
【问题描述】:
我正在尝试使用 CSS3 在一个圆内创建大约十二个三角形(每个三角形的弧度为 360/12 = 30 度),以使它们的底部边框适合外圆的弧度,并且它们的峰值适合/弯曲内圈。我最初的想法是创建每个三角形,然后将其放置在两个圆圈内。但是使用 CSS 中简单的三角形创建方法,我无法弄清楚如何创建一个具有完全适合两个圆的边框的三角形。这些三角形需要稍后在其中包含文本(以及样式等)并使用 jQuery 或 JavaScript 移动(我还没有完全弄清楚那部分)。谁能给我任何想法?我该怎么做。另外,这是否是最好的方法,特别是如果我以后想使用 jQuery 将它们作为一个组拖动到两个圆圈内。我是 CSS/JavaScript/jQuery 的新手,任何帮助将不胜感激。
下面是两个圆的简单sn-p代码
.outerCircle {
width:400px;
height:400px;
border:1px solid black;
border-radius:50%;
}
.innerCircle {
position:relative;
left:170px;
top:170px;
width:50px;
height:50px;
border-radius:50%;
border:1px solid black;
}
.triangleOne {
}
<div class="outerCircle">
<div class="triangleOne" ></div>
<div class="triangleTwo" ></div>
<div class="triangleThree"> </div>
<div class="triangleFour" ></div >
<div class="triangleFive"> </div>
<div class="triangleSix"> </div>
<div class="triangleSeven"> </div>
<div class="triangleEight"> </div>
<div class="triangleNine" ></div>
<div class="triangleTen"> </div>
<div class="triangleEleven"> </div>
<div class="triangleTwelve" ></div>
<div class="innerCircle"></div>
</div>
【问题讨论】:
-
你打算怎么做一个三角形?使用图像?帆布? SVG?或者只是 CSS,正如 here 解释的那样?
-
注意,纯 CSS 三角形的样式非常有限。您所能做的就是更改三角形的颜色,并添加一个假边框,在其上放置另一个三角形(可能使用伪元素)。无论如何,this 是您要创建的吗?
-
@MaxArt:那很好。但是,通过使用旋转元素(比如 45 度)并使两个边框透明,可以创建带边框且不使用额外伪元素的三角形。但问题是它只会在两侧提供边界,而另一侧的边界可能需要使用 45 度的线性渐变来完成。但总的来说,我认为这对于 CSS 来说有点太复杂了。 SVG 可能是一个更好的主意。
-
@QPTR 为了获得 52px 和 165px,我使用了一些基本的几何图形(实际上是 163,但由于舍入和边框进行了调整),甚至没有三角函数。 SVG 允许你绘制任何你想要的形状,用任何你想要的填充它,用 CSS 设置它们的样式,作为一个加号if the browser supports
transform,你可以肯定it supports SVG too,所以它肯定是一个更好的选择。关于最终结果,您能否附上您想要实现的目标的图片?只用文字不容易理解。
标签: javascript jquery html css css-shapes