CSS3三角形中的文本对齐

时间:2013-05-16 03:19:23

标签: css3 text css

我在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;
}

1 个答案:

答案 0 :(得分:1)

由于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/