IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Dessiner une cible avec css


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Par défaut Dessiner une cible avec css
    J'ai dessiné les éléments qui composent la cible.
    Je ne sais pas comment les centrer les cercles par taille à l'intérieur du plus grand cercle.

    http://jsfiddle.net/fredericmarcel/k9nzowko/13/

    Merci de votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ pour qu'ils se superposent, il faut déjà les définir en position: absolute;.
    Le div englobant étant en position: relative;.
    puis faire les décalages en fonctions des diamètres top: xxx; left: yyy;.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="cible">
      <div class="cercle cercle1"></div>
      <div class="cercle cercle2"></div> 
      <div class="cercle cercle3"></div> 
      <div class="cercle centre"></div>
    </div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    .cible { position:relative; }
    .cercle {
     position:absolute;
     border-radius: 50%;
     background: #00FF00;
     border: 2px solid black;
    }
    .cercle1 {
     top:0; left:0;
      width:150px; height:150px;
    }
    .cercle2 {
     top:25px; left:25px;
     width: 100px; height: 100px;
    }
    .cercle3 {
     top:50px; left:50px;
     width: 50px; height: 50px;
    }
    .centre {
     top:70px; left:70px;
     width: 10px; height:10px;
    }

    2/ Qu'on peut encore simplifier :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="cible">
      <div></div>
      <div></div> 
      <div></div> 
      <div></div>
    </div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    .cible { position:relative; }
    .cible div {
     position:absolute;
     border-radius: 50%;
     background: #00FF00;
     border: 2px solid black;
    }
    .cible div:nth-child(1) {
     top:0; left:0; width:150px; height:150px;
    }
    .cible div:nth-child(2) {
     top:25px; left:25px; width: 100px; height: 100px;
    }
    .cible div:nth-child(3) {
     top:50px; left:50px; width: 50px; height: 50px;
    }
    .cible div:nth-child(4) {
     top:70px; left:70px; width: 10px; height:10px;
    }

    3/ on peut aussi définir les dimensions en pourcentages :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div class="cible">
      <div></div>
      <div></div> 
      <div></div> 
      <div></div>
      <div></div>
    </div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    .cible { position:relative; width:150px; height:150px; }
    .cible div {
     position:absolute;
     border-radius: 50%;
     background: #00FF00;
     border: 2px solid black;
    }
    .cible div:nth-child(1) {
     top:0; left:0; width:100%; height:100%;
    }
    .cible div:nth-child(2) {
     top:12.5%; left:12.5%; width: 75%; height: 75%;
    }
    .cible div:nth-child(3) {
     top:25%; left:25%; width: 50%; height: 50%;
    }
    .cible div:nth-child(4) {
     top:37.5%; left:37.5%; width: 25%; height:25%;
    }
    .cible div:nth-child(5) {
     top:49%; left:49%; width: 2%; height:2%;
    }
    N.B. j'ai rajouté le rond central

    Et si je veux une cible plus grande (ou plus petite), je n'ai qu'à modifier cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .cible { position:relative; width:300px; height:300px; }
    3/ aleternet les couleurs de fonds ? No problemo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .cible div:nth-child(even) {
     background: yellow;
    }
    4/ On peut mêm y placer des flechettes ! http://jsfiddle.net/zybz5u89
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="cible">
      <div></div>
      <div></div> 
      <div></div> 
      <div></div>
      <div></div>
      <span style="top:32%; left:71%;"></span>
      <span style="top:56%; left:37%;"></span>
      <span style="top:63%; left:82%;"></span>
    </div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    .cible span { /* fléchette */
     position:absolute;
     border-radius: 50%;
     background: red;
     border: 2px solid black;
     width: 4%; height:4%;
    }
    Dernière modification par Invité ; 06/12/2015 à 12h32.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 213
    Par défaut
    Bonjour,
    une autre approche
    • Structure imbriquée:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div id="cercle">
      <div>
        <div>
          <div>
          </div>
        </div>
      </div>
    </div>
    • CSS à développer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #cercle,
    #cercle div {
      width: 13em;
      height: 13em;
      box-sizing: border-box;
      border-radius: 50%;
      padding: .75em;
      border: .75em solid black;
    }
    #cercle div {    /* reset height et width */
      height:100%;
      width:100%;
    }

  4. #4
    Membre confirmé
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Par défaut
    Cette cible est presque parfaite :

    http://jsfiddle.net/fredericmarcel/cwms8pwp/1/

    Est-il possible de

    1- colorer le centre en noir ?

    2- diminuer le diamètre du centre

    2- espacer régulièrement les centres avec un fond vert

    J'ai essayé d'insérer une image de la cible que j'utiisais sur flash, mais le téléchargement ne semble pas fonctionner sur mon pc.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Oui.

  6. #6
    Membre confirmé
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84

Discussions similaires

  1. Dessiner une image avec une couleur transparente
    Par FabaCoeur dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 10/02/2008, 20h38
  2. Incorporer une bannière avec css
    Par tazmania dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 17/06/2007, 16h11
  3. Dessine une ligne avec la souris
    Par MaxAttila dans le forum 2D
    Réponses: 2
    Dernier message: 22/05/2007, 13h35
  4. dessiner une courbe avec OleExcel
    Par blondelle dans le forum C++Builder
    Réponses: 9
    Dernier message: 28/09/2006, 22h05
  5. Dessiner une figure avec graphics.h
    Par Firas_tn dans le forum C
    Réponses: 2
    Dernier message: 29/03/2006, 20h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo