Ik ben een responsive winkelmandje aan het opzetten.
Het winkelmandje bestaat enkel uit DIV's die ik op display table, table-row en table-cell zet.
Omdat het winkelmandje bij kleinere schermen een andere view moet krijgen kan ik helaas geen gewone table toepassen.
In het winkelmandje heeft elk product een productregel. Elke productregel bestaat uit meerdere kolommen (bv omschrijving, prijs, aantal, verwijderen).
Elke productregel heeft een bottom border.
Nu moet er bij elke productregel een stukje tekst kunnen worden geplaatst: een toelichting.
(Een product kan bv een ticket zijn en een dergelijk product moet een kleine toelichting krijgen.)
De tekst moet zo breed zijn als de breedte van de productregel.
Het probleem is dat als ik een nieuwe productregel opzet en daar 1 DIV in plaats, die DIV breedte van de 1e DIV van de productregel erboven krijgt. Logisch natuurlijk: ik zet het geheel op als display:table, table-row en table-cell.
Bij normale tables kun je dan een colspan toepassen.
Maar bij table's opgezet via CSS kan dit -zo lijkt het- niet.
Een stukje HTML
De less:
Een oplossing zou zijn de toelichting-DIV absoluut te positioneren, echter als m'n scherm kleiner wordt, dan wrapt de tekst over meerdere regels. Bij absolute positionering kan ik de hoogte niet stellen.
Hoe kan ik dit oplossen, iemand een idee?
Het winkelmandje bestaat enkel uit DIV's die ik op display table, table-row en table-cell zet.
Omdat het winkelmandje bij kleinere schermen een andere view moet krijgen kan ik helaas geen gewone table toepassen.
In het winkelmandje heeft elk product een productregel. Elke productregel bestaat uit meerdere kolommen (bv omschrijving, prijs, aantal, verwijderen).
Elke productregel heeft een bottom border.
Nu moet er bij elke productregel een stukje tekst kunnen worden geplaatst: een toelichting.
(Een product kan bv een ticket zijn en een dergelijk product moet een kleine toelichting krijgen.)
De tekst moet zo breed zijn als de breedte van de productregel.
Het probleem is dat als ik een nieuwe productregel opzet en daar 1 DIV in plaats, die DIV breedte van de 1e DIV van de productregel erboven krijgt. Logisch natuurlijk: ik zet het geheel op als display:table, table-row en table-cell.
Bij normale tables kun je dan een colspan toepassen.
Maar bij table's opgezet via CSS kan dit -zo lijkt het- niet.
Een stukje HTML
code:
1
2
3
4
5
6
7
8
9
10
11
12
| <div id="winkelmand">
<div class="productregel">
<div class="kolom1"></div>
<div class="kolom2"></div>
<div class="kolom3"></div>
<div class="kolom4"></div>
<div class="kolom"5></div>
</div>
<div class="productregel">
<div class="toelichting">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus fermentum pellentesque viverra. Sed ornare dapibus dignissim</div>
</div>
</div> |
De less:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #winkelmand{
display:table;
width:100%;
.productregel{
display:table-row;
>div{
display:table-cell;
width:20%;
border-bottom:solid 1px #ccc;
}
>div.toelichting{
???
}
}
} |
Een oplossing zou zijn de toelichting-DIV absoluut te positioneren, echter als m'n scherm kleiner wordt, dan wrapt de tekst over meerdere regels. Bij absolute positionering kan ik de hoogte niet stellen.
Hoe kan ik dit oplossen, iemand een idee?