2011-11-17 61 views
1

我选择的数据包含(可以是一个长的字符串,并在其“白空间”),空白格式的担忧在HTML

例如:

$row['desc'] = 'abcd  ABCD 1234 more.. " 

<td><?=$row['desc']?></td>

但是当我将它显示在浏览器的HTML表格中,但没有看到数据库中格式化的空格。我想保留数据库的格式。

在FireBug中,我看到完全相同的数据格式。

[*]为了保存格式等中的数据,我试图

$display_desc = array(" ","&nbsp;",$row['desc']) 

和我$row['desc']是动态的字符串

,但如果我不喜欢当$row['desc']一长串它就会有问题不换行。

任何人都知道在这种情况下是什么问题?

由于

EDIT实施例中HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>test Document</title> 
</head> 

<body> 
<table border="1"> 
    <tr> 
    <td>Short data</td> 
    <td style="WORD-BREAK:BREAK-ALL;"> 
    long data  long data  long data  long data  long data  long data  long data long data long data long data long data  long data  long data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data 
    </td> 
    <td style="WORD-BREAK:BREAK-ALL;"> 
    long data  long data  long data  long data  long data  long data  long data long data long data long data long data  long data  long data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data data  long data  long data  long data  long data long data long data long data 
    </td> 

</table> 
</body> 
</html> 

回答

2

裹在<pre>标签然后应用一些CSS:How do I wrap text in a pre tag?

pre { 
white-space: pre-wrap;  /* css-3 */ 
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ 
white-space: -pre-wrap;  /* Opera 4-6 */ 
white-space: -o-pre-wrap; /* Opera 7 */ 
word-wrap: break-word;  /* Internet Explorer 5.5+ */ 
} 

演示与样品的html:http://jsfiddle.net/B98jc/

1

浏览器打开两个或更多个常规空格成一个单一的空间。

使用非分隔空间(&nbsp;)代替告诉浏览器呈现所有空格字符。如果你在包装上遇到问题,可以使用CSS来控制它。但请记住,浏览器想要在实际上可能会破坏的东西上打破字符串,就像普通空间一样。您可能需要在这些非中断空格中插入一个常规空间(或者使用一些花哨的JavaScript)来控制包装。

就这样说,似乎你想要建立一个模仿来自数据库的表格结构。将$row记录中的整个字符串放入单个表格单元中并不能真正解决该问题。您的数据看起来像是固定宽度的格式,因此您可能需要遍历每行数据,并为第一列取第一个字符,第二列取第一个字符,以此类推,然后选择第二列的第一个x字符等等。

+0

所以我已经删除了whitspce到 但如果有很长的字符串,将有问题,文字不能换行。我可以解决这个问题。谢谢 – sophie

+0

@Transformer:阅读我的编辑。浏览器需要字符串中的某些内容才能真正打开,并且不会在非中断字符上打断。你可以通过用''替换单个空格并使用一些CSS('.spacer {display:inline-block; width:5px;}')来欺骗浏览器, '大约是1个字符。浏览器会根据需要包装内容,并使其看起来有空格。 –

+0

我真的不明白,我用真正的html代码编辑了我的问题,并感谢您的帮助。 – sophie

0

为什么不把输出包装在<pre>标签中呢?这将保留您现有的格式。

去那条路线有问题吗?或者你需要更换空间?

+0

如果您的​​长数据中存在长字符串数据应自动换行。 – sophie

+0

@转换器,你会包装什么样的条件?包装最终会破坏你的格式,你不想要的东西。请澄清。 – Jakub

+0

@Jakub我认为他想要的是一样的行为,如果你将文字粘贴到记事本上,并且使用wordwrap。它保留了空间,但仍包裹着。 – Davy8