2016-04-23 37 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