【问题标题】:Inconsistent textarea handling in browsers浏览器中的文本区域处理不一致
【发布时间】:2011-07-08 23:02:50
【问题描述】:

这是我看到的下面提供的标记。没有一个浏览器将文本区域保留在容器中,这很不方便,但问题不大。然而,令人讨厌的是,无论我做什么,我都无法摆脱 Chrome 中 textarea 的底部边距。有什么建议吗?

一切尽在掌握之中:http://jsfiddle.net/radu/RYZUb/

标记:

<div id="wrap">
    <textarea id="txtInput" rows="6" cols="20"></textarea>
    <div id="test"></div>
</div>

CSS:

#wrap
{
   background-color:green;
   height:210px;
   width:440px;
}
#txtInput
{
    height:100px;
    width:100%;
    margin:0px;
    padding:0px;
}
#test
{
    background-color:gray;
    height:100px;
    width:100%;
    margin:0;
    padding:0;
}

【问题讨论】:

标签: html css cross-browser textarea


【解决方案1】:

要修复“Chrome 中文本区域的下边距”,请将 vertical-align: top 添加到 #txtInput

Live Demo

现在您可以在列出的浏览器之间进行一致的渲染。

您是否想要将textarea 扩展到容器外的解决方案?


这修复了 IE8、Firefox、Chrome、Safari、Opera。但在 IE7 中没有帮助:

Live Demo

#txtInput
{
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

在这里,我们使用box-sizing property

即使在 IE7 中也可能有一种方法可以让它完全正确,但除非你真的关心那个浏览器,否则最好只是忍受它在那个浏览器的容器外突出 ~3px

【讨论】:

  • 是的,那太棒了!
  • 我什至没有听说过这个属性,这很棒。回到第一个解决方案,您是否知道 display:block 正如 Smirkin 指出的那样? vertical-align:top 是否因为某种原因问题较少?
  • 谢谢!除非有人提出更令人印象深刻的解决方案,否则这是我接受的答案。
  • @Radu:在 Chrome 中,textareas 默认为 display: inline-block。对于这种类型的问题,通常要么设置vertical-align: top 有效,要么设置display: block。请参阅:123。此外,brunildo.org/test/inline-block.html - vertical-align: top 是解决您的第一个问题的最佳方式。
【解决方案2】:

这可以通过将显示设置为 textarea 来解决

#txtInput
{
  height:100px;
  width:438px;
  margin:0px;
  padding:0px;
  display:block;
}

textarea 的宽度不包括 1px 边框,因此将宽度减少 2px 将防止 textarea 溢出。

【讨论】:

  • 嗯,也是不错的解决方案!我看到了更多的一致性。 Opera 的宽度似乎是 4 像素而不是 2 像素,但这不是什么大问题。
  • 有一个 CSS3 属性强制宽度包含边框。您可以通过将规则“box-sizing:border-box”添加到#txtInput 来使用它
【解决方案3】:

在 Chrome 9.0.597.107 中,-5px 的下边距对我有用。

#txtInput
{
    height:100px;
    width:100%;
    margin:0 0 -5px;
    padding:0px;
}

【讨论】:

  • Thirtydot 有更好的解决方案。
  • 确实 修复了 Chrome,但它也会在其他浏览器中将 textarea 向上移动 5px,因此不一致:(
猜你喜欢
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 2020-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多