如何在不使用padding的情况下为<textarea>内文本添加上下左右间距?
实现全局文本缩进且不影响JS尺寸获取的方案
通常用padding做文本缩进,但你因为要复用JS尺寸获取代码,不想折腾像素级调整,text-indent又只对第一行生效,那可以试试这两种靠谱方案:
- 方法一:transform位移(推荐)
用transform: translateX()实现视觉层面的缩进,这种方式不会改变元素的盒模型尺寸,JS获取尺寸时完全不用调整,直接复用即可。
示例代码:
.your-text-element { transform: translateX(1.5em); /* 换成你需要的缩进大小,用em适配性更强 */ }
- 方法二:相对定位偏移
如果要兼容不支持transform的旧浏览器,用position: relative搭配left属性也能达到同样效果,同样不会影响元素尺寸:
.your-text-element { position: relative; left: 1.5em; }
当前效果:
预期效果:
内容的提问来源于stack exchange,提问作者Lethargistic
相关产品推荐
相关产品推荐

