使文字高度达到div的100%?

时间:2012-05-23 11:18:00

标签: css text fonts height

我正在尝试将文本设为div的100%高度,但它不起作用。
它只是body { font-size:?; }的100%。

有没有办法让它跟随div高度?
div高度是整页的4%,当您调整大小/更改分辨率时,我不想跟随它。

6 个答案:

答案 0 :(得分:9)

要获得我想要的结果,我必须使用此代码:

// Cache the div so that the browser doesn't have to find it every time the window is resized.
var $div = $('li.leaf.item');

// Run the following when the window is resized, and also trigger it once to begin with.
$(window).resize(function () {
   // Get the current height of the div and save it as a variable.
   var height = $div.height();
   // Set the font-size and line-height of the text within the div according to the current height.
   $div.css({
      'font-size': (height/2) + 'px',
      'line-height': height + 'px'
   })
}).trigger('resize');​

谢谢joshuanhibbert @ css-tricks的帮助!

答案 1 :(得分:4)

使用CSS无法实现这一目标。而不是使用javascript。

检查这些:

  1. http://fittextjs.com/
  2. Have font size change according to size of div
  3. resize font to fit in a div

答案 2 :(得分:3)

2015年,您可以使用viewport units。这将允许您以高度单位设置字体大小,代表视口高度的1%。

所以在你的情况下font-size: 4vh会达到预期的效果。

注意:这不会像你提出的那样相对于父div,而是相对于视口高度。

答案 3 :(得分:1)

如果只想使用CSS的100%文本大小的文本,则必须更改font-size和line-height属性。这是我的解决方案:

.divWithText {
    background-color: white;
    border-radius: 10px;
    text-align: center;
    text-decoration: bold;
    color: black;

    height: 15vh;
    font-size: 15vh;
    line-height: 15vh;
}

答案 4 :(得分:0)

您可以使用相对位置和绝对位置来处理单行文本:

<div class="div">
  <span class="middle-center">
    Center text
  </span>
</div>

css:

.div {
  height: 4%;
  position: relative:
  overflow: hidden;
}

.middle-center {
  position: absolute;
  top: 50%;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 13px;
  margin-top: -8px;
} 

答案 5 :(得分:-5)

试试这个

font
{
  position:absolute;
  width:100%;
  height:100%;
  font-family:Verdana, Geneva, sans-serif;
  font-size:15px;
  font-weight:normal;
}