2011-11-17 59 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