【问题标题】:Textarea Centers First Line Of Text And I Want It To Be Left-AlignedTextarea 将第一行文本居中,我希望它是左对齐的
【发布时间】:2012-01-08 19:25:40
【问题描述】:

我在表单中有一个简单的 textarea,由于某种原因,当我单击 textarea 开始输入时,它将第一行居中。我可以按退格键,直到它在 textarea 的开头排成一行,但我不知道它为什么这样做。我用谷歌搜索,似乎找不到它会这样做的原因。这是我的 jsfiddle:

http://jsfiddle.net/4cVkn/

我已经在很多地方(内联 HTML 和 CSS)尝试了 text-align:left,但它似乎没有改变任何东西。看起来应该是一个简单的修复,感谢您的帮助。

【问题讨论】:

    标签: html css forms textarea


    【解决方案1】:

    它不是居中的,它只是有一系列空格字符的默认值。

    将</textarea> 紧跟在开始标记之后,而不是用空格填充它。

    【讨论】:

    • 哦,是的,我已经习惯了对空格不敏感的代码,所以我犯了这个错误。谢谢! (当我的计时器在 11 分钟后到时,我会接受你的回答)
    • 实际上,如果您单击文本区域的任意位置,它将自动从该点开始文本。单击文本区域的开头(左上角)将使文本从那里开始。
    【解决方案2】:

    文本区域的默认内容是其标签之间的内容。您的来源有:

            <textarea name="bio">
            </textarea>
    

    所以文本区域的初始值是换行符和用于缩进的空格——可以退格的字符。

    要摆脱它们,请立即关闭标签:

    <textarea name="bio"></textarea>
    

    除此之外:您要使用的表单布局可能应该使用表格来完成 - 至少在各种闪亮的新 CSS3 布局得到更好的支持之前。你避开它们实际上使代码的可读性降低了所有&lt;br/&gt;s。

    【讨论】:

    • 虽然过多的换行符不是好样式,但表格不是解决方案。
    • @Quentin:我不知道在得到广泛支持的 CSS 中还有什么其他方法可以实现基于网格的布局,而不必接受解决方案的某些限制。 (就像列/行的绝对宽度或高度一样。)不幸的是,这是一个表格似乎是唯一(丑陋)解决方案的领域。
    • 是的,我调查过了,我知道所有 '
      ' 的代码看起来都很糟糕,但我最近一直在尝试完全避免使用表格。我在 CSS 中重新分配了 '
      ' 的行高,这就是为什么会有这么多的行高。我用它们来明确我的定位。
    • @MxmastaMills:对我来说,避免使用表格的主要原因是因为它们添加了多余的嵌套级别,这使得代码更难阅读,而不是对语义 HTML 采取教条主义的立场。所以在我的书中,用更难读但效果不佳的东西代替难读的东西并不是正确的做法。 (jsfiddle 显示了结果区域下边缘下方的表单字段,我花了一段时间才弄清楚它们真的在那里。)
    • 是的,我注意到在 jsfiddle 上(我不得不将窗口拖出以使它们正确排列)。在我正在构建的站点的上下文中,所有内容都保留在正确的位置,因为所有内容都被拆分了,因此“
      ”实际上允许我将标签排列在我想要的位置(相反jsfiddle上发生的事情)。我确实明白你在说什么,而且我的网站上已经有大量的嵌套 div...
    猜你喜欢
    • 2013-04-17
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2012-01-31
    • 2021-04-19
    相关资源
    最近更新 更多