【问题标题】:HTML textarea alignmentHTML 文本区域对齐
【发布时间】:2015-08-25 06:47:11
【问题描述】:

假设我的文本区域填充了以下文本

员工/公司/工资

john/microsoft/12.000

迈克尔/citrusdata/15.000

如何垂直对齐每一列,以便获得以下文本:

员工__________公司__________工资

约翰______________微软______________12.000

迈克尔_______________柑橘数据______________15.000

在这个例子中,我使用下划线来指定空格,想写一个像nl2br()这样的简单函数来用一个或多个制表符替换'/',但这不是一个一致的解决方案,我猜我需要阅读文本行行并考虑到每个单词的长度,我需要用足够的空格替换'/',但不知道如何编码,还有其他方法吗?

【问题讨论】:

  • 为什么是 textarea 而不是谨慎的输入?
  • textarea 中没有列
  • 我想获得第二个输出,因为在我的本地数据库中,有 textareas 并且我将我的记录从数据库写入 word 文档,因此需要对齐
  • 如果你创建一个宽度和高度相同的文本框并将它们向左浮动,你可以将文本向左对齐,它看起来就像在一个没有边框的表格中。
  • 我不想使用表格结构,因为如果我使用,我需要在我的数据库中添加额外的表格并且我想保持简单,我想通过一些功能来对齐我在 textarea 中的文本

标签: php html css alignment word


【解决方案1】:

我想你会在 textarea 本身之外输出 textarea 内容,否则你需要使用 js 替代。我的答案使用 php :) 因此,您可以使用允许左右填充的sprintf function

只需拆分您的内容以获得一组行

$lines = explode("\n", $content);

注意最后一个空的最后一个条目(如果您的内容以 \n 结尾)

然后

foreach($lines as $line) {
    $items = explode("/", $line) ;
    echo sprintf("%-15s%-15s%-15s", $items[0], $items[1], $items[2]) . "<br/>";
}

"%-15" 告诉左填充 15 个空格。 它可以在控制台上运行,但您必须先 nl2br 才能在网页中回显!

这是示例,因此您必须添加错误测试(例如只有一个 / 的行)。

【讨论】:

  • 感谢 Armage,感谢 :) 我喜欢这种解决方案编辑:是的,您是对的,我将使用输出将其写入 word 文档
【解决方案2】:

您应该为每个或任何所需宽度指定每列的宽度,例如 50 个字符。说吧$COLUMN_WIDTH = 100; 找到列值(字符串)的长度,而不是从固定长度中减去它 $COUNT_SPACES_TO_INSERT = $COLUMN_WIDTH - strlen($COLUMN_STR); 比插入 $COUNT_SPACES_TO_INSERT 数量的空格更能解决您的问题。

【讨论】:

  • 您能否进一步解释一下,我是所有 php 和 html 的新手,我不确定它是否是解决方案
  • 谢谢Muzammil,Armage给出了我想要的例子,我正在寻找php解决方案
猜你喜欢
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多