3 div's naast elkaar op dezelfde hoogte

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • genexxa
  • Registratie: Januari 2013
  • Laatst online: 18-03-2023
Hallo,

Ik ben hier voor het eerst en hoop dat iemand mij kan helpen met het volgende probleem.

Ik heb in html een div page
Daarin staan nog 3 div's
div image1
div image2
div image3

In deze 3 div's staat in elk een plaatje.
Echter krijg ik het niet voor elkaar om de 3 div's naast elkaar op gelijke hoogte te plaatsen.

Het moet een Responsive webpagina worden dus de 3 div's schalen mee met het scherm grote.

Hieronder de CSS en HTML die ik gemaakt heb.

CSS
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
body {
  padding: 0px;
  margin:0px;
  font-family: Cambria, Georgia, serif;
  line-height: 1.2em;
  font-size:100%;
  background:#CCC url(img/noise.png);
}
#header, #footer, h1, h2, h3 {
  font-family: 'Open Sans Condensed', sans-serif;
}
#header {
  background-color: #0c0709;
  background-repeat: no-repeat;
  max-width:1280px;
  margin: 0;
  padding: 0;
  height: 99px;
}
 
#footer {
        color: #399;
        background:#333 url(img/noise.png); 
        padding:0;
        margin:0;
        clear: both;
        width: 100%;
}
 
#footer h3 {
padding: 30px 40px;
}
 
#content{
max-width:1280px;
margin: 0 auto;
}
 
#page {
width: 100%;
height:100%;
}
 
#image1 {
  width: 25%;
  margin: 30% 0 0 5%;
  padding: 0;
}
 
#image2{
  width: 25%;
  margin: -14% 0 0 37%;
  padding: 0;
}
 
#image3{
  width: 25%;
  margin: -14% 0 0 69%;
  padding: 0;
}
 
.img {
        width:100%;
    max-width:350px;
    height: auto;
        margin-left: auto;
        margin-right: auto;
 
}
 
 
/* MEDIA QUERIES */
@media screen and (max-width: 768px) {
        body{
                font-size: 120%;
                }
               
               
        #image1 {
                margin: 0;
                margin-top: 1%;
                margin-left: auto;
                margin-right: auto;
                width:50%;   
    }   
       
    #image2 {
                margin: 0;
                margin-top: 1%;
                margin-left: auto;
                margin-right: auto;
                width:50%;   
    }   
       
        #image3 {
                margin: 0;
                margin-top: 1%;
                margin-left: auto;
                margin-right: auto;
                width:50%;   
    }   
 
 
@media screen and (max-width: 480px) {
        body{
                font-size: 120%;
        }
        #image1{
                margin: 0;
                margin-top: 5%;
                margin-left: auto;
                margin-right: auto;
                width:60%;   
    }
       
    #image2{
                margin: 0;
                margin-top: 5%;
                margin-left: auto;
                margin-right: auto;
                width:60%;   
    }
        #image3{
                margin: 0;
                margin-top: 5%;
                margin-left: auto;
                margin-right: auto;
                width:60%;   
}


HTML
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<body>
 
<div id="header"><img src="img/logo1.png" height="99" alt=""></div>
 
<div id="content">
  <div id="page">
    <div id="image1"><img src="img/test1.png" width="350" height="146" alt="responsive design image" class="img"></div>
 
    <div id="image2">
    <img src="img/test2.png" width="350" height="146"  alt="responsive design image" class="img"></div>
   
    <div id="image3">
      <img src="img/test3.png" width="350" height="146"  alt="responsive design image" class="img">    </div>
  </div>
</div>
       
 
  </div>
 
<div id="footer">
      <h3>footer tekst</h3>
  </div>
</body>


Wie kan mij helpen met dit probleem.

Acties:
  • 0 Henk 'm!

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Waarom hardcoded breedtes van de plaatjes erin?
En waarom gebruik je negatieve margins, die zijn volgens mij niet nodig.

3 divjes met een breedte, en evt een float left erop moet genoeg zijn om ze gewoon netjes naast elkaar te renderen

Acties:
  • 0 Henk 'm!

  • tha_crazy
  • Registratie: Maart 2007
  • Laatst online: 14:04

tha_crazy

Mafketel

Waarom niet gebruik maken van FlexBox?
https://css-tricks.com/snippets/css/a-guide-to-flexbox/

Heb het idee dat je nu te veel aan t doen bent om iets kleins aan de praat te krijgen

[ Voor 31% gewijzigd door tha_crazy op 20-07-2015 16:20 ]


Acties:
  • 0 Henk 'm!

  • genexxa
  • Registratie: Januari 2013
  • Laatst online: 18-03-2023
als ik float left gebruik, dan centreren de 3 div's niet bij een tablet of nog kleiner formaat

Acties:
  • 0 Henk 'm!

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

genexxa schreef op maandag 20 juli 2015 @ 16:19:
als ik float left gebruik, dan centreren de 3 div's niet bij een tablet of nog kleiner formaat
Dan zou ik die float gewoon weglaten. Dan zouden ze bij een breed genoeg scherm in elk geval naast elkaar moeten renderen.

Acties:
  • 0 Henk 'm!

  • TheBoef
  • Registratie: November 2007
  • Laatst online: 12-09 11:41
Gebruik display: inline-block; op je image div's.

Acties:
  • 0 Henk 'm!

  • mustisen
  • Registratie: Oktober 2006
  • Laatst online: 13-09 20:35
Je wilt 3 plaatjes naast elkaar kunnen tonen en afhankelijk van hoe breed het scherm is, wil je dat alles meeschaalt:
genexxa schreef op maandag 20 juli 2015 @ 16:12:
In deze 3 div's staat in elk een plaatje.
Echter krijg ik het niet voor elkaar om de 3 div's naast elkaar op gelijke hoogte te plaatsen.

Het moet een Responsive webpagina worden dus de 3 div's schalen mee met het scherm grote.
Gebruik het pakket Bootstrap zou ik zeggen. Zoek op Youtube naar "Bootstrap tutorial" waar uitgelegd wordt hoe je de spulleboel kunt installeren en gebruiken. De pagina is opgedeeld in 12 grids waar je je divs over verdeeld. In jouw geval zou het dus 3 divs van 4 breed zijn. Vervolgens geef je aan vanaf welke schermbreedte het moet 'breken', waardoor de divs automatisch onder elkaar getoond worden ipv naast elkaar.

Voordeel: CSS en JS krijg je meegeleverd dat een aardig groot deel van je behoefte dekt.
Nadeel: Alle webpagina's gemaakt met Bootstrap lijken qua kleurgebruik en structuur een beetje op elkaar.

Acties:
  • +1 Henk 'm!

  • FotW
  • Registratie: Juli 2012
  • Laatst online: 16-08 18:47
mustisen schreef op maandag 20 juli 2015 @ 16:28:
Je wilt 3 plaatjes naast elkaar kunnen tonen en afhankelijk van hoe breed het scherm is, wil je dat alles meeschaalt:


[...]


Gebruik het pakket Bootstrap zou ik zeggen. Zoek op Youtube naar "Bootstrap tutorial" waar uitgelegd wordt hoe je de spulleboel kunt installeren en gebruiken. De pagina is opgedeeld in 12 grids waar je je divs over verdeeld. In jouw geval zou het dus 3 divs van 4 breed zijn. Vervolgens geef je aan vanaf welke schermbreedte het moet 'breken', waardoor de divs automatisch onder elkaar getoond worden ipv naast elkaar.

Voordeel: CSS en JS krijg je meegeleverd dat een aardig groot deel van je behoefte dekt.
Nadeel: Alle webpagina's gemaakt met Bootstrap lijken qua kleurgebruik en structuur een beetje op elkaar.
Of je laadt inderdaad gelijk een heel framework in voor een simpele casus 8)7

Acties:
  • 0 Henk 'm!

  • genexxa
  • Registratie: Januari 2013
  • Laatst online: 18-03-2023
heb het voor elkaar gekregen.
Ik gebruikte per ongeluk een , ipv een .
dus heb nu voor div image2 en div image 3, -14,7% gebruikt.
Dat werkt perfect.

thnx voor de hulp anyway ;)

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Cascading Stylesheet:
1
2
3
4
#image1,#image2.#image3 {
  float: left;
  width: 33.33%;
}

Done.

Drie plaatjes naast elkaar is toch niet zo spannend?

En anders gebruik je display:inline-block of Flexbox, of faux tables. Keuze zat toch?

日本!🎌


Acties:
  • 0 Henk 'm!

  • Krilo_89
  • Registratie: September 2012
  • Laatst online: 04-09 11:18
Waarom Flexbox, dit werkt nog niet op alle browsers, dus zou ik sowieso nog niet gebruiken.

display: inline-block gaat ook niet werken wanneer je als breedte 33,3333333% meegeeft, doordat er een extra 4px per block element meegerekend wordt. Dit is een nadeel van display: inline-block, dus hiermee zla je 3e block altijd op de volgende regel komen.

Enige oplossing is met float: left. En zorg er wel voor dat de div eromheen een clearfix heeft, anders krijgt deze div een hoogte van 0px, wat soms voor rare effecten zorgt.
Je images zelf moeten geen inline breedte of hoogte meekrijgen, maar een display: block; en een max-width: 100%; . Dit zorgt ervoor dat je images binnen je Div's altijd meeschalen en nooit groter worden dan zichzelf (ze worden niet opgeblazen).

Acties:
  • 0 Henk 'm!

  • TI_Observer
  • Registratie: April 2006
  • Laatst online: 26-08 08:14
flex werkt op elke browser minstens 2 versies terug, alleen die van ie heeft een vendor prefix nodig

Ik lieg ALTIJD... zie je dat was weer een leugen!


Acties:
  • 0 Henk 'm!

  • Krilo_89
  • Registratie: September 2012
  • Laatst online: 04-09 11:18
http://caniuse.com/#feat=flexbox
IE10 werkt half zegt Can I Use. (en bij mij gewoon niet of IE10).

Alle issues die er zijn met Flexbox, hebben te maken met IE10 en IE11. En dan wil je nog niet weten hoeveel mensen IE9 en lager gebruiken. Voornamelijk bedrijven vallen daar nog onder.

Acties:
  • 0 Henk 'm!

  • TI_Observer
  • Registratie: April 2006
  • Laatst online: 26-08 08:14
Krilo_89 schreef op dinsdag 21 juli 2015 @ 22:35:
http://caniuse.com/#feat=flexbox
IE10 werkt half zegt Can I Use. (en bij mij gewoon niet of IE10).

Alle issues die er zijn met Flexbox, hebben te maken met IE10 en IE11. En dan wil je nog niet weten hoeveel mensen IE9 en lager gebruiken. Voornamelijk bedrijven vallen daar nog onder.
ik ben een frontend developer bij een redelijk groot bedrijf en maar 6% van onze bezoekers gebruikt IE, en daarvan gebruikt 60% ie11 en 15% ie10

wij gaan dan ook niet developen voor mensen die =< IE9 hebben, in 2015 moet men gewoon een keer overstappen en niet boven water worden gehouden door developrs

Ik lieg ALTIJD... zie je dat was weer een leugen!


Acties:
  • 0 Henk 'm!

  • Krilo_89
  • Registratie: September 2012
  • Laatst online: 04-09 11:18
sheez88 schreef op dinsdag 21 juli 2015 @ 22:45:
[...]


ik ben een frontend developer bij een redelijk groot bedrijf en maar 6% van onze bezoekers gebruikt IE, en daarvan gebruikt 60% ie11 en 15% ie10

wij gaan dan ook niet developen voor mensen die =< IE9 hebben, in 2015 moet men gewoon een keer overstappen en niet boven water worden gehouden door developrs
Nee ik begrijp je volkomen hoor, maar ik kom in Analytics vaak zat nog mensen tegen op IE8. Het overgrote deel zit op 9, maar er zijn ook nog mensen op IE8 en lager :| .
Het hangt ervan af wat je doelgroep is, maar ik zou eerst leren goed om te gaan met Floats, inline-blocks etc. voordat je aan flexbox begint.

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Krilo_89 schreef op dinsdag 21 juli 2015 @ 22:35:
http://caniuse.com/#feat=flexbox
IE10 werkt half zegt Can I Use. (en bij mij gewoon niet of IE10).

Alle issues die er zijn met Flexbox, hebben te maken met IE10 en IE11. En dan wil je nog niet weten hoeveel mensen IE9 en lager gebruiken. Voornamelijk bedrijven vallen daar nog onder.
Psst, Chrome heeft ook een interessante bug met wrapped flex-items en justify-content. Beetje niche, maar op Firefox werkte het gewoon ;)
Op IE11 ben ik nog geen problemen tegengekomen.
Krilo_89 schreef op dinsdag 21 juli 2015 @ 22:25:
Waarom Flexbox, dit werkt nog niet op alle browsers, dus zou ik sowieso nog niet gebruiken.
Jawel hoor.
Krilo_89 schreef op dinsdag 21 juli 2015 @ 22:25:
display: inline-block gaat ook niet werken wanneer je als breedte 33,3333333% meegeeft, doordat er een extra 4px per block element meegerekend wordt. Dit is een nadeel van display: inline-block, dus hiermee zla je 3e block altijd op de volgende regel komen.
box-sizing:border-box?
Of bedoel je de spatie ertussen? Dat is geen 4px, dat is een spatie (die meestal .25em breed is) ;) De elementen tegen elkaar aan zetten in je html dan.
Krilo_89 schreef op dinsdag 21 juli 2015 @ 22:25:
Enige oplossing is met float: left. En zorg er wel voor dat de div eromheen een clearfix heeft, anders krijgt deze div een hoogte van 0px, wat soms voor rare effecten zorgt.
Clearfix is zo'n vies woord voor... gewoon het bloody volgende element clearen. Maar ook dat hoeft niet. overflow:hidden.
Krilo_89 schreef op dinsdag 21 juli 2015 @ 22:53:
Nee ik begrijp je volkomen hoor, maar ik kom in Analytics vaak zat nog mensen tegen op IE8. Het overgrote deel zit op 9, maar er zijn ook nog mensen op IE8 en lager :| .
Houdt ff in je achterhoofd dat de doelgroep van site tot site kan verschillen, en daarmee ook over welke browser je de ondergrens trekt van het gebruikspercentage.

[ Voor 2% gewijzigd door _Thanatos_ op 22-07-2015 01:55 . Reden: doelgrap->doelgroep. Thanks, brain. ]

日本!🎌


Acties:
  • 0 Henk 'm!

  • Krilo_89
  • Registratie: September 2012
  • Laatst online: 04-09 11:18
_Thanatos_ schreef op woensdag 22 juli 2015 @ 01:52:

[...]

Jawel hoor.


[...]

box-sizing:border-box?
Of bedoel je de spatie ertussen? Dat is geen 4px, dat is een spatie (die meestal .25em breed is) ;) De elementen tegen elkaar aan zetten in je html dan.


[...]

Clearfix is zo'n vies woord voor... gewoon het bloody volgende element clearen. Maar ook dat hoeft niet. overflow:hidden.
Flexbox werkt op alle nieuwe browsers, klopt. Ik zou het zelf alleen nog niet gebruiken ivm IE9 en IE10.
Ik gaf daarom ook aan dat je beter eerst de basis onder de knie kan hebben voordat je met flexbox aan de gang gaat. Je kunt er namelijk veel meer mee dan met wat floats.

De spatie tussen inline-block, dat klopt ook :> . Alleen weten niet veel mensen dat en daarom kom je voor lastige situaties te staan. Aan de HTML van de topicstarter te zien, zou hij dit probleem dus ook krijgen wat resulteert in een volgende vraag, die ik voor probeerde te zijn. Wanneer je de html elementen niet tegen elkaar aan kunt zetten, kun je ook de font-size op 0 zetten van het element eromheen. Maar goed, dat zijn allemaal aparte oplossingen, die je kunt voorkomen met een float en een clear.

Als je clearfix met :before en :after gebruikt, wat is dan het probleem? Je doet dit op het element waar het van toepassing is, niet het element erna. Om floatende elementen staat toch al een div heen, zodat de elementen eronder ook echt eronder staan. Een class row bijv. (Zoals Bootstrap en Foundation ook doen, niet de kleinste). Wat zijn de voordelen van overflow: hidden vs een :after/:before met een clear erop?

Acties:
  • 0 Henk 'm!

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 08-09 14:12
Krilo_89 schreef op woensdag 22 juli 2015 @ 09:31:
Flexbox werkt op alle nieuwe browsers, klopt. Ik zou het zelf alleen nog niet gebruiken ivm IE9 en IE10.
Flexbox werkt gewoon in IE10. Wel een iets andere syntax, maar met bijvoorbeeld Autoprefixer merk je daar niks van.

Full-stack webdeveloper in Groningen


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Krilo_89 schreef op woensdag 22 juli 2015 @ 09:31:
Als je clearfix met :before en :after gebruikt, wat is dan het probleem? Je doet dit op het element waar het van toepassing is, niet het element erna. Om floatende elementen staat toch al een div heen, zodat de elementen eronder ook echt eronder staan. Een class row bijv. (Zoals Bootstrap en Foundation ook doen, niet de kleinste). Wat zijn de voordelen van overflow: hidden vs een :after/:before met een clear erop?
Als je de "clearfix" in pure css doet, is het geen probleem, behalve:
1) Het vereist het gebruik van een ::after, waardoor je die mogelijkheid kwijt bent voor iets anders.
2) Het ziet er nogal verbose uit voor wat het doet.

Als je eenmaal door hebt dat een overflow anders dan visible (default) de floats containt, is dat een veel subtielere en flexibelere manier om de floats binnen een container te houden. Het is maar één property en je hoeft er geen pseudo-element voor op te offeren.

Het absoluut slechte aan een clearfix is dat er hele volksstammen zijn die het zichzelf "makkelijk" (moeilijk op de lange termijn dus) maken door een "clearfix" class te maken. Meestal het type developer dat geen idee heeft waarom de clearfix werkt, wat het doet, en wat de nadelen zijn.

日本!🎌


Acties:
  • +1 Henk 'm!

  • IschaGast
  • Registratie: Juli 2001
  • Laatst online: 09-12-2024
Misschien heb je hier iets aan?
Advies wat ik je mee kan geven is om geen id's te gebruiken en altijd mobile first beginnen dat maakt het werk een stuk makkelijker allemaal.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!doctype html>
<html lang="nl">
<head>

    <meta charset="utf-8" />
    <meta http-equiv="x-ua-compatible" content="ie=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <style>
        .grid:after {
            content: "";
            display: table;
            clear: both;
        }
                .column__img {
                    max-width: 100%;
                }
            @media screen and (min-width: 768px) {
                .column {
                    float: left;
                    width: 33.333333333%;
                }
            }
    </style>
</head>
    <body>
        <div class="grid">
            <div class="column">
                <img src="http://placebeyonce.com/800-600" alt="" class="column__img" />
            </div><!-- /column -->
            <div class="column">
                <img src="http://placebeyonce.com/800-600" alt="" class="column__img" />
            </div><!-- /column -->
            <div class="column">
                <img src="http://placebeyonce.com/800-600" alt="" class="column__img" />
            </div><!-- /column -->
        </div><!-- /grid -->
    </body>
</html>

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Waarom een display:table op die :after :?

日本!🎌


Acties:
  • 0 Henk 'm!

  • Munki
  • Registratie: Juli 2008
  • Laatst online: 11-09 21:16

Acties:
  • 0 Henk 'm!

  • Krilo_89
  • Registratie: September 2012
  • Laatst online: 04-09 11:18
_Thanatos_ schreef op donderdag 23 juli 2015 @ 19:59:
Waarom een display:table op die :after :?
Hier hebben we net een hele discussie over gehad volgens mij ;)

Acties:
  • 0 Henk 'm!

  • HansvDr
  • Registratie: Augustus 2009
  • Niet online
Ik doe dit soort dingen ook wel eens met een display:table in combinatie met een display:table-cell

De drie afbeeldingen blijven naast elkaar en schalen mooi mee evenals de header-afbeelding

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div id="content">
    <div id="header"><img src="http://placehold.it/900x200" /></div>
    <div id="page">
        <div><img src="http://placehold.it/300x200" /></div>
        <div><img src="http://placehold.it/300x200" /></div>
        <div><img src="http://placehold.it/300x200" /></div>
    </div>
</div>

<style>
    #content{max-width: 900px; margin: auto; }
    #header img {width: 100%;}
    #page{display: table;}
    #page div {display: table-cell;}
    #page div img {width: 100%;}
</style>

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Zo wordt het dus weer een smerige hack die niet eens iets oplost. display:block werkt prima, op alle browsers.

日本!🎌


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Krilo_89 schreef op dinsdag 21 juli 2015 @ 22:53:
[...]


Nee ik begrijp je volkomen hoor, maar ik kom in Analytics vaak zat nog mensen tegen op IE8. Het overgrote deel zit op 9, maar er zijn ook nog mensen op IE8 en lager :| .
Maar je hebt correct en je hebt functioneel. Je kunt de afweging maken om IE8-gebruikers tegemoet te komen door een functioneel volledig werkende site te leveren, met de kanttekening dat er hier en daar iets niet klopt met de rendering.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • IschaGast
  • Registratie: Juli 2001
  • Laatst online: 09-12-2024
_Thanatos_ schreef op vrijdag 24 juli 2015 @ 17:24:
Zo wordt het dus weer een smerige hack die niet eens iets oplost. display:block werkt prima, op alle browsers.
Hoezo wordt het zo weer een smerige hack? Dit kan allemaal prima hoor is net wat je zelf fijner vind om te schrijven. Maakt verder allemaal niet zo heel veel uit.

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Het is een hack niet omdat het in principe incorrect is, want het is volledig correct en valid en alles. De reden dat het een vieze hack is, is omdat je een display:table misbruikt voor iets dat niet een tabel is, én ook prima met display:block kan.

Ik heb nog *nooit* een ::after moeten clearen met een display:table (het komt niet eens in me op... waarom zou het beter zijn? wat fixt het?) en doe het dus met display:bock, wat *altijd* gewerkt heeft.

[ Voor 29% gewijzigd door _Thanatos_ op 25-07-2015 22:58 ]

日本!🎌


Acties:
  • 0 Henk 'm!

  • IschaGast
  • Registratie: Juli 2001
  • Laatst online: 09-12-2024
Het misbruiken van display: table; voor iets wat geen table is gaat mij weer iets te ver. Dat zou dan wel weer zo zijn als het in de HTML een table is maar dat is niet het geval. Het is alleen maar CSS.

Verder is de micro clearfix een clearfix die gewoon veel gebruikt en verder prima werkt. Niets om je druk over te maken volgens mij. Dacht dat ik een purist was ;)

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Als het prima werkt, waarom dan aan die display:table vastklampen? Met display:block werkt het *prima*. Altijd.

日本!🎌


Acties:
  • 0 Henk 'm!

  • IschaGast
  • Registratie: Juli 2001
  • Laatst online: 09-12-2024
_Thanatos_ schreef op zondag 26 juli 2015 @ 03:52:
Als het prima werkt, waarom dan aan die display:table vastklampen? Met display:block werkt het *prima*. Altijd.
Interessante video over display: table in je CSS en accessibility:
https://vimeo.com/139062429

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
_Thanatos_ schreef op zondag 26 juli 2015 @ 03:52:
Als het prima werkt, waarom dan aan die display:table vastklampen? Met display:block werkt het *prima*. Altijd.
display:table maakt een block formatting context aan. Dit heeft de interessante eigenschap dat het, in tegenstelling tot een normaal block-level element, niet toestaat dat margins door het element heen collapsen.

Een ::before en ::after pseudo-element aan weerszijden van een container, beiden met display:table en het ::after pseudo-element met een clear:both zorgt ervoor dat het containing element niet alleen floated content maar ook margins zal omvatten.


Op die manier is het functioneel volledig gelijk aan het forceren van een block formatting context op het element zelf, met de kleine uitzondering dat de enige praktische manier om dat cross-browser voor elkaar te krijgen, is om overflow:hidden|auto te gebruiken.

Dat laatste is dan weer niet aan te raden, omdat het problemen zou geven met elementen die een auteur bewust uit een container wil laten lopen als onderdeel van functionaliteit (dropdown, popout, etc.) of simpelweg design. Het gebruik van twee pseudo-elementen op de container betekent weliswaar dat je die niet meer ergens anders voor kunt gebruiken, maar daarbij moet je één heel belangrijk punt in het oog houden: jij bouwt die container en jij weet wat de constraints van die container zijn. Jij weet in principe niet wat de content gaat zijn die in die container opgezet gaat worden en even zo goed weet de auteur van die content ook niet wat jouw container gaat doen.

(Tenminste die twee zouden geen weet van elkaar mogen hebben als je CSS netjes loosely coupled opzet via OOCSS / atomic design. Iets wat je eigenlijk wel zou moeten doen om grote projecten beheersbaar te houden.)

Acties:
  • 0 Henk 'm!

  • error 404
  • Registratie: November 2014
  • Laatst online: 30-08 20:59

error 404

Gebruiker niet gevonden

Gebruik gewoon Skeleton, www.getskeleton.com

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Net zo'n hol argument als 'gebruik Bootstrap'.
We proberen hier als Tweakers zijnde ook wat kennis aan mensen mee te geven.

'Teach a man to fish...' etc.

[ Voor 5% gewijzigd door R4gnax op 03-10-2015 16:51 ]


Acties:
  • 0 Henk 'm!

  • ronaldo vivaldi
  • Registratie: December 2002
  • Laatst online: 30-07 00:20
Ik ben nog bezig met leren, maar zo zou ik het oplossen.


HTML

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="css/main.css">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>
  <body>
 
<div id="wrapper">
  <section>
          <ul id="image">
            <li>
    <img src="img/test1.png" alt="responsive design image">
            </li>
 
            <li>
    <img src="img/test2.png" alt="responsive design image">
            </li>

            <li>
    <img src="img/test3.png" alt="responsive design image">
            </li>
          </ul>
  </section>


CSS

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#wrapper {
  max-width: 940px;
  margin: 0 auto;
  padding: 0 5%;
}

img {
  max-width:100%;
}


#image {
  margin: 0;
  padding: 0;
  list-style: none;
}

#image li {
float: left;
    width: 31.3333%;
margin: 1%;
  }
  
  #image li:nth-child(3n +1) {
    clear: left;
  }
Pagina: 1