我在div中设置文本样式时遇到了问题,该div是三角形的。所有这些都是通过CSS完成的。
三角形目前绝对定位,因为它需要一个更大的项目(我已经从更大的项目中删除了代码,因为它是不相关的)。
这是一个jsFiddle
请看下面的代码:
HTML<div>Here is a Triangle</div>
CSS div {
text-align: center;
color: #fff;
font-size: 1.125em;
width: 100%;
}
div:nth-child(1) {
position: absolute;
top: 100px;
left: 100px;
width: 0;
height: 0;
border-left: 126px solid transparent;
border-right: 126px solid transparent;
border-bottom: 126px solid #D30000;
}
由于div
的宽度为零,因此每对单词之间将有一个换行符。
一种解决方案可能是用一个元素创建形状,并将文本放在另一个元素中。
你需要意识到三角形实际上是位于顶部顶点的0x0元素的一个非常厚的边界,并相应地定位。
在这里,我已经将文本定位在三角形的基线,并将其宽度从底部的一个顶点到另一个顶点。您可以随意调整文本元素的大小,以避免文本溢出三角形。然而,恐怕你不能让文本在三角形中流动:
HTML:<div class="triangle"><div class="text">Here is a Triangle</div></div>
CSS: div { /*your original CSS*/ }
div.triangle { /* your original CSS for div:nth-child(1) */ }
div.text {
position: absolute;
bottom: -126px; /* baseline */
left: -126px; /* left tip */
right: -126px; /* right tip */
width: auto; /* reset width:100% from div */
height: auto; /* just in case */
}
http://jsfiddle.net/honnza/UPeCf/8/