2016-04-23 36 views
1

之前無效:我使用responsive table solution found hereCSS {word-wrap:break-word}在選擇器

我加word-wrap: break-word,但它不工作下表:

enter image description here

jsfiddle

HTML:

<div id="content"> 
<table> 
<tbody> 
<tr> 
<td><strong>MTP 1: Acute Symptomatic</strong></td> 
<td><strong>MTP 2: Acute and Chronic Symptomatic</strong></td> 
</tr> 
<tr> 
<td>1 x 60 minutes session weekly for 6 weeks at <span style="color: #ff0000;">$420</span> &nbsp;&nbsp;<span style="color: #ff00ff;">save $60</span></td> 
<td>Fortnightly 1 x 60 minutes session for 11 weeks at <span style="color: #ff0000;">$450</span> &nbsp;&nbsp;<span style="color: #ff00ff;">save $30</span></td> 
</tr> 
<tr> 
<td>1 x 90 minutes session weekly for 6 weeks at&nbsp;<span style="color: #ff0000;">$630</span> &nbsp;&nbsp;<span style="color: #ff00ff;">save $60</span></td> 
<td>Fortnightly 1 x 90 minutes session for 11 weeks at <span style="color: #ff0000;">$660</span> &nbsp;&nbsp;<span style="color: #ff00ff;">save $30</span></td> 
</tr> 
</tbody> 
</table> 
</div> 

CSS:

#content table tbody {border-top: 1px solid #ccc;} 
#content table tr:nth-of-type(odd) { 
    background: #eee; 
} 
#content tr td { 
    line-height: 1.5em; 
} 
@media only screen and (max-width: 500px) { 
    #content td:nth-of-type(1):before { content: "MTP 1: Acute Symptomatic"; word-wrap: break-word;} 
    #content td:nth-of-type(2):before { content: "MTP 2: Acute and Chronic Symptomatic"; word-wrap: break-word;} 

    #content table tr:nth-of-type(odd) { 
     background: transparent; 
    } 

    /* Force table to not be like tables anymore */ 
    #content table, #content thead, #content tbody, #content th, #content td, #content tr { 
     display: block; 
    } 

    /* Hide table headers (but not display: none;, for accessibility) */ 
    #content thead tr, #content tr:nth-of-type(1) { 
     position: absolute; 
     top: -9999px; 
     left: -9999px; 
    } 

    #content tr { border: 1px solid #ccc; } 

    #content td { 
     /* Behave like a "row" */ 
     border: none; 
     border-bottom: 1px solid #eee; 
     position: relative; 
     padding-left: 50%; 
     width: 50%; 
     max-width: 50%; 
     min-height: 39px; 
     line-height: 1.5em; 
    } 
    #content #post-4818 td:nth-of-type(1) { 
     background-color: #FFC384; 
    } 

    #content td:before { 
     /* Now like a table header */ 
     position: absolute; 
     /* Top/left values mimic padding */ 
     top: 6px; 
     left: 6px; 
     width: 45%; 
     padding-right: 10px; 
     white-space: nowrap; 
    } 
} 

幫助讚賞。

回答

1

在我看來,你需要做的唯一的事情就是從這個規則

Updated fiddle

#content td:before { 
    /* Now like a table header */ 
    position: absolute; 
    /* Top/left values mimic padding */ 
    top: 6px; 
    left: 6px; 
    width: 45%; 
    padding-right: 10px; 
    /* white-space: nowrap;   commented out */ 
} 
+0

謝謝。我從來沒有看到過這種「空白:現在;」。這是隨我使用的[示例代碼](https://css-tricks.com/responsive-data-tables/)。 – Steve

2

替換您#content td:before這個CSS -

#content td:before { 
    /* Now like a table header */ 
    position: absolute; 
    /* Top/left values mimic padding */ 
    top: 6px; 
    left: 6px; 
    width: 45%; 
    padding-right: 10px; 
} 

然後加入這個CSS -

.wrapword{ 
    white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */ 
    white-space: -pre-wrap;  /* Opera 4-6 */ 
    white-space: -o-pre-wrap; /* Opera 7 */ 
    white-space: pre-wrap;  /* css-3 */ 
    word-wrap: break-word;  /* Internet Explorer 5.5+ */ 
    white-space: -webkit-pre-wrap; /* Newer versions of Chrome/Safari*/ 
    white-space: normal; 
} 

最後加一個類wrapwordtbody這樣的 -

<tbody class="wrapword"> 

這裏的jsfiddle

+0

感謝Rehban刪除white-space: nowrap;。我將在下面使用LGSon更簡單的解決方案。 – Steve

+0

沒問題的人,我做了同樣的事情,但添加了支持所有瀏覽器的文字換行。 –

+0

啊。爲什麼我不能添加你的'.wrapword'規則添加到'#content td:before'?這對我來說會更安全,以防我的客戶編輯Wordpress頁面,並丟失過程中的「。 – Steve