【问题标题】:Dynamically resize/space text to fit div动态调整大小/空间文本以适合 div
【发布时间】:2011-09-03 08:02:26
【问题描述】:

我有一个固定宽度的div,但里面的文字(某人的名字)会有所不同。有没有办法动态调整文本大小/字母间距以完全适合div

但是,我不能使用 javascript,因为此脚本将用于不读取 javascript 的 HTML-PDF 转换器

text-align:justify 不起作用,因为文本对于 div 来说太长了,它不会调整它的大小。我发现text-align:justify 仅适用于段落等。

名称不能分两行

【问题讨论】:

  • 名称必须全部放在一行吗?
  • @tjm 是的,没错,名称必须放在一行中
  • text-align: justify 但我相信当有不止一行时它会起作用。除此之外,简单的CSS可能没有办法。您可以将它们居中,这可能比让它们左对齐更好。
  • 既然您使用 ASP 生成它,也许您可​​以计算字符数并将每个字符放在一个具有适当宽度/字体大小的内联样式中?

标签: css asp.net-3.5 font-size letter-spacing


【解决方案1】:

你需要使用:

 Graphics graphics = this.CreateGraphics();
 SizeF textSize = graphics.MeasureString("How long am I?", this.Font);

 Size textSize = TextRenderer.MeasureText("How long am I?", font);

TextRenderer 不太准确,但 Graphics 要求您使用 windows 表单 - 在您的情况下,您可以有一个带有单个文本框的表单,您可以在其中放置要测量的文本,然后将其读回,但 TextRenderer 更简单。

使用上述方法,您可以编写一个调整字体大小直到达到所需长度的函数。

然后需要在发送到浏览器的文本上设置样式以反映此字体大小。

【讨论】:

  • 一切皆有可能。我可以循环遍历每个字母,将其放入一个左浮动的 div 中,并设置宽度和字体大小。但这可能是错误的。
  • 如果没有 javascript,你将如何循环?
  • ASP.NET 函数。检查我的标签:)
  • 好的 - 好吧,您可能会更接近填充 div,但不是“完美”,除非您的所有客户都完全相同。不同的机器会有不同的字体/浏览器/显示器/用户设置,所有这些都会对文本和 div 的相对大小产生影响。
  • 这不是问题,因为这只会被一个客户端浏览器(服务器)查看。然后将其转换为 PDF,并提供给用户。所以一旦它出现,它就不会改变
猜你喜欢
  • 2015-09-16
  • 1970-01-01
  • 2018-09-04
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多