У меня есть таблица вроде этого:
<table cellspacing="0">
<tr>
<td>Row 1</td>
<td><button>Button 1</button></td>
</tr>
<tr>
<td>Row 2</td>
<td><button>Button 2</button></td>
</tr>
<tr>
<td>Row 3</td>
<td><button>Button 3</button></td>
</tr>
</table>
Я хотел абсолютно поместить каждую кнопку в верхнем правом углу строки таблицы, поэтому я использовал этот CSS, ожидая, что <tr>
будет содержать <button>
:
tr {
position:relative;
}
button {
position:absolute;
top:0;
right:0;
}
Однако все кнопки расположены друг на друга в одном месте. Обычно он работает нормально, используя <div>
s, за исключением того, что при использовании display:table-row
, который я обнаружил во время тестирования, он будет вести себя так же, и стал для меня неожиданностью.
Демо: http://jsfiddle.net/QU2zT/1/
Примечание. Моя фактическая разметка более сложна, и элемент, который я пытаюсь установить, может появляться где угодно в любой ячейке таблицы в этой строке, поэтому я считаю, что мне нужно position:absolute
.
- Почему это происходит?
- Как я могу обойти это с помощью CSS без изменения разметки?
РЕДАКТИРОВАТЬ. Результаты в Firefox отличаются друг от друга, чем в Chrome и IE9 (не проверялись выше). FF является полным сбоем, в то время как другие браузеры не могут содержать настройки "divs with table display", которые отображаются в демонстрации .