Вы можете просто применить overflow: hidden
к элементу покрытия.
Строго говоря, иметь элемент с display:table-cell
, который не находится внутри элемента с display:table-row
, который сам не находится внутри элемента с display:table
часто приводит к непредсказуемым результатам и неожиданному поведению, и это один из них.Вместо этого вы могли бы легко использовать элемент <table>
, подобный этому:
<table style="table-layout: fixed;">
<tr>
<td style="width: 100px; overflow: hidden; vertical-align: middle;">Text here</td>
</tr>
</table>
Вышеописанное работает!Вы также можете иметь строки для заголовка заметки и прочее.Конечно, это не красиво, но оно использует вещи, которые были разработаны для этой ситуации.
Но кроме этого, у вас есть <div>
элементы внутри a <span>
- это не хорошо имногие старые браузеры (и некоторые недавние) отклонят его.У вас никогда не должно быть элементов блочного уровня внутри одного встроенного уровня.