Comment fixer le nombre d'étoiles par défaut ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ortolojf, 17 Août 2016.

  1. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 875
    J'aime reçus:
    12
    Bonjour

    Je suis en train d'adapter mon système de notation à étoiles, vers un système sans Javascript, dans le but de convertir mon site au format AMP.

    J'ai trouvé le code ci-dessous ( que j'ai un peu arrangé ), dans le site : https://www.creativejuiz.fr/blog/tutoriels/systeme-notation-quelques-lignes-css

    Mais, je ne sais pas comment afficher le nombre d'étoiles par défaut, avec le code html.

    Comment faire ?

    Je vais me pencher sur les différents sélecteurs :active , :visited, : hover , : focus , :link.

    Merci beaucoup de votre aide.

    Respectueusement.



    Code:
    <html>
    <head>
            <title>Notation étoile</title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <link href="/note.css" rel="stylesheet" type="text/css" media="all">
    </head>
    <body>
    <div class="rating">
            <a href="<?php echo $_SERVER['PHP_SELF'] . "?star=7"; ?>" title="7 étoiles sur 7"></a>
            <a href="<?php echo $_SERVER['PHP_SELF'] . "?star=6"; ?>" title="6 étoiles sur 7"></a>
            <a href="<?php echo $_SERVER['PHP_SELF'] . "?star=5"; ?>" title="5 étoiles sur 7"></a>
            <a href="<?php echo $_SERVER['PHP_SELF'] . "?star=4"; ?>" title="4 étoiles sur 7"></a>
            <a href="<?php echo $_SERVER['PHP_SELF'] . "?star=3"; ?>" title="3 étoiles sur 7"></a>
            <a href="<?php echo $_SERVER['PHP_SELF'] . "?star=2"; ?>" title="2 étoiles sur 7"></a>
            <a href="<?php echo $_SERVER['PHP_SELF'] . "?star=1"; ?>" title="1 étoiles sur 7"></a>
    </div>
    </body>
    </html>
    

    Code:
    div.rating {
       text-align:center;
       width:140px;
       margin-left: auto;
       margin-right: auto;
       padding:0;
       border:0;
    }
    
    div.rating a {
       float:right;
       color: #aaa;
       text-decoration: none;
       font-size: 3em;
       width:20px;
       height:20px;
       transition: color .4s;
       background:url(http://localhost/images/star_white.gif);
       background-size:contain;
    }
    
    div.rating a:hover,
    div.rating a:focus,
    div.rating a:hover ~ a,
    div.rating a:focus ~ a {
       background:url(http://localhost/images/star_yellow.gif);
       background-size:contain;
    }
    
     
  2. elji
    elji WRInaute occasionnel
    Inscrit:
    6 Juin 2009
    Messages:
    279
    J'aime reçus:
    5
    Bravo pour ce titre poétique !

    Je comprend mal la question pour le nombre d'étoiles par défaut. Elles sont au départ toutes blanches, et quand on clique, un certain nombre deviennent jaunes, mais le nombre d'étoiles ne varie pas.
     
  3. Koxin-L.fr
    Koxin-L.fr WRInaute passionné
    Inscrit:
    15 Janvier 2012
    Messages:
    1 891
    J'aime reçus:
    8
    Ca correspond à quoi ces étoiles par défauts ?
    Le résultats ?
     
  4. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 875
    J'aime reçus:
    12

    Bonjour elji

    Je vous demande pardon, je me suis mal exprimé.

    Supposons que la page ait une moyenne de votes de 4 / 7 étoiles.

    Je voudrais qu'au lieu d'afficher 7 étoiles blanches par défaut, il s'affiche 4 étoiles jaunes et 3 étoiles blanches au moment où la page s'affiche.

    Est-ce que je peux faire celà en html ?

    C'est possible avec une classe ad hoc et le fichier background star_yellow.gif , le problème est que cette/ces étoile(s) ne seraient plus sensible au :hover ou :focus.

    Même chose avec une classe inline : style="background:url(http://localhost/images/yellow.gif);"

    Y a-t-il un hack possible pour afficher par défaut 4 étoiles jaunes+ 3 blanches ( par exemple ) ?

    Et puis aussi ( évidemment ), le script est en php, donc fixer ce nombre avec une variable ( 2 au lieu de 4 par exemple ).

    Et... Que le comportement de l'interface des étoiles soit le même.

    Le problème, semblerait de simuler le :hover ou le :focus , mais je ne veux pas de javascript.

    Comment faire ?

    Merci beaucoup.

    Respectueusement.
     
  5. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 875
    J'aime reçus:
    12

    Il y a 7 étoiles, la note est fixée par l'utilisateur qui clique sur la ième étoile, i est la note attribuée.

    Dans ce cas, il y a i étoiles jaunes et ( 7 - i ) étoiles blanches avant le clic.

    Le i par défaut, serait la moyenne des notes données par les utilisateurs précédents.

    Actuellement, le i par défaut est 0.

    Le script est en php, toute l'interface bdd est déjà au point.

    C'est seulement cette interface graphique qui gêne.

    Et il ne faut pas de javascript.

    Merci beaucoup

    Respectueusement.
     
  6. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 875
    J'aime reçus:
    12
    Problème résolu.

    Voci le nouveau code :


    Code:
    
    <html>
        <head>
            <title>Notation étoile</title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <link href="/star_rating.css" rel="stylesheet" type="text/css" media="all">
        </head>
        <body>
            <ul class='star-rating'>
                <li class="current-rating" style="width:110px;"> Currently 5.5/7 Stars.</li>
                <li><a href='#' title='1 star out of 5' class='one-star'>1</a></li>
                <li><a href='#' title='2 stars out of 5' class='two-stars'>2</a></li>
                <li><a href='#' title='3 stars out of 5' class='three-stars'>3</a></li>
                <li><a href='#' title='4 stars out of 5' class='four-stars'>4</a></li>
                <li><a href='#' title='5 stars out of 5' class='five-stars'>5</a></li>
                <li><a href='#' title='5 stars out of 5' class='six-stars'>5</a></li>
                <li><a href='#' title='5 stars out of 5' class='seven-stars'>5</a></li>
            </ul>
        </body>
    </html>
    
    

    Code:
    
            /*             styles for the star rater                */
            .star-rating{
                    list-style:none;
                    margin-left:auto;
                    margin-right:auto;
                    padding:0px;
                    width: 140px;
                    height: 20px;
                    position: relative;
                    background: url(images/star_white.gif) top left repeat-x;
            }
            .star-rating li{
                    padding:0px;
                    margin:0px;
                    height:20px;
                    width: 20px;
                    /*\*/
                    float: left;
                    /* */
            }
            .star-rating li a{
                    display:block;
                    width:20px;
                    height: 20px;
                    line-height:20px;
                    text-decoration: none;
                    text-indent: -9000px;
                    z-index: 20;
                    position: absolute;
                    padding: 0px;
                    overflow:hidden;
            }
            .star-rating li a:hover{
                    background: url(images/star_yellow.gif) left center;
                    z-index: 2;
                    left: 0px;
                    border:none;
            }
            .star-rating a.one-star{
                    left: 0px;
            }
            .star-rating a.one-star:hover{
                    width:20px;
            }
            .star-rating a.two-stars{
                    left:20px;
            }
            .star-rating a.two-stars:hover{
                    width: 40px;
            }
            .star-rating a.three-stars{
                    left: 40px;
            }
            .star-rating a.three-stars:hover{
                    width: 60px;
            }
            .star-rating a.four-stars{
                    left: 60px;
            } 
            .star-rating a.four-stars:hover{
                    width: 80px;
            }
            .star-rating a.five-stars{
                    left: 80px;
            }
            .star-rating a.five-stars:hover{
                    width: 100px;
            }
            .star-rating a.six-stars{
                    width: 100px;
            }
            .star-rating a.six-stars:hover{
                    width: 120px;
            }
            .star-rating a.seven-stars{
                    width: 120px;
            }
            .star-rating a.seven-stars:hover{
                    width: 140px;
            }
            .star-rating li.current-rating{
                    background: url(images/star_green.gif) left bottom;
                    position: absolute;
                    height: 20px;
                    display: block;
                    text-indent: -9000px;
                    z-index: 1;
            }
            /* remove halo effect in firefox   */
            a:active{
                 outline: none;
            } 
    
    

    Le style de la classe current-rating, me permet sans difficulté de de spécifier ( même avec une valeur fractionnaire ;) ), la note moyenne.

    Super de super.

    Merci beaucoup de vos réponses.

    Respectueusement.
     
  7. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 834
    J'aime reçus:
    246
    Il y a un truc en PHP qui s'appelle "for" tu devrais tester ça rox.
     
  8. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 875
    J'aime reçus:
    12
    Bonjour spout ;)

    C'est sûr.
    Ce n'est qu'un squelette.

    Cà s'annonce bien pour me passer de javascript à terme.

    Après mon interface de notation, dont je vais récupérer le côté php/Mysql, je n'ai plus à traiter, que le script tarteaucitron ( déjà converti mais pas entièrement par mes soins de javascript à php ), et puis l'affichage de mes stats de courses et aussi des liens des menus en haut et bas des pages.

    Après, théoriquement plus de javascript si j'adopte le format AMP pour les ads ( seulement les scripts autorisés par la norme AMP ).

    Les ads, c'est-à-dire : Twitter, Facebook, Google+.

    Tout ceci, seulement pour les mobiles.

    Pour la mise au point sur mon desktop, savez-vous si Chrome version desktop, supporte le format AMP ?

    Merci beaucoup.
     
  9. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 875
    J'aime reçus:
    12
    Bonjour spout

    Voilà, j'ai ce code à l'essai sur mon ordinateur local :

    Le problème, est qu'il semble impossible de cliquer sur la dernière étoile.

    Les titres s'affichent normalement, mais un clic sur la dernière étoile ( 7 ), ne charge rien.



    Code HTML :

    Code:
    <div class="centered">
    
    <div id="staring_form" itemscope itemtype="http://data-vocabulary.org/Review-aggregate">
    <div class="sous_titre" itemprop="itemreviewed">Page d'Accueil</div>
    <br />
    <div class="sous_titre" itemprop="votes">454</div>
    <div class="sous_titre">Votes</div>
    &nbsp;&nbsp;<div class="sous_titre">4 / 7</div>
    <div itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating">
    <ul class="star-rating">
        <li class="current-rating" style="width:81.6px;"></li>
        <li><a href="http://localhost/?star=1" title='1 star out of 7' class='one-star'>1</a></li>
        <li><a href="http://localhost/?star=2" title='2 stars out of 7' class='two-stars'>2</a></li>
        <li><a href="http://localhost/?star=3" title='3 stars out of 7' class='three-stars'>3</a></li>
        <li><a href="http://localhost/?star=4" title='4 stars out of 7' class='four-stars'>4</a></li>
        <li><a href="http://localhost/?star=5" title='5 stars out of 7' class='five-stars'>5</a></li>
        <li><a href="http://localhost/?star=6" title='6 stars out of 7' class='six-stars'>6</a></li>
        <li><a href="http://localhost/?star=7" title='7 stars out of 7' class='seven-stars'>7</a></li>
    </ul>
    <meta itemprop="average" content="4" /><meta itemprop="best" content="7" /><meta itemprop="worst" content="1" /></div>
    &nbsp;&nbsp;<div id="message">
    Votre vote : 2 &eacute;toiles<br />
    D&eacute;lai : 120 jours</div>
    </div>
    
    </div>
    <br />
    

    Code css :

    Code:
            /*             styles for the star rater                */
            .star-rating{
                    list-style:none;
                    margin-left:auto;
                    margin-right:auto;
                    padding:0px;
                    width: 140px;
                    height: 20px;
                    position: relative;
                    background: url(images/star_white.gif) top left repeat-x;
            }
            .star-rating li{
                    padding:0px;
                    margin:0px;
                    height:20px;
                    width: 20px;
                    /*\*/
                    float: left;
                    /* */
            }
            .star-rating li a{
                    display:block;
                    width:20px;
                    height: 20px;
                    line-height:20px;
                    text-decoration: none;
                    text-indent: -9000px;
                    z-index: 20;
                    position: absolute;
                    padding: 0px;
                    overflow:hidden;
            }
            .star-rating li a:hover{
                    background: url(images/star_yellow.gif) left center;
                    z-index: 2;
                    left: 0px;
                    border:none;
            }
            .star-rating a.one-star{
                    left: 0px;
            }
            .star-rating a.one-star:hover{
                    width:20px;
            }
            .star-rating a.two-stars{
                    left:20px;
            }
            .star-rating a.two-stars:hover{
                    width: 40px;
            }
            .star-rating a.three-stars{
                    left: 40px;
            }
            .star-rating a.three-stars:hover{
                    width: 60px;
            }
            .star-rating a.four-stars{
                    left: 60px;
            } 
            .star-rating a.four-stars:hover{
                    width: 80px;
            }
            .star-rating a.five-stars{
                    left: 80px;
            }
            .star-rating a.five-stars:hover{
                    width: 100px;
            }
            .star-rating a.six-stars{
                    width: 100px;
            }
            .star-rating a.six-stars:hover{
                    width: 120px;
            }
            .star-rating a.seven-stars{
                    width: 120px;
            }
            .star-rating a.seven-stars:hover{
                    width: 140px;
            }
            .star-rating li.current-rating{
                    background: url(images/star_green.gif) left bottom;
                    position: absolute;
                    height: 20px;
                    display: block;
                    text-indent: -9000px;
                    z-index: 1;
            }
            /* remove halo effect in firefox   */
            a:active{
                 outline: none;
            } 
    
    Comment résoudre ce problème ?

    Merci de me donner ton avis.

    Respectueusement.
     
  10. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 875
    J'aime reçus:
    12
    Je vous demande pardon.

    Une erreur de typo dans le fichier css.

    Cà marche. ;)

    Honteux.

    Amicalement.
     
  11. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 875
    J'aime reçus:
    12
    Rebonjour

    Voilà c'est en place sur mon site.

    Respectueusement.
     
Chargement...
Similar Threads - fixer nombre étoiles Forum Date
Possible de fixer le Serial number DNS avec l'interface Gandi expert ? Administration d'un site Web 13 Février 2017
Fixer des vignettes Développement d'un site Web ou d'une appli mobile 27 Octobre 2014
fixer des ads dans les articles de blogger Développement d'un site Web ou d'une appli mobile 8 Août 2012
balise HTML pour préfixer des HREF et SRC Développement d'un site Web ou d'une appli mobile 9 Mars 2012
Evaluer l'augmentation du trafic pour fixer son tarif Référencement Google 30 Mai 2011
Comment fixer le CPC max AdWords 12 Mai 2010
yoyo sur une requête important, comment fixer tout cela!!! Problèmes de référencement spécifiques à vos sites 19 Septembre 2009
Format milliers nombre en javascript Développement d'un site Web ou d'une appli mobile Jeudi à 16:26
Le nombre d'annonces que vous êtes autorisé à diffuser a été limité AdSense 29 Novembre 2019
Nombre de publication d'articles par jour Rédaction web et référencement 23 Novembre 2019
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice