2015-08-08 3 views
0

У меня есть таблица с 2-мя колоннами, одна из которых имеет word-wrap: break-word:Перенос слов в таблице изменяет размер ячейки

table { 
 
    table-layout: fixed; 
 
    width: 100%; 
 
    border: 1px dotted gray; 
 
} 
 

 
table td { 
 
    border: 1px solid blue; 
 
} 
 

 
table td:nth-child(2) { 
 
    word-wrap: break-word; 
 
}
<table> 
 
    <tr> 
 
     <td>Column1</td> 
 
     <td>Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2</td> 
 
    </tr> 
 
</table>

Я хотел бы сохранить ширину первого столбца до минимума , а второй столбец расширяется, чтобы соответствовать остальной части таблицы.

Но word-wrap: break-word работает только в том случае, если я установил table-layout: fixed и заставляет все столбцы иметь равные размеры. Как я могу достичь того, чего хочу, без явной установки значения ширины в первом столбце?

+0

У меня нет решения CSS для этого. Только один трюк Jquery, основанный на этом: http://stackoverflow.com/questions/2057682/determine-pixel-length-of-string-in-javascript-jquery Вот он: http://jsfiddle.net/xgk455xr/ В принципе, вы должны установить ширину, но она установлена ​​динамически таким образом .... – sinisake

ответ

1

Вы можете достичь этого, используя атрибут width<td>, как показано ниже.

table { 
 
    table-layout: fixed; 
 
    border: 1px dotted gray; 
 
} 
 
table td { 
 
    border: 1px solid blue; 
 
} 
 
table td:nth-child(2) { 
 
    word-wrap: break-word; 
 
    width: 100%; 
 
    max-width: 1px; 
 
}
<table> 
 
    <tr> 
 
    <td>Column1</td> 
 
    <td>Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2Column2</td> 
 
    </tr> 
 
</table>

+0

Спасибо, но, как я сказал в своем вопросе, я не хочу устанавливать ширину в любом столбце, так как я не знаю, сколько содержание будет. – Atlas23250

+0

К сожалению, я пропустил последнее предложение извините. Итак, вы хотите, чтобы первый столбец соответствовал самому длинному слову? – chayasan

+0

Да, это именно так. – Atlas23250

0

Просто добавьте один бит CSS, код отображаются в, попробуйте его

table td { 
border: 1px solid blue; 
} 

table td:nth-child(1) { 
width:100px; //your value 
} 

table td:nth-child(2) { 
word-wrap: break-word; 
} 

Надеется, что это достаточно для вас

Regds ..

+0

Пожалуйста, прочитайте вопрос, прежде чем поспешить ответить. – Atlas23250

Смежные вопросы