#html #css #html-table
Вопрос:
Я пытаюсь создать дизайн счета-фактуры в простой HTML-таблице. Я старался изо всех сил, но мне не удалось создать этот дизайн в HTML. Я новичок в HTML и даже прочитал все главы в w3school. Но я не знаю, как я это оформляю в HTML? Я попробовал приведенный ниже код, но он оказался не таким, как ожидалось. Каким будет код для дизайна вкладки html, когда я прикреплю изображение?
<table style="height: 90px; width: 100%; border-collapse: collapse; border-style: solid;" border="1">
<tbody>
<tr style="height: 18px;">
<td style="width: 50%; height: 18px;">A</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
</tr>
<tr style="height: 18px;">
<td style="width: 50%; height: 18px;">amp;nbsp;</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
</tr>
<tr style="height: 18px;">
<td style="width: 50%; height: 18px;">amp;nbsp;</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
</tr>
<tr style="height: 18px;">
<td style="width: 50%; height: 18px;">amp;nbsp;</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
</tr>
<tr style="height: 18px;">
<td style="width: 50%; height: 18px;">amp;nbsp;</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
<td style="width: 25%; height: 18px;">amp;nbsp;</td>
</tr>
</tbody>
</table>
<table style="border-collapse: collapse; width: 100%; height: 36px;" border="1">
<tbody>
<tr style="height: 18px;">
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
</tr>
<tr style="height: 18px;">
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
<td style="width: 12.5%; height: 18px;">amp;nbsp;</td>
</tr>
<tr>
<td style="width: 12.5%;">amp;nbsp;</td>
<td style="width: 12.5%;">amp;nbsp;</td>
<td style="width: 12.5%;">amp;nbsp;</td>
<td style="width: 12.5%;">amp;nbsp;</td>
<td style="width: 12.5%;">amp;nbsp;</td>
<td style="width: 12.5%;">amp;nbsp;</td>
<td style="width: 12.5%;">amp;nbsp;</td>
<td style="width: 12.5%;">amp;nbsp;</td>
</tr>
</tbody>
</table>
<table style="border-collapse: collapse; width: 100%;" border="1">
<tbody>
<tr>
<td style="width: 100%;">amp;nbsp;</td>
</tr>
</tbody>
</table>
Комментарии:
1. Вы должны использовать
colspan
rowspan
атрибуты и для объединения ячеек. С помощью этого вы сможете составить единый<table>
и соответствующий вашим ожиданиям стол2. Пожалуйста, помогите мне, я попробовал закончить с 1 дня, но со мной этого не происходит..
3. Как только вы получите свой ответ, вам также необходимо подумать о том, что произойдет, если счет-фактура выйдет за рамки одной страницы.
Ответ №1:
Вот возможный пример использования colspan и rowspan.
/*to show cell's position*/
table,
td {
border: solid 2px black;
text-align: center;
border-collapse: collapse;
}
.bold~tr td {
border: solid 1px lightgray;
}
td {
padding: 0.5em;
}
[colspan="4"][rowspan="2"] {
height: 6em;
}
<table>
<tr>
<td colspan="4" rowspan="3">A</td>
<td colspan="2">D</td>
<td colspan="2">E</td>
</tr>
<tr>
<td colspan="2">F</td>
<td colspan="2">G</td>
</tr>
<tr>
<td colspan="2">H</td>
<td colspan="2">I</td>
</tr>
<tr>
<td colspan="4" rowspan="2">B </td>
<td colspan="2">J</td>
<td colspan="2">K</td>
</tr>
<tr>
<td colspan="4" rowspan="2"> L </td>
</tr>
<tr>
<td colspan="4">C</td>
</tr>
<tr>
<td>SL</td>
<td>Items</td>
<td>Due DT</td>
<td>Qty</td>
<td>Rate</td>
<td>Per</td>
<td>Dis%</td>
<td>Amt</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="bold">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td colspan="3">AMT IN WORD</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>E. amp; O.E</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td colspan="4" rowspan="4"></td>
</tr>
<tr>
<td colspan="4">COMPAGNY NAME</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
учебные пособия вы можете найти в своей поисковой системе :
Ответ №2:
<style>
table{
height: 90px;
width: 100%;
border-collapse: collapse;
border-style: solid;
}
tr{height: 18px;}
.s1-l{height:120px}
.s1{width: 50%; height: 18px;}
.s2{width: 25%; height: 18px;}
.s3{width: 12.5%; height: 18px;}
.c1{border: 1px solid black}
</style>
<table border="1" style="width:100%">
<tbody class="c1">
<tr><th rowspan="3" colspan="4">A</th><th colspan="2">D</th><th colspan="2">E</th></tr>
<tr><th colspan="2">F</th><th colspan="2">G</th></td></tr>
<tr><th colspan="2">H</th><th colspan="2">I</th></tr>
<tr><th colspan="4" rowspan="2">B</th><th colspan="2">J</th><th colspan="2">K</th></tr>
<tr><th colspan="4" rowspan="4">L</th></tr>
<tr><th colspan="4" rowspan="3">C</th></tr>
</tbody>
<ttbody>
<tr><td >SL</td><td>Items</td><td>Due Dt</td><td>Qty</td><td>Rate</td><td>Per</td><td>Dis%</td><td>Amt</td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
</tbody>
<tbody>
<tr><td colspan="3">AMT IN WORD</td><td></td><td></td><td></td><td></td><td>E.amp; 0.E</td></tr>
<tr><td></td><td></td><td></td><td></td><td colspan="4" rowspan="4"></td></tr>
<tr><td colspan="3">COMPANY NAME</td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
</tbody>
</table>
Здесь я переделал код. С таблицей вы должны заранее знать размер таблицы. Итак, этот стол был 24 на 8. Затем вы должны пройти строку за строкой(tr), а затем пометить их. Используйте colspan и диапазон строк, чтобы изменить его размер в зависимости от того, что вы хотите. tbody можно использовать для быстрого оформления многих ячеек в нем.
Также я добавляю блок стилей, чтобы показать вам, что вы можете использовать класс вместо этого, чтобы быстро обновить стиль для всего, что имеет этот класс. В итоге я перестал использовать ваши стили. Также я использую тег th вместо td, потому что по умолчанию он имеет стиль по центру и полужирный.
Комментарии:
1. Почему вы должны использовать обычную разметку и гибкую разметку, когда эти данные заслуживают HTML-разметки ? кроме того , для охвата строк и столбцов потребуется сетка, а не гибкая 😉
2. @леви, пожалуйста, не голосуй против меня… Я не знаю, как использовать ваш ответ.. Пожалуйста, помогите мне создать дизайн счета-фактуры в html
3. @JustinParker Оглядываясь назад, я пересмотрел счет и дал объяснение. ПОДДЕРЖИ МЕНЯ, ПОЖАЛУЙСТА
4. @G-Кирилл, Ты прав, использование CSS на столе-это на самом деле кошмар. Я переделал, пожалуйста, взгляните и поддержите меня, если хотите. Кстати, первый пост.