2011-10-03 29 views
18

所以我模擬了一個表格佈局,裏面有一個div和一對跨度的表格。我希望右邊的範圍縮進任何包裝的文字。我已經嘗試了一些東西,但無法讓它起作用。任何幫助,將不勝感激。<span>縮進包裹文本

的jsfiddle:http://jsfiddle.net/2Wbuv/

HTML

<div class="display-element"> 
    <span class="display-label">Field 1</span> 
    <span class="display-field">This is my string of data, some times it is pretty long. Sometimes it is not. This one is.</span> 
</div> 
<div class="display-element"> 
    <span class="display-label">Field 2</span> 
    <span class="display-field">This is another string of data.</span> 
</div> 

CSS

.display-element  {} 

.display-label   {display: inline-block; 
         width: 100px; 
         padding-left: 5px;} 

.display-field   {display: inline;} 
+6

爲什麼不使用'display:table-cell'? – sdleihssirhc

+0

恩,天才......我從來沒有使用過,現在我不知道爲什麼。請回答,我可以給你點。 –

+0

哦,除了現在我不能使它100%寬...仍然在努力。 –

回答

22

檢查了這一點:http://jsfiddle.net/2Wbuv/2/

.display-element { 
 
} 
 

 
.display-label { 
 
    display: inline-block; 
 
    width: 100px; 
 
    padding-left: 5px; 
 
} 
 

 
.display-field { 
 
    display: inline-block; 
 
    padding-left: 50px; 
 
    text-indent: -50px; 
 
    vertical-align: top; 
 
    width: 200px; /* for testing purposes only */ 
 
}
<div class="display-element"> 
 
    <span class="display-label">Field 1</span> 
 
    <span class="display-field">This is my string of data, some times it is pretty long. Sometimes it is not. This one is.</span> 
 
</div> 
 
<div class="display-element"> 
 
    <span class="display-label">Field 2</span> 
 
    <span class="display-field">This is another string of data.</span> 
 
</div>

+0

這個問題(使它們都是內嵌塊)是它把第一行放在下一行,刪除第二個跨度的寬度,你會看到我的意思(或者只是做你的窗口寬度小於300像素)。 –

+0

如果你不給'.display-field'一個固定的寬度,這也需要從inline到inline-block的切換,因爲它是一個span元素,你需要使用非跨瀏覽器來模擬一個表格單元格兼容的'display:table-cell'。或者,這是我會走的路,使用一個實際的表。 – simshaun

8

這聽起來像你想要一個懸掛縮進。 CSS這樣的事情應該做的伎倆:

.hanging-indent 
{ 
    text-indent : -3em ; 
    margin-left : 3em ; 
} 

但你的<span>是一個內聯元素,將text-indent屬性,以及有關塊其它CSS屬性,是沒有意義的。