我试图使用CSS(@media print)和JavaScript打印一页的文件有一个特定的文本作出尽可能大的同时,仍然配合内给予的宽度。长度的文本不是事先知道的,所以只采用一个固定宽度的字体不是一个选项。

把它的另一种方式,我在寻找适当的调整,所以,例如,"三"将在一个更大的字体大小于"WWWWW",因为"我"是很瘦于"W"可变宽字体。

最近我已经能够获得这是使用JavaScript尝试不同的字体大小直 clientWidth 小够的。 这工作不够好,屏幕的媒体,但是当你开关于印刷媒体, 是否有任何保证,90DPI我出现在我的系统(即,我把利润率为0.5中的任何一方,并为一个文本调整使它适合就在那,我得到大约为675 clientWidth)将是相同的其他任何地方?如何浏览器的决定是什么新闻部使用当转换素测量?是否有任何办法可以访问这些信息的使用JavaScript?

我喜欢它如果这只是一个CSS3特征(font-size:max-for-width(7.5in))但是,如果它是的,我还没有能够找到它。

有帮助吗?

解决方案 3

以下是我最终使用的一些代码,以防有人发现它有用。您需要做的就是使外部DIV的尺寸达到所需的大小。

function make_big(id) // must be an inline element inside a block-level element
{
    var e = document.getElementById(id);
    e.style.whiteSpace = 'nowrap';
    e.style.textAlign = 'center';
    var max = e.parentNode.scrollWidth - 4; // a little padding
    e.style.fontSize = (max / 4) + 'px'; // make a guess, then we'll use the resulting ratio
    e.style.fontSize = (max / (e.scrollWidth / parseFloat(e.style.fontSize))) + 'px';
    e.style.display = 'block'; // so centering takes effect
}

其他提示

CSS字体大小酒店接受 长度单位 这包括绝对测量英寸或厘米:

绝对长度单位的高度依赖出介质, 因是少用于相对单位。下面绝对单位 可供选择:

  • 在(英寸;1=2.54厘米)
  • 厘米(厘米;1=10毫米)
  • 毫米(毫米)
  • pt(分;1点=1/72in)
  • pc(派卡;1个=12磅)

因为你不知道有多少人物你的文字还没有,你可能需要使用一个组合javascript和CSS在以动态设置的字体大小的财产正确。例如,采取串的长度在符,并分8.5(假设你期待我们的信尺寸的纸张)通过数字和那个给你的尺寸英寸设置的字体大小,用于这块的文本。测试的字体大小的绝对量测量火狐,野生动物园,并IE6因此,它应该是非常便于携带。希望这有所帮助。

编辑:注意,你可能还需要发挥与周围设置诸如封信间隔的财产,以及和实验有什么样的字体使用,因为字体大小的设置是不是真正的宽度信,这将是不同的,基于封信间隔,以及字体,成比例的长度。哦,和使用等宽字体可以帮助;)

我不知道在CSS中这样做的方法。我认为你最好的选择是使用Javascript:

  1. 将文字放入div
  2. 获取div的尺寸
  3. 如有必要,请将文字缩小
  4. 返回第2步,直到文字足够小
  5. 以下是示例代码,用于检测div的大小

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top