У меня небольшая проблема. Я использую FireFox 3.6 и имею следующую структуру DOM:
<div class="view-row">
<div class="view-type">Type</div>
<div class="view-name">Name</div>
</div>
И следующий CSS:
.view-row {
width:100%;
display:table-row;
}
.view-name {
display: table-cell;
float:right;
}
.view-type {
display: table-cell;
}
Если я сниму, display:table-row
он будет отображаться правильно с view-row
шириной 100%. Если я положу его обратно, он сжимается. Я разместил это в JS Bin:
В чем дело?
Проверенный ответ:
В CSS-строке .view-row измените:
display:table-row;
кому:
display:table
и избавимся от «плавания» . Все будет работать как положено.
Как было предложено в комментариях, таблица обертывания не нужна. CSS позволяет опускать неявные уровни древовидной структуры (в данном случае строки). Причина, по которой ваш код не работает, заключается в том, что «ширина» может быть интерпретирована только на уровне таблицы, а не на уровне строки таблицы. Когда у вас есть «таблица», а затем «таблица-ячейка» непосредственно под ней, они неявно интерпретируются как сидящие в ряд.
Рабочий пример:
<div class="view"> <div>Type</div> <div>Name</div> </div>
с css:
.view { width:100%; display:table; } .view > div { width:50%; display: table-cell; }
источник
<table><td></td></table>
который сам по себе был бы недопустимой разметкой HTML согласно W3C. Хотя он будет проверять, зачем вам предлагать браузеру имитировать эту разметку?Обратите внимание, что согласно спецификации CSS3 вам НЕ нужно заключать макет в элемент табличного стиля. Браузер определит наличие содержащихся элементов, если они не существуют.
источник
отдать на
.view-type
занятиеfloat:left;
или удалитьfloat:right;
из.view-name
изменить: например, оберните свой div
<div class="view-row">
другим div<div class="table">
и установите следующий css:
.table { display:table; width:100%;}
Вы должны использовать структуру таблицы для правильных результатов.
источник
Вы можете вложить ячейку таблицы прямо в таблицу. Тебе нужен стол. Запуск с таблицей-строкой не работает. Попробуйте с этим HTML:
<html> <head> <style type="text/css"> .table { display: table; width: 100%; } .tr { display: table-row; width: 100%; } .td { display: table-cell; } </style> </head> <body> <div class="table"> <div class="tr"> <div class="td"> X </div> <div class="td"> X </div> <div class="td"> X </div> </div> </div> <div class="tr"> <div class="td"> X </div> <div class="td"> X </div> <div class="td"> X </div> </div> <div class="table"> <div class="td"> X </div> <div class="td"> X </div> <div class="td"> X </div> </div> </body> </html>
источник