繁体   English   中英

为什么 textarea 的宽度和高度比 iframe 大?

[英]why is textarea larger in width and height than iframe?

我有一个 textarea 和一个 iframe,但 iframe 比 textarea 小:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <!-- here's textarea: --> <textarea name="texta" id="texta" cols="30" rows="10" style="width: 200px;height:200px;"></textarea> <!-- here's iframe: --> <iframe src="" frameborder="2" style="width:200px;height:200px;"></iframe> </body> </html>

但是如果你运行它,iframe 比 textarea 小。

不同的填充和边框。

将它们设置相同并且它们具有相同的大小

 iframe, textarea { width: 200px; height: 200px; border: 2px solid black; padding: 0; }
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <!-- here's textarea: --> <textarea name="texta" id="texta"></textarea> <!-- here's iframe: --> <iframe src="" ></iframe> </body> </html>

Textarea 有一些由浏览器添加的padding 要使其恰好为200px ,请设置box-sizing属性:

textarea {
    box-sizing: border-box;
}

这将使您的textarea与您希望的一样宽。

您尚未将iframe的高度设置为等于 textarea。 事实是,当您设置任何元素的宽度时,实际上是在设置其内容的宽度,并且不包括该元素可能具有的内边距和边框。 还有一些元素有自己的预设填充和边框。 要克服这个问题,您可以将元素的box-sizing设置为border-box 通过这种方式,您可以设置元素的整个宽度和高度。 我建议您将以下属性添加到样式表中,以使所有元素边框装箱:

*{
  box-sizing: border-box;
}

另外,在下面的例子中,我使用了 flexbox。 查看输出,您将看到它正是您想要的:

 *{ box-sizing:border-box; } iframe{ height:170px; } textarea{ height:170px; margin:0; } .container{ display:flex; }
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div class="container"> <textarea name="texta" id="texta" cols="30" rows="10" style="width: 200px;"></textarea> <!-- here's iframe: --> <iframe src="" frameborder="2" style="width: 200px;"></iframe> </div> </body> </html>

为什么身高是<form>超过高度<textarea>&lt;i&gt;inside it?&lt;/div&gt;&lt;/i&gt;&lt;b&gt;在里面?&lt;/div&gt;&lt;/b&gt;</textarea><div id="text_translate"><p> 我的问题的最小示例: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> console.log(document.getElementById('form').offsetHeight) console.log(document.getElementById('textarea').offsetHeight)</pre><pre class="snippet-code-css lang-css prettyprint-override"> form { background: orange; } textarea { background: lightblue; border: 0; box-sizing: border-box; height: 100px; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;form id="form"&gt;&lt;textarea id="textarea"&gt;&lt;/textarea&gt;&lt;/form&gt;</pre></div></div><p></p><p> &lt;textarea&gt;的高度为 100px,但&lt;form&gt;的高度为 4px? &lt;textarea&gt;的额外 4px 高度从何而来? 如何消除多余的高度?</p></div></form>

[英]Why is the height of <form> more than the height of the <textarea> inside it?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 textarea调整宽度但不调整高度,为什么? 尽管像素密度很高,为什么固定高度/宽度 html 元素在移动设备上的渲染大于预期? 当图像的高度大于JQuery的宽度时,图像宽度为100% 尽管宽度和高度为100%,但父div仍比孩子大 为什么li的高度大于其内部图像的高度? 为什么身高是<form>超过高度<textarea>&lt;i&gt;inside it?&lt;/div&gt;&lt;/i&gt;&lt;b&gt;在里面?&lt;/div&gt;&lt;/b&gt;</textarea><div id="text_translate"><p> 我的问题的最小示例: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> console.log(document.getElementById('form').offsetHeight) console.log(document.getElementById('textarea').offsetHeight)</pre><pre class="snippet-code-css lang-css prettyprint-override"> form { background: orange; } textarea { background: lightblue; border: 0; box-sizing: border-box; height: 100px; }</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;form id="form"&gt;&lt;textarea id="textarea"&gt;&lt;/textarea&gt;&lt;/form&gt;</pre></div></div><p></p><p> &lt;textarea&gt;的高度为 100px,但&lt;form&gt;的高度为 4px? &lt;textarea&gt;的额外 4px 高度从何而来? 如何消除多余的高度?</p></div></form> 文本区域chrome宽度高度 使用 CSS 将 iframe 的高度和宽度设置为不超过内容 为什么链接区域的高度比文本大得多? 为什么这个 DIV 的宽度大于包含的 SVG
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM