140 votes

Comment dessiner un cercle dans une page html ?

Comment dessiner un cercle en utilisant HTML5 et CSS3 ?

Est-il également possible de mettre du texte à l'intérieur ?

2 votes

216voto

ryanoshea Points 656

On ne peut pas dessiner un cercle en soi. Mais on peut faire quelque chose d'identique à un cercle.

Vous devez créer un rectangle avec des coins arrondis (via border-radius ) qui sont la moitié de la largeur/hauteur du cercle que vous voulez faire.

    #circle {
      width: 50px;
      height: 50px;
      -webkit-border-radius: 25px;
      -moz-border-radius: 25px;
      border-radius: 25px;
      background: red;
    }

<div id="circle"></div>

7 votes

En y réfléchissant bien, vous devriez peut-être mettre un &nbsp ; à l'intérieur de cette <div> pour être sûr qu'elle s'affiche. Sinon, le navigateur pourrait l'ignorer.

14 votes

Je pense que cette réponse est fausse car elle dit que vous ne pouvez pas dessiner un cercle en HTML5. Canvas est pourtant un élément HTML5 et vous pouvez dessiner un cercle en HTML5 ( w3schools.com/html/html5_canvas.asp )

1 votes

Ainsi, pour transformer un div en cercle, vous devez définir les deux éléments suivants largeur y hauteur un peu de taille et le rayon de la frontière le moitié de la largeur.

87voto

jkj Points 1264

Il est tout à fait possible dans HTML 5 . Vous avez le choix : SVG intégré y <canvas> étiquette .

Pour dessiner un cercle dans un SVG intégré :

<svg xmlns="http://www.w3.org/2000/svg">
    <circle cx="50" cy="50" r="50" fill="red" />
</svg>

Cercle en <canvas> :

var canvas = document.getElementById("circlecanvas");
var context = canvas.getContext("2d");
context.arc(50, 50, 50, 0, Math.PI * 2, false);
context.fillStyle = "red";
context.fill()

<canvas id="circlecanvas" width="100" height="100"></canvas>

22voto

Lea Verou Points 7869

border-radius:50% si vous souhaitez que le cercle s'adapte aux dimensions du conteneur (par exemple, si le texte est de longueur variable).

N'oubliez pas le -moz- y -webkit- préfixes ! ( préfixe n'est plus nécessaire)

div{
  border-radius: 50%;
  display: inline-block;
  background: lightgreen;
}

.a{
  padding: 50px;
}

.b{
  width: 100px;
  height: 100px;
}

<div class='a'></div>
<div class='b'></div>

2 votes

Vous devez vous assurer que la largeur et la hauteur sont égales, sinon cela créera un ovale.

5voto

lachlanjc Points 9

Techniquement, il n'y a pas de moyen de dessiner un cercle avec HTML (il n'y a pas d'outil d'aide à la décision). <circle> HTML), mais un cercle peut être dessiné.

La meilleure façon d'en dessiner un est d'ajouter border-radius: 50% à une balise telle que div . Voici un exemple :

<div style="width: 50px; height: 50px; border-radius: 50%;">You can put text in here.....</div>

4voto

fluffy Points 1915

Vous pouvez utiliser l'attribut border-radius pour lui donner un rayon de bordure équivalent à celui de l'élément. Par exemple :

<div style="border-radius 10px; -moz-border-radius 10px; -webkit-border-radius 10px; width: 20px; height: 20px; background: red; border: solid black 1px;">&nbsp;</div>

(La raison de l'utilisation des extensions -moz et -webkit est de supporter les versions pré-CSS3-finales de Gecko et Webkit).

Vous trouverez d'autres exemples sur cette page . Pour ce qui est de l'insertion de texte, vous pouvez le faire, mais vous devez faire attention au positionnement, car le modèle de remplissage des boîtes de la plupart des navigateurs utilise toujours le carré extérieur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X