Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[CSS] Positioning quirk of by design?

Pagina: 1
Acties:

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 03:57

F.West98

Alweer 16 jaar hier

Topicstarter
Goedenacht :w

Ik was een beetje aan het fiddlen voor een verticaal en horizontaal gecentreerde dynamische div, en ik kwam erachter dat dit heel goed werkt:
Cascading Stylesheet:
1
2
3
4
5
6
7
.centered {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}


Maar, als je die dan in een parent plaatst en hem relative maakt, heb je ineens een translateY van -75% nodig, ipv -50%. Anders is 'ie inderdaad te laag.
Fiddle: http://jsfiddle.net/p5Ckp/4/ (gewoon de position van relative naar absolute veranderen)

Heeft iemand een verklaring voor dit fenomeen?

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • Room42
  • Registratie: September 2001
  • Niet online
Hij is niet te laag, zet maar eens een border: 1px solid red; op de .dialog ;)

http://jsfiddle.net/p5Ckp/5/

[ Voor 17% gewijzigd door Room42 op 01-06-2014 03:59 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


  • Biersteker
  • Registratie: Juni 2009
  • Laatst online: 20-11 17:34
F.West98 schreef op zondag 01 juni 2014 @ 03:28:
Goedenacht :w

Ik was een beetje aan het fiddlen voor een verticaal en horizontaal gecentreerde dynamische div, en ik kwam erachter dat dit heel goed werkt:
Cascading Stylesheet:
1
2
3
4
5
6
7
.centered {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}


Maar, als je die dan in een parent plaatst en hem relative maakt, heb je ineens een translateY van -75% nodig, ipv -50%. Anders is 'ie inderdaad te laag.
Fiddle: http://jsfiddle.net/p5Ckp/4/ (gewoon de position van relative naar absolute veranderen)

Heeft iemand een verklaring voor dit fenomeen?
http://jsfiddle.net/RVYFz/2/
Lijkt me vrij inherent aan het gebruik van absolute en het niet resizen van je frame, en height van 300px van .parent)

edit; hmz ik kijk er nu nog eens naar, maar volgens mij was ik niet helemaal wakker. gister.

[ Voor 8% gewijzigd door Biersteker op 01-06-2014 13:35 ]

Originally, a hacker was someone who makes furniture with an axe.


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 03:57

F.West98

Alweer 16 jaar hier

Topicstarter
Room42 schreef op zondag 01 juni 2014 @ 03:40:
Hij is niet te laag, zet maar eens een border: 1px solid red; op de .dialog ;)

http://jsfiddle.net/p5Ckp/5/
Wut.. Waarom is bij position: relative de grootte anders :?

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
Bij position: relative wordt formaat en positie bepaald door wat je zou krijgen als het in de normale flow zit. Dat is dus je div.parent.

Bij absolute wordt het element uit de flow getrokken, en worden maten en posities berekend ten opzichte van of de eerste parent die een position: relative of absolute heeft, of ten opzichte van je window. In dit geval is dat het voorbeeldframe van jsfiddle.

Als je position: relative op je div.parent zet krijg je wel hetzelfde resultaat, op wat gedoe met de box-sizing na (margins en borders worden meegerekend in de maten.)

Never explain with stupidity where malice is a better explanation


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 03:57

F.West98

Alweer 16 jaar hier

Topicstarter
Aha. Enorm logisch van CSS ook weer :+

Wat wel grappig is, is dat Firefox met die translate niet rekening houdt met de autocomplete boxes :+

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • MoietyMe
  • Registratie: Juli 2003
  • Laatst online: 26-05 08:10

MoietyMe

zij/haar

Vergeet ook niet je prefixes te zetten voor bijvoorbeeld IE9; mocht je dat nog willen ondersteunen.

Sowieso altijd handig om even de ondersteuning van bepaalde propperties te bekijken.

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 03:57

F.West98

Alweer 16 jaar hier

Topicstarter
Visual Studio maakt die al voor jou aan :)

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI

Pagina: 1