Во-первых, как правило, вы хотите избежать размещения элементов уровня блока во встроенных элементах, и это один из таких случаев. Смотрите здесь:
http://www.w3.org/TR/REC-html40/struct/global.html#block-inline
Обратите внимание: «Как правило, элементы уровня блока могут содержать встроенные элементы и другие элементы уровня блока. Как правило, встроенные элементы могут содержать только данные и другие встроенные элементы. В этом структурном различии заложена идея создания элементов блока». "большие структуры, чем встроенные элементы."
Что касается CSS, вы бы сказали:
.table2 p
{
text-overflow:ellipsis;
overflow:hidden;
white-space:nowrap;
width: 100%;
}
Что касается HTML, вам нужно изменить span
s на div
s:
<td>
<div class='outer'>
<button>+</button>
<div class='inner'><p>Sed eu nisi sit ametametamet</p></div>
</div>
</td>
В противном случае установка ширины в 100% для элемента p
не сможет вписать его ширину в родительский элемент, поскольку родительским элементом является span
, который является встроенным элементом.
Спасибо.
Пожалуйста, смотрите здесь: http://jsfiddle.net/VivekVish/HYDss/76/