【发布时间】:2011-01-26 15:48:38
【问题描述】:
假设您有一个简单的固定宽度布局,可以从 MySQL 数据库中提取 title。
CSS:
#wrapper {
width: 800px;
}
h1 {
width: 100%;
}
HTML:
<html>
<body>
<div id="wrapper">
<h1> $titleString </h1>
</div>
</body>
</html>
但问题是,从 MySQL 数据库中提取的标题字符串的长度变化很大。有时可能是 10 个字符,有时可能是 80 个字符。可以确定最小和最大字符数。
如果可能的话,我如何让我的<h1>$titleString</h1> 的text-size 即时放大/缩小,以使字符串只在一行上并且最适合该行的长度?我已经看到很多关于调整 div 大小的问题 - 但在我的情况下,div 必须始终为 100% (800px),我希望最适合标题。
显然,必须设置最大 text-size 值,这样 5 个字符串才不会变得庞大。
有人有建议吗?我目前在这个页面上只使用 PHP/MySQL/CSS,但是如果这意味着我可以解决问题,那么结合另一种语言就可以了。
我唯一能想到的是一种蛮力方法,通过反复试验,我建立了与 CSS em 大小匹配的可接受的字符串字符计数范围,但从代码方面来看,这将是一个非常丑陋的实现。
【问题讨论】:
-
我不能给你一个好的答案——除了伪代码——但我会注意两点:1,你不能/不应该在服务器端做这个,你应该使用 JavaScript/客户端;和 2:你确定这个想法是一个好的设计理念吗?品牌塑造通常依赖于一致性,这个想法似乎完全忽视了这一点。
-
@ricebowl 1) 同意,但我需要帮助,因为我不知道任何 Java 风格 || 2) 好点,但不适用。我正在处理文章标题,并希望巧妙地调整文本大小以避免可怕的一个单词留在第二行,这看起来很糟糕。如果没有好的解决方案,我只需要把它吸起来,找到最长的字符串适合的尺寸并只使用它。
-
我同意 ricebowl 关于一致性的观点,但在我自己的项目中我有本能,我希望这样的事情得到体现。不管我怎么切它,当我认为它已经完成时,它从来没有。在出现 16 个大写“W”字符串或使用 MOOMWOOD02 或 IllI1 之类的名称之前,最大限制是一个好主意。我猜你已经放弃了设计可能的包装的想法,所以我不会去那里。我很想知道这个问题会去哪里。
-
我在一个非常大的娱乐网站工作了几年,在那里我们经常遇到乐队名称。当硬宽度容器以一种丑陋的方式断线时,艺术团队和非常资深的编辑总是同意老式的 BR 插入;)
标签: php mysql html css text-size