如何在JS/jQuery中获取元素带单位宽度以实现响应式包裹?
问题:实现响应式的textarea包裹容器宽度继承
我正在编写一个jQuery插件,需要将宽度可能为任意单位的textarea元素用div元素包裹,并将原元素的宽度及单位应用到新的父div上。像素宽度无法满足需求,因为我希望整体保持响应式。
示例代码
样式代码
#target { width: 90%; /* 也可能是10rem、80vw等任意单位 */ }
脚本代码
$(function(){ let container=$('<div>'); container.width(???); // 需让container的宽度与textarea在CSS中设置的一致——此处为90% $('#target').wrap(container).css('width','100%'); });
页面元素
<textarea id="target"></textarea>
预期结果
<div style="width: 90%"> <!-- 对应原textarea设置的任意宽度及单位 --> <textarea id="target" style="width: 100%"></textarea> </div>
显然,使用outerWidth()或window.getComputedStyle可以轻松获取精确的像素值,但这无法实现响应式。
编辑说明:该问题已有解决方案,但目前仅在Blink内核浏览器中可行。
内容的提问来源于stack exchange,提问作者dj50
相关产品推荐
相关产品推荐

