2012-07-27 51 views
0

我有一个三列表格,我想根据内容的长度在单元格中设置文本背景。但是当我设置float:left时,单词换行不起作用。CSS:在HTML表格中,自动换行不适用于float:left

table { 
table-layout: fixed; 
width: 100%; 
word-wrap: break-word; 
} 

这是每个单元格中的内容。

.read{ 
    min-height: 20px; 
    margin-top: 10px; 
    margin-bottom: 10px; 
    margin-left: 10px; 
    padding: 0px 10px 0px 10px; 
    border-radius: 4px; 
    background-image: -webkit-gradient(linear, 25% 0%, 25% 100%, from(rgba(142, 175, 196, 1.0)), to(rgba(118, 146, 164, 1.0))); 
    float:left; 
} 

<table> 
    <tr> 
     <td width="36px">..</td> 
     <td> 
      <div class="read"> 
      looooooooooooooooooooooooooooooooooooooooooooooooooooooooooog 
      </div> 
     </td> 
    </tr> 
</table> 

如果我删除float:left ;,背景将不匹配内容的长度,但文字换行确实有效。 我该如何修改我的CSS?

+0

你可以尝试添加显示:inline-block;到你的.read类? – ppp 2012-07-27 09:44:59

+0

分享您的标记请 – 2012-07-27 09:45:27

+0

http://stackoverflow.com/questions/5889508/using-word-wrap-break-word-within-a-table – Prashobh 2012-07-27 09:48:40

回答

1

add display:inline;

.read{ 
     min-height: 20px; 
     margin-top: 10px; 
     margin-bottom: 10px; 
     margin-left: 10px; 
     padding: 0px 10px 0px 10px; 
     border-radius: 4px; 
     background-image: -webkit-gradient(linear, 25% 0%, 25% 100%, from(rgba(142, 175, 196, 1.0)), to(rgba(118, 146, 164, 1.0))); 
     **display:inline;** 
    } 
+0

是的,这使内容换行,但背景逐行显示在内容后面,而不是整个块。我试图解决这个问题..谢谢你! – 2012-07-30 02:43:35

+0

嗯我很感兴趣,为什么这个作品。据我记得,内联元素需要设置宽度才能自动换行? – lulalala 2015-07-15 03:12:57