使用css缩小div中的文本字体大小

Posted

技术标签:

【中文标题】使用css缩小div中的文本字体大小【英文标题】:Shrink text font size within a div using css 【发布时间】:2018-02-08 00:00:10 【问题描述】:

我有一个固定宽度的 div,比如 120 像素。它里面的文本可以随着不同数量的字符而改变长度。例如,英语可以是"Compare",俄语可以是"Добавить в сравнение"

现在div 的宽度对于英文措辞是可以的,但是对于俄文措辞,会发生溢出。 css 有没有办法缩小字体大小以防溢出。

我知道以下 css 的用法,但我不想有省略号,并且希望显示全文,即使它变小了。

overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;

编辑: 该问题被标记为另一个问题的重复,但事实并非如此。另一个问题是 div 是响应式的,而不是固定宽度,并且其中的文本可以增长,而我的问题是如果文本更大,如何缩小文本。

【问题讨论】:

不,单独使用 CSS 是不可能的。你可以使用一些 javascript 来“测量”文本仍然适合的大小(很确定有现有的解决方案,所以做一些研究。) 尝试使用 css 的 vw 属性 @SanchitPatiyal vw 属性不起作用,因为我有固定宽度的 div。宽度不是问题,文本内容长度是问题:) @CBroe 很遗憾地知道 :( 这很常见,应该有一个使用 css 的解决方案,将 javascript 应用于数十个这样的 div 或按钮只是为了修复它们的文本溢出是非常低效的): 我认为正确的答案是@CBroe所说的,在css中还没有解决方案,我必须使用javascript/jquery。如果您发布答案,我很乐意接受 【参考方案1】:

如何将overflow: scrollwhite-sapce: nowrap 一起使用

<div class="content">Some text you want to display.</div>

.content 
    width: 100px;
    overflow: scroll;
    white-space:nowrap;

如果您希望用户看到整个文本,那么这是您在不使用 javascript 的情况下可以做到的最好的方法。 这看起来很难看,但可以使用更多的 css 进行管理。

【讨论】:

它显示浏览器滚动条并使其非常难看,我认为css中没有解决这个问题的方法 是的,我同意。你必须使用 js 来获得更好的结果。【参考方案2】:

.content_div
  font-size: calc(1.1vw + 1.1vh + 1.1vmin);
  border:thin black solid;
  outline:none;
  padding:5px 2px;
  width:120px;
  overflow:hidden;
  font-size-adjust: 0.25;
<button class="content_div">
    Some Description Some Description
</button>

这和你要找的一样吗?

希望这会有所帮助。

【讨论】:

不,我的朋友,我实际上知道这个解决方案,但最大的缺点是它会切断文本。我正在寻找的是字体大小减小以适合文本。 内容多的话换行可以吗? 内容不会太长,2到4个字,不会换行,2行的按钮不好看,换个小字体的按钮,以防万一更大的内容看起来更好【参考方案3】:

请。使用width

即,

white-space: nowrap; 
width: 16em; 
overflow: hidden;
text-overflow: ellipsis; 

【讨论】:

我不能使用灵活宽度,容器的宽度必须固定为120px,但是里面的文字可以有不同的字体大小 那你的解决方案是什么? 我还在找它:)

以上是关于使用css缩小div中的文本字体大小的主要内容,如果未能解决你的问题,请参考以下文章

如何将 TextBlock(字体大小)增大/缩小到 WPF 中的可用空间?

css响应式问题,图片随页面宽度等比例缩小该怎么设置

CSS 字体大小:相对值与绝对值。使用哪个? [关闭]

h5中的字体大小自适应;

Goland 设置 文本编辑器 字体大小缩放快捷键

从自动缩小的 UILabel 中获取当前字体大小 [重复]