我需要创建一个适应其容器DIV大小的文本,扭曲自身以始终填充DIV内的整个空间。所以它应该始终是width = 100%和height = 100%并根据浏览器窗口调整大小。
我知道这可以通过图像来完成,我怀疑是否有任何方法可以对可编辑文本执行相同操作,从而使字体形状本身变形。我应该使用哪个属性?
谢谢你的建议。
答案 0 :(得分:0)
我们将使用Javascript动态更改font-size
和line-height
首先,缓存div,以便每次调整窗口大小时浏览器都不必查找它。
var $div = $('.foo');
调整窗口大小时运行以下命令,并在开始时触发一次。
$(window).resize(function () {
获取div的当前高度并将其另存为变量。
var height = $div.height();
根据当前身高设置div中文本的font-size
和line-height
。
$div.css({
'font-size': (height/2) + 'px',
'line-height': height + 'px'
})
}).trigger('resize');
演示:https://jsfiddle.net/nanilab/6tpztvnc/
您可以使用FitText.js
FitText使字体大小变得灵活。在响应式设计上使用此插件,可以根据比例调整标题大小。
您可以使用slabText.js
一个jQuery插件,用于生成大而大胆的&响应头条新闻
答案 1 :(得分:0)
查看CSS视口百分比长度,这可能是您正在寻找的内容:https://css-tricks.com/viewport-sized-typography/
我整理了一个带有文本的快速容器,它将根据视口的大小改变大小。您可以在此处查看:http://codepen.io/sktwentysix/pen/GZzvEx
<div class="main">
<p>
lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum!
</p>
</div>
.main {
border: 1px solid #000;
padding: 1rem;
width: 80%;
height: 500px;
}
p {
margin: 0;
font-size: 4vw;
}
希望这有帮助!
答案 2 :(得分:0)
除非知道文字的长度,否则只能使用CSS。
如果知道,vw单位+变换就可以了。
h1 {
height: 3vw;
background: #147EBD;
text-align: center;
}
span {
display: inline-block;
height: inherit;
line-height: inherit;
font-size: 10vw;
transform-origin: top center;
transform: scale(1, 0.3);
}
h1 + h1 span {
line-height: 40vw;
font-size: 40vw;
transform: scale(1, 0.08);
}
&#13;
<h1> <span>longer text to strecth </span></h1>
<h1> <span>short</span></h1>
&#13;
正如您所看到的,在开始使用字体大小和适当的比例之前,需要使用javascript来查找文本长度。
以某种方式仍然设置最大和最小字体大小是明智的,这样它在任何时候都可以读取,并最终在小屏幕上打破一条线。
编辑:我确实理解100%的容器,而不是窗口的高度,但scale()在这种情况下也会这样做。