отображение css: таблица не отображает границу
<html>
<style type="text/css">
.table { display: table;}
.tablerow { display: table-row; border:1px solid black;}
.tablecell { display: table-cell; }
</style>
<div class="table">
<div class="tablerow">
<div class="tablecell">Hello</div>
<div class="tablecell">world</div>
</div>
<div class="tablerow">
<div class="tablecell">foo</div>
<div class="tablecell">bar</div>
</div>
</div>
</html>
согласно моему пониманию, черная граница должна быть нарисована на каждой из строк, которые я указал через класс tablerow.Но граница не подходит.
и я хотел изменить высоту строки.Если я укажу его с помощью 'px' -- это сработает.Но, если я дам его с % -- не будет работать.Я попробовал следующее
.tablerow {
display: table-row;
border:1px solid black;
position: relative; //not affecting anything and the border disappears!!
//position: absolute; // if this is set,the rows overlaps and the border works
height: 40%; // works only if specified in px and not in %
}
что-то идет не так где-то, но я не в состоянии понять, где. Пожалуйста, помогите!
3 ответа:
вам нужно добавить
border-collapse: collapse;
до.table
класс для него, чтобы работать так:<html> <style type="text/css"> .table { display: table; border-collapse: collapse;} .tablerow { display: table-row; border: 1px solid #000;} .tablecell { display: table-cell; } </style> <div class="table"> <div class="tablerow"> <div class="tablecell">Hello</div> <div class="tablecell">world</div> </div> <div class="tablerow"> <div class="tablecell">foo</div> <div class="tablecell">bar</div> </div> </div> </html>
вам нужно добавить
border
доtablecell
класса.кроме того, чтобы он выглядел красиво, вам нужно будет добавить
border-collapse:collapse;
к классу таблицы.пример:http://jsfiddle.net/jasongennaro/4bvc2/
EDIT
в соответствии с комментария
я применяю границу к div, она должна отображаться правильно ?
да, но как только вы установите его, чтобы отобразить как
table
вот как он будет действовать... какtable
, поэтому вам нужно будет следовать правилам css для отображения таблиц.Если вам нужно установить
border
только на строках, используйтеborder-top
иborder-bottom
а затем установите определенные классы для самых левых и самых правых ячеек.
строки таблицы не могут иметь атрибут границы. Вы можете получить границу вокруг каждой строки, предоставив всем ячейкам верхнюю и нижнюю границу и добавив класс для самых левых и самых правых ячеек с левой и правой границей соответственно.
edit: я забыл о
border-collapse:collapse
. Это тоже сработает.