Reputation: 151
The container
class div does not wrap around the <header>
<main>
<footer>
and instead they're overflowing. It's visible where the red background color stops before the end of the page. The layout is a css grid with flex tables. How can I wrap the grid table inside the container?
body,
html {
height: 100%;
margin: 0;
font-family: Verdana,
Arial,
'Lucida Grande',
sans-serif;
font-size: 16px;
}
header,
footer {
background-color: lightblue;
}
main {
flex: 1;
}
footer {
margin-top: 20px;
}
.container {
display: flex;
flex-direction: column;
height: 100%;
padding: 3px;
background-color: red;
}
.body {
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100%;
}
.flex-table {
display: flex;
flex-direction: column;
flex: 1;
border: 1px solid #ccc;
}
.flex-row {
display: flex;
flex-direction: row;
}
.flex-cell {
display: flex;
flex: 1;
flex-direction: column;
background-color: lightgrey;
padding: 6px;
border-right: 1px solid #ccc;
word-break: break-word;
}
.text-right {
text-align: right;
}
.text-left {
text-align: left;
}
.text-center {
text-align: center;
}
.justify-center {
justify-content: center;
}
.flex-cell:last-child {
border-right: none;
}
.head-flex-container {
display: flex;
flex-direction: column;
width: 100%;
}
.head-flex-row {
display: flex;
width: 100%;
margin-bottom: 10px;
}
.head-flex-column {
flex: 1;
border: 1px solid black;
padding: 10px;
}
.flex-1 {
flex: 1;
}
.flex-2 {
flex: 2;
}
.flex-3 {
flex: 3;
}
.flex-4 {
flex: 4;
}
.flex-5 {
flex: 5;
}
.flex-6 {
flex: 6;
}
.flex-7 {
flex: 7;
}
/* ------------------------ */
.grid {
display: grid;
grid-template-columns: repeat(10, 1fr);
border-top: 1px solid gray;
border-left: 1px solid gray;
}
.grid-column-1 {
grid-column: span 1;
}
.grid-column-2 {
grid-column: span 2;
}
.grid-column-3 {
grid-column: span 3;
}
.grid-column-4 {
grid-column: span 4;
}
.grid-column-5 {
grid-column: span 5;
}
.grid-column-10 {
grid-column: span 10;
}
.grid-column {
border-bottom: 1px solid gray;
border-right: 1px solid gray;
padding: 6px;
}
/* ------------------------ */
.ordini .flex-row.row-header {
border: 1px solid #ccc;
}
.ordini .flex-row:last-child {
flex: 1;
}
<body>
<div class="container">
<header>
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-5 text-center justify-center">
{% if Logo.LogoPath != '' and Logo.LogoPath != null %}
<img src="{{ Logo.LogoPath }}" alt="" style="max-height:150px;" />
{% else %}
<img src="{% logo %}" alt="" style="max-height:150px;" />
{% endif %}
</div>
<div class="flex-cell flex-5">
<p><b>Recipient:</b></p>
<p><b>{{Quote.CrossId}}</b></p>
<p><b>{{Company.Address}}</b></p>
<p><b>{{Company.ZipCode}} - {{Company.City}} {{Company.Province}}</b></p>
</div>
</div>
</div>
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-5 text-left">
Riferim./Reference: {{Quote.Reference}}
</div>
</div>
</div>
<div class="grid">
<div class="grid-column grid-column-5">Customer Sales Order n° {{Quote.Number}} of {{Quote.QuoteDate |
format_date, 'dd/MM/yyyy' }}</div>
<div class="grid-column grid-column-4">Delivery date:&npsp;{{Quote.ShipDate | format_date, 'dd/MM/yyyy'
}}</div>
<div class="grid-column grid-column-1">Page 1/1</div>
<div class="grid-column grid-column-3">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-2">
Account:
</div>
<div class="flex-cell flex-4">
{{Company.CompanyCode}}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
VAT Number:
</div>
<div class="flex-cell flex-4">
{{Company.VatId}}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Fiscal Code:
</div>
<div class="flex-cell flex-4">
{{Company.TaxIdentificationNumber}}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Port:
</div>
<div class="flex-cell flex-4">
{{Quote.Porto}}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Inv1:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Inv2:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
</div>
</div>
<div class="grid-column grid-column-2">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-2">
Categ.:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Place:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
</div>
</div>
<div class="grid-column grid-column-5">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-1">
Payment:
</div>
<div class="flex-cell flex-2">
{{Company.PaymentModeId}}
</div>
<div class="flex-cell flex-4">
{{Company.PaymentCodes}}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
Bank:
</div>
<div class="flex-cell flex-2">
{{Company.BankId}}
</div>
<div class="flex-cell flex-4">
{{Company.Bank}}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
Agent:
</div>
<div class="flex-cell flex-2">
-
</div>
<div class="flex-cell flex-4">
{{Company.FreeFields[9].Value}}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
-
</div>
<div class="flex-cell flex-2">
-
</div>
<div class="flex-cell flex-4">
{{Company.CurrencyId}}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
D/i type:
</div>
<div class="flex-cell flex-2">
-
</div>
<div class="flex-cell flex-4">
Preventivo
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
S.ord.Inv.:
</div>
<div class="flex-cell flex-2">
-
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
</div>
</div>
</div>
</header>
<main>
<div class="body">
<div class="flex-table ordini">
<div class="flex-row row-header">
<div class="flex-cell text-center">Item</div>
<div class="flex-cell text-center">Description</div>
<div class="flex-cell text-center">UM</div>
<div class="flex-cell text-center">Quantity</div>
<div class="flex-cell text-center">Unity Price</div>
<div class="flex-cell text-center">Discount</div>
<div class="flex-cell text-center">VAT</div>
<div class="flex-cell text-center">Amount</div>
<div class="flex-cell text-center">Deliv.</div>
</div>
{% for row in Quote.ErpRows %}
<div class="flex-row">
<div class="flex-cell text-center">{{ row.ProductCode }}</div>
<div class="flex-cell">{{ row.description }}</div>
<div class="flex-cell text-center">{{ row.UnitMeasure | empty_cell }}</div>
<div class="flex-cell">{% if row.FooterDiscount != 0 %} {{ row.Qta | format_decimal, 2 |
empty_cell }} {% endif %}</div>
<div class="flex-cell">{{ var_currency_symbol }} {{ row.UnitPrice | format_decimal, 2 |
empty_cell }}</div>
<div class="flex-cell">{% if row.DiscountFormula != 0 %} {{ row.DiscountFormula |
format_decimal, 2 | empty_cell }} {% endif %}</div>
<div class="flex-cell">{% if row.Tax != 0 %} {{ row.Tax | format_decimal, 0 | empty_cell }} {%
endif %}</div>
<div class="flex-cell">{{ var_currency_symbol }} {{ row.Amount | format_decimal, 2 |
empty_cell }}</div>
<div class="flex-cell">{{Quote.ShipDate | format_date, 'dd/MM/yyyy' }}</div>
</div>
{% endfor %}
</div>
</div>
</main>
<footer>
<div class="grid">
<div class="grid-column grid-column-10 text-left">
Note: {{Quote.Description | empty_cell }}
</div>
<div class="grid-column grid-column-5">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-2">
Delivery by:
</div>
<div class="flex-cell flex-4">
{{Quote.ShippedBy | empty_cell }}
</div>
<div class="flex-cell flex-2">
Mittente:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Carrier:
</div>
<div class="flex-cell flex-4">
{{Quote.Carrier}}
</div>
<div class="flex-cell flex-2">
</div>
<div class="flex-cell flex-4">
</div>
</div>
</div>
</div>
<div class="grid-column grid-column-5">
<div class="flex-grid-2">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-3">
% Discount:
</div>
<div class="flex-cell flex-7 text-right">
{% if Quote.FooterDiscount != 0 %} {{ Quote.FooterDiscount | format_decimal, 2 |
empty_cell }} {% endif %}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-3">
Transport costs:
</div>
<div class="flex-cell flex-7 text-right">
{{Quote.CurrencyShip | format_decimal, 2 | empty_cell }}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-3">
Total Goods:
</div>
<div class="flex-cell flex-7 text-right">
{{Quote.SubTotal | format_decimal, 2 | empty_cell }}
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-3">
<b>Document Total:</b>
</div>
<div class="flex-cell flex-7 text-right">
<b>{{Quote.GrandTotal | format_decimal, 2 | empty_cell }}</b>
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
</div>
</body>
Upvotes: 0
Views: 31
Reputation: 1309
Add overflow to the container. I have added overflow : scroll;
.
body,
html {
height: 100%;
margin: 0;
font-family: Verdana,
Arial,
'Lucida Grande',
sans-serif;
font-size: 16px;
}
header,
footer {
background-color: lightblue;
}
main {
flex: 1;
}
footer {
margin-top: 20px;
}
.container {
display: flex;
flex-direction: column;
height: 100%;
padding: 3px;
background-color: red;
overflow: scroll;
}
.body {
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100%;
}
.flex-table {
display: flex;
flex-direction: column;
flex: 1;
border: 1px solid #ccc;
}
.flex-row {
display: flex;
flex-direction: row;
}
.flex-cell {
display: flex;
flex: 1;
flex-direction: column;
background-color: lightgrey;
padding: 6px;
border-right: 1px solid #ccc;
word-break: break-word;
}
.text-right {
text-align: right;
}
.text-left {
text-align: left;
}
.text-center {
text-align: center;
}
.justify-center {
justify-content: center;
}
.flex-cell:last-child {
border-right: none;
}
.head-flex-container {
display: flex;
flex-direction: column;
width: 100%;
}
.head-flex-row {
display: flex;
width: 100%;
margin-bottom: 10px;
}
.head-flex-column {
flex: 1;
border: 1px solid black;
padding: 10px;
}
.flex-1 {
flex: 1;
}
.flex-2 {
flex: 2;
}
.flex-3 {
flex: 3;
}
.flex-4 {
flex: 4;
}
.flex-5 {
flex: 5;
}
.flex-6 {
flex: 6;
}
.flex-7 {
flex: 7;
}
/* ------------------------ */
.grid {
display: grid;
grid-template-columns: repeat(10, 1fr);
border-top: 1px solid gray;
border-left: 1px solid gray;
}
.grid-column-1 {
grid-column: span 1;
}
.grid-column-2 {
grid-column: span 2;
}
.grid-column-3 {
grid-column: span 3;
}
.grid-column-4 {
grid-column: span 4;
}
.grid-column-5 {
grid-column: span 5;
}
.grid-column-10 {
grid-column: span 10;
}
.grid-column {
border-bottom: 1px solid gray;
border-right: 1px solid gray;
padding: 6px;
}
/* ------------------------ */
.ordini .flex-row.row-header {
border: 1px solid #ccc;
}
.ordini .flex-row:last-child {
flex: 1;
}
<body>
<div class="container">
<header>
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-5 text-center justify-center">
Logo
<img src="{{ Logo.LogoPath }}" alt="" style="max-height:150px;" />
<img src="{% logo %}" alt="" style="max-height:150px;" />
</div>
<div class="flex-cell flex-5">
<p><b>Recipient:</b></p>
<p><b>Verdana</b></p>
<p><b>Name</b></p>
<p><b>488888 - USA Newyork</b></p>
</div>
</div>
</div>
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-5 text-left">
Riferim./Reference: Refer
</div>
</div>
</div>
<div class="grid">
<div class="grid-column grid-column-5">Customer Sales Order n° 11 of 11/11/2011 }</div>
<div class="grid-column grid-column-4">Delivery date:&npsp;11/11/2011
}}</div>
<div class="grid-column grid-column-1">Page 1/1</div>
<div class="grid-column grid-column-3">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-2">
Account:
</div>
<div class="flex-cell flex-4">
3222444
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
VAT Number:
</div>
<div class="flex-cell flex-4">
545543
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Fiscal Code:
</div>
<div class="flex-cell flex-4">
4545454
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Port:
</div>
<div class="flex-cell flex-4">
Tetrr
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Inv1:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Inv2:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
</div>
</div>
<div class="grid-column grid-column-2">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-2">
Categ.:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Place:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
</div>
</div>
<div class="grid-column grid-column-5">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-1">
Payment:
</div>
<div class="flex-cell flex-2">
343434
</div>
<div class="flex-cell flex-4">
3434
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
Bank:
</div>
<div class="flex-cell flex-2">
3434
</div>
<div class="flex-cell flex-4">
Bank of USA
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
Agent:
</div>
<div class="flex-cell flex-2">
-
</div>
<div class="flex-cell flex-4">
5455345
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
-
</div>
<div class="flex-cell flex-2">
-
</div>
<div class="flex-cell flex-4">
5454
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
D/i type:
</div>
<div class="flex-cell flex-2">
-
</div>
<div class="flex-cell flex-4">
Preventivo
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-1">
S.ord.Inv.:
</div>
<div class="flex-cell flex-2">
-
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
</div>
</div>
</div>
</header>
<main>
<div class="body">
<div class="flex-table ordini">
<div class="flex-row row-header">
<div class="flex-cell text-center">Item</div>
<div class="flex-cell text-center">Description</div>
<div class="flex-cell text-center">UM</div>
<div class="flex-cell text-center">Quantity</div>
<div class="flex-cell text-center">Unity Price</div>
<div class="flex-cell text-center">Discount</div>
<div class="flex-cell text-center">VAT</div>
<div class="flex-cell text-center">Amount</div>
<div class="flex-cell text-center">Deliv.</div>
</div>
5454
<div class="flex-row">
<div class="flex-cell text-center">54545</div>
<div class="flex-cell">45454</div>
<div class="flex-cell text-center">45454</div>
<div class="flex-cell">345</div>
<div class="flex-cell">4543 </div>
<div class="flex-cell">345345</div>
<div class="flex-cell">34345</div>
<div class="flex-cell">5345345</div>
<div class="flex-cell">11/11/11</div>
</div>
</div>
</div>
</main>
<footer>
<div class="grid">
<div class="grid-column grid-column-10 text-left">
Note: rrrrrr
</div>
<div class="grid-column grid-column-5">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-2">
Delivery by:
</div>
<div class="flex-cell flex-4">
rrrrrr
</div>
<div class="flex-cell flex-2">
Mittente:
</div>
<div class="flex-cell flex-4">
-
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-2">
Carrier:
</div>
<div class="flex-cell flex-4">
rrrr
</div>
<div class="flex-cell flex-2">
</div>
<div class="flex-cell flex-4">
</div>
</div>
</div>
</div>
<div class="grid-column grid-column-5">
<div class="flex-grid-2">
<div class="flex-table">
<div class="flex-row">
<div class="flex-cell flex-3">
% Discount:
</div>
<div class="flex-cell flex-7 text-right">
rrrrer
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-3">
Transport costs:
</div>
<div class="flex-cell flex-7 text-right">
erererer
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-3">
Total Goods:
</div>
<div class="flex-cell flex-7 text-right">
44545
</div>
</div>
<div class="flex-row">
<div class="flex-cell flex-3">
<b>Document Total:</b>
</div>
<div class="flex-cell flex-7 text-right">
<b>4ttrer</b>
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
</div>
</body>
Upvotes: 0