J'adore les positions
N'alors en résumé ce que j'ai compris des positions c'est que :
- la position relative : c'est la position la plus classique des éléments. Chaque élément se placera en fonction de ceux qui le précèdent et le contiennent. On peut facilement centrer un élément avec cette position, dans la mesure où on a indiqué sa dimension, en utilisant le "margin: auto".
- la position absolute : c'est une position plus complexe en apparence mais dont je me sers beaucoup pour placer mes éléments sans problème d'interférence entre eux puisque un élément en absolute n'impose rien aux élément qui le suivent. Par contre, il respecte ceux qui le précède. Un bloc relatif de 200px de haut suivit d'un bloc absolute aura sa place et celui en absolute sera en dessous. Par contre, si un autre bloc relative ou absolute se trouve APRES, il se placera sans tenir compte de l'élément mit en absolute avant lui, et sera donc par dessus.
On peut utiliser les "top : 0 / left: 0" sur un bloc en absolute mais ce "top" et ce "left" ne correspondent pas forcément aux extrémités de la page, ni même au bloc contenant immédiat. En fait, j'ai pas encore saisi exactement sur quel contenant il s'aligne
Je crois qu'il va tenir compte du contenant ayant une position "relative" indiquée, donc ça peut être le contenant immédiat ou deux ou trois blocs au dessus, voire plus, tout dépend.
On ne peut pas utiliser la valeur "auto" pour centrer un bloc en absolute, on est obligé d'utiliser une autre méthode pour le centrer à tout les coups pour les écrans (que j'ai expliquée dans un tuto de page d'accueil html), il faut faire un left: 50% puis un margin-left négatif équivalent à la moitié de la largeur totale de l'élément.
- la position fixed : elle possède les mêmes propriétés que l'absolute, c'est à dire que les éléments suivants ne tiennent plus compte d'un élément fixed, mais en plus cet élément ne tient pas compte non plus des éléments avant lui. En gros un élément placé en fixed est seul dans sa bulle x). Il se place par rapport à l'écran et non par rapport à des blocs de page internes. De ce fait, il ne bouge pas, puisque seule compte pour lui la fenêtre totale de notre écran.
Tout comme l'absolute, on peut lui indiquer les valeurs top / left / bottom / right, et il est d'ailleurs préférable de toujours placer cet élément fixed avec une valeur comme ça pour ensuite le décaler, ainsi on est sûr qu'il est au même endroit pour tout le monde, peu importe la taille d'écran. D'ailleurs, ça complique aussi son positionnement, puisque une marge en pixel ne le placera pas forcément au même endroit pour tout les visiteurs. C'est pourquoi il faut toujours se baser sur un placement commun à tous, un repère, comme le bord (donc valeur 0) ou le milieu (donc valeur 50%).
Il est important de noter aussi que seul un élément ayant une position indiquée peut avoir une propriété de "z-index", ce qui permet de le placer au dessus ou en dessous des autres. Plus la valeur de z-index est haute plus l'élément est au dessus des autres.
Valà en gros x)