Создать таблицу, используя только CSS
Мне нужен макет таблицы, который выглядит следующим образом:
Ячейка один (rowspan 2)
Ячейка 2 и 3 (рядом с ячейкой 1 и друг с другом)
Ячейка четыре (colspan 2 под ячейкой два и три)
Проблема, с которой я столкнулся, заключается в том, что это нужно делать только с использованием CSS, я вообще не могу использовать какие-либо элементы таблицы в коде.
Ячейка 1 также должна растягиваться до ширины 100%, если ячейки 2, 3 и 4 пусты.
Я работаю над шаблоном Artisteer 4 в Joomla и искал все, и просто не могу найти рабочее решение.
У меня есть следующий код:
<div class="prof-layout-wrapper">
<div class="prof-content-layout">
<div class="prof-content-layout-row">
<div class="prof-layout-cell prof-content">
<?php
echo $view->position('banner2', 'prof-nostyle');
if ($view->containsModules('breadcrumb'))
echo artxPost($view->position('breadcrumb'));
echo $view->positions(array('user1' => 50, 'user2' => 50), 'prof-article');
echo $view->position('banner3', 'prof-nostyle');
echo artxPost(array('content' => '<jdoc:include type="message" />', 'classes' => ' prof-m essages'));
echo '<jdoc:include type="component" />';
echo $view->position('banner4', 'prof-nostyle');
echo $view->positions(array('user4' => 50, 'user5' => 50), 'prof-article');
echo $view->position('banner5', 'prof-nostyle');?>
</div>
<?php if ($view->containsModules('left')) : ?>
<div class="prof-layout-cell prof-sidebar1">
<?php echo $view->position('left', 'prof-block'); ?>
</div>
<?php endif; ?>
<?php if ($view->containsModules('right')) : ?>
<div class="prof-layout-cell prof-sidebar2">
<?php echo $view->position('right', 'prof-block'); ?>
</div>
<?php endif; ?>
</div>
</div>
</div>
CSS это:
.prof-layout-wrapper
{
position: relative;
margin: 0 auto 0 auto;
z-index: auto !important;
}
.prof-content-layout
{
display: table;
width: 100%;
table-layout: fixed;
float: left;
}
.prof-content-layout-row
{
display: table-row;
}
.prof-layout-cell
{
display: table-cell;
vertical-align: top;
}
Для жизни я не могу заставить Cell 4 пересекаться без разрушения всего макета.
Пожалуйста помоги!
(Надеюсь, это достаточно хорошее объяснение)
1 ответ
Конечно!
Демо Фиддл
HTML
<div class='table'>
<div class='row'>
<div class='cell'>cell1</div>
<div class='cell'>
<div class='table'>
<div class='row'>
<div class='cell'>cell2</div>
<div class='cell'>cell3</div>
</div>
<div class='caption'>cell4</div>
</div>
</div>
</div>
</div>
CSS
html, body {
width:100%;
}
.table {
display:table;
width:100%;
}
.row {
display:table-row;
}
.cell {
display:table-cell;
border:1px solid grey;
}
.caption {
display:table-caption;
caption-side:bottom;
border:1px solid grey;
}
Если вы хотите автоматически расширять / сворачивать функциональность, вы можете немного изменить код, как эта скрипка