【发布时间】:2016-01-14 16:58:52
【问题描述】:
在我的 html/css 应用程序中,我有一个按钮的概念,它本质上是类 .button 具有一堆适当的属性。这是一个简化的示例:
.button {
width: 120px;
height: 30px;
line-height: 30px;
background: yellow;
text-align: center;
}
<div class="button">
<div class="button-text">
Button text
</div>
</div>
在少数地方,需要显示的文字比较长,但仍然需要完全适应。由于不支持font-stretch 属性,所以我使用transform: scale,它可以满足我的需要 - 有点......除了上述之外,我还有:
.button {
width: 120px;
height: 30px;
line-height: 30px;
background: yellow;
text-align: center;
}
.button-text {
line-height: 30px;
transform: scale(0.7, 1);
white-space: nowrap;
}
<div class="button">
<div class="button-text">
Very long button text
</div>
</div>
文本现在适合,但不是居中,因为 div 中居中内容的位置是在应用转换之前计算的 - 请参阅此 jsfiddle 中的示例:https://jsfiddle.net/1xz1g634/1/
我可以通过对.button-text 应用负左边距来“使”它居中,但这是一种技巧,并且不同浏览器中的边距必须不同。
我怎样才能使该文本普遍居中?理想情况下,不求助于 javascript,但是,如果一切都失败了,我可以使用 javascript/jquery。
【问题讨论】:
-
您真的需要转换后的文本吗?省略一个选项吗?
-
@Joum 不,省略不是一种选择。要求是完整显示文本。
-
我只是想知道,如果你的文字由于某种你无法控制的原因变得更大,它将无法阅读
-
我有点困惑。如果您可以明确设置按钮的样式以进行转换,为什么不直接将字体大小更改为更小呢?
-
@JesseKernaghan 有问题的按钮出现在一行按钮(工具栏)中。较小的字体将意味着较小的垂直尺寸,这看起来不太好。我想保持与其他按钮相同的垂直字体大小 - 只水平“挤压”文本。
标签: html css css-transforms