div固定宽高,字数多的时候要防止文本溢出,需要做换行并自动切换字号去自适应,这个需要怎么做?一点头绪都没有,请教一下
5条回答 默认 最新
崽崽的谷雨 2022-09-15 17:51关注实际上只要 实现自动切换字号就行。这个需要一个标准 。
比如:
字数在 0-100 给 16px
100-200 给 14px
200以上给 12px有了标准 那就根据字数 给 不同的字体大小就行
类似这个 。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } .text { width: 100px; height: 100px; overflow: hidden; border: 1px solid red; font-size: 18px; word-break: break-all; } </style> </head> <body> <div class="text" id="text"> 66666666666666666666666666666666666666666666666666666666666 </div> <div class="btnbox"> <button>0-100</button> <button>100-200</button> <button>200以上</button> </div> </body> <script> let text = document.getElementById("text"); let btnBox = document.getElementsByClassName("btnbox")[0]; btnBox.onclick = function (e) { let key = e.target.innerText; if (key == "0-100") { text.style.fontSize = "18px"; } else if (key == "100-200") { text.style.fontSize = "16px"; } else if (key == "200以上") { text.style.fontSize = "14px"; } else { text.style.fontSize = "12px"; } } </script> </html>只不过 你需要 动态获取 inerText的长度 然后根据这个判读
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } .text { width: 100px; height: 100px; overflow: hidden; border: 1px solid red; /* font-size: 18px; */ word-break: break-all; } </style> </head> <body> <div class="text" id="text"> 66666666666666666666666666666666666666666666666666666666666 66666666666666666666666666666666666666666666666666666666666 66666666666666666666666666666666666666666666666666666666666 66666666666666666666666666666666666666666666666666666666666 </div> <!-- <div class="btnbox"> <button>0-100</button> <button>100-200</button> <button>200以上</button> </div> --> </body> <script> // let text = document.getElementById("text"); // let btnBox = document.getElementsByClassName("btnbox")[0]; // btnBox.onclick = function (e) { // let key = e.target.innerText; // if (key == "0-100") { // text.style.fontSize = "18px"; // } else if (key == "100-200") { // text.style.fontSize = "16px"; // } else if (key == "200以上") { // text.style.fontSize = "14px"; // } else { // text.style.fontSize = "12px"; // } // } let text = document.getElementById("text"); let key = text.innerText.length; setFontSize(key); function setFontSize(key) { if (key > 0 && key <= 100) { text.style.fontSize = "18px"; } else if (key > 100 && key <= 200) { text.style.fontSize = "16px"; } else if (key > 200) { text.style.fontSize = "14px"; } else { text.style.fontSize = "12px"; } } </script> </html>本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录