Je cherche une solution depuis un moment maintenant, mais je n'ai rien trouvé. C'est peut-être juste mes termes de recherche. Eh bien, j'essaie de faire le centre du canevas en fonction de la taille de la fenêtre du navigateur. La toile mesure 800x600. Et si la fenêtre descend en dessous de 800x600, elle devrait également être redimensionnée (mais ce n'est pas très important pour le moment)
105
Réponses:
Attribuez au canevas les propriétés de style css suivantes:
Éditer
Étant donné que cette réponse est très populaire, permettez-moi d'ajouter un peu plus de détails.
Les propriétés ci-dessus centreront horizontalement le canevas, le div ou tout autre nœud que vous avez par rapport à son parent. Il n'est pas nécessaire de modifier les marges et les rembourrages supérieurs ou inférieurs. Vous spécifiez une largeur et laissez le navigateur remplir l'espace restant avec les marges automatiques.
Cependant, si vous voulez taper moins, vous pouvez utiliser les propriétés de raccourci css que vous souhaitez, telles que
Centrer la toile verticalement nécessite cependant une approche différente. Vous devez utiliser un positionnement absolu et spécifier à la fois la largeur et la hauteur. Définissez ensuite les propriétés gauche, droite, haut et bas sur 0 et laissez le navigateur remplir l'espace restant avec les marges automatiques.
Le canevas se centre lui-même en fonction du premier élément parent
position
défini surrelative
ouabsolute
, ou du corps si aucun n'est trouvé.Une autre approche serait d'utiliser
display: flex
, qui est disponible dans IE11Assurez-vous également d'utiliser un doctype récent tel que xhtml ou html 5.
la source
Vous pouvez donner à votre canevas les propriétés CSS ff:
la source
Centrez simplement le div en HTML:
Changez simplement la hauteur et la largeur en n'importe quoi et vous avez un div centré
http://jsfiddle.net/BVghc/2/
la source
Pour centrer l'élément de canevas horizontalement, vous devez le spécifier en tant que niveau de bloc et laisser ses propriétés de marge gauche et droite au navigateur:
Si vous souhaitez le centrer verticalement, l'élément canvas doit être positionné de manière absolue:
Si vous souhaitez le centrer horizontalement et verticalement, faites:
Pour plus d'informations, visitez: https://www.w3.org/Style/Examples/007/center.en.html
la source
Les réponses ci-dessus ne fonctionnent que si votre toile a la même largeur que le conteneur.
Cela fonctionne indépendamment:
la source
Utilisez ce code:
la source
J'ai eu le même problème, car j'ai des images avec de nombreuses largeurs différentes que je charge uniquement avec des informations de hauteur. La définition d'une largeur permet au navigateur d'étirer et de presser l'image. Je résous le problème en centrant la ligne de texte juste avant la ligne image_tag (en supprimant également float: left;). J'aurais aimé que le texte soit aligné à gauche, mais c'est un inconvénient mineur, que je peux tolérer.
la source
Ajouter
text-align: center;
à la balise parent de<canvas>
. C'est tout.Exemple:
la source