不用给我爱,不用给我钱,不用给我声誉,给我真理吧。——梭罗的《瓦尔登湖》
一般可以使用vw
或者em
一类的属性来适配,但如果还需要更小,就只能使用scale
缩放了,例如使用js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| function scaleMemberName(memberElement: Element | null, reset: boolean) { if (!memberElement) { return; } const nameElement = memberElement.querySelector('.name'); if (!(nameElement instanceof HTMLDivElement)) { return; } if (reset) { nameElement.style.scale = String(); return; } const boundingBox = nameElement.getBoundingClientRect(); const actualWidth = boundingBox.width; const scale = 84 / actualWidth; console.log({ [`${nameElement.textContent}`]: actualWidth, scale }); if (scale >= 1) { return; } nameElement.style.scale = String(scale); } onMounted(() => { document .querySelectorAll('.member') ?.forEach((d) => scaleMemberName(d, false)); });
|
效果如下: