gpt4 book ai didi

javascript - 如何使文本可根据浏览器调整大小?

转载 作者:行者123 更新时间:2023-11-30 06:35:54 25 4
gpt4 key购买 nike

所以我想根据浏览器的宽度调整“WIDTH”这个词的大小。现在,只有单词周围的框会调整大小,但我希望单词也能调整大小。我觉得我的计算有问题。

<!DOCTYPE html>
<html>
<head>


<style>

#header{

margin: 0px;
font-size: 200px;
display:inline;
padding:0px;
position:absolute;
white-space:nowrap;
overflow:hidden;
border:thin solid black;
height:800px;

}

</style>
</head>

<body style="padding:0px;">
<div id="header"> WIDTH </div>

<script>

var text_div = document.getElementById("header");

var size = function (){

var winW = window.innerWidth;
var winH = window.innerHeight;
var win_ratio = winW/winH;
var offset_width = text_div.offsetParent.clientWidth;
var offset_height = text_div.clientHeight;
var offset_ratio = offset_width / offset_height;
text_div.style.width = offset_width + "px";
document.title = winW + ":" + offset_height;
text_div.style.fontSize=String(parseInt(winW/offset_ratio)) + "px";

}

window.onresize=function() {size();}

//size();

</script>
</body>
</html>

最佳答案

如果你将你的文本包裹在一个span中,你可以获得文本的offsetWidth

<div id="header"><span>WIDTH</span></div>

div 的宽度固定为 left: 0pxright: 0px

#header {
position: absolute;
left: 0px;
right: 0px;
border: 1px solid black;
}

然后动态调整font-size。 for 是为了防止死循环

var epsilon = 5;
var div = document.getElementById('header');
var span = div.childNodes[0];

function size() {
var dw = div.offsetWidth;
var fs = 200;
span.style.fontSize = fs + 'px';
var cw = span.offsetWidth;
for (var i = 0; i < 10 && Math.abs(cw - dw) > epsilon; ++i) {
fs *= dw / cw;
span.style.fontSize = fs + 'px';
cw = span.offsetWidth;
}
}

window.onresize = size;
size();

JSFiddle

关于javascript - 如何使文本可根据浏览器调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14571334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com