[TOUTES VERSIONS] Fond bicolore (bandes)

Voir le sujet précédent Voir le sujet suivant Aller en bas

[TOUTES VERSIONS] Fond bicolore (bandes)

Astuce le Lun 27 Aoû 2018 - 3:44
no_way
avatar
Développeur

Messageno_way

  • 16px
  • 24px
  • Zoom
Bonjour, j'ai eu besoin de créer récemment quelques fonds en bandes de couleurs:

[size=64]Un exemple[/size]
Vous pouvez générer le code CSS facilement en passant par la page HTML suivante qui utilise une fonction SCSS:
http://essaix86-64-js.1fr1.net/h2-

Si vous souhaitez avoir la même page sur votre forum, créez une nouvelle page HTML en mode avancé, utilisez le haut et le bas de votre forum puis mettez le contenu suivant:
Code:
<style type="text/css">
    ul.fa7up-table {
        display: table;
        border-spacing: 0px;
    }
    ul.fa7up-table > li {
        display: table-row;
    }
    ul.fa7up-table > li > div {
        display: table-cell;
    }
</style>
<ul class="fa7up-table">
    <li>
        <div>
            <form name="post" id="genCSS"enctype="multipart/form-data">
                <ul class="fa7up-table">
                    <li>
                        <div style="text-align:right;white-space: nowrap;">
                            <label for="nBandes">Nombre de bandes : </label>
                        </div>
                        <div>
                            <input id="nBandes" type="number" value="2" min="2">
                        </div>
                    </li>
                    <li>
                        <div style="text-align:right;white-space: nowrap;">
                            <label for="angle">Inclinaison des bandes en degrés : </label>
                        </div>
                        <div>
                            <input id="angle" type="number" value="0" min="-359" max="359">
                        </div>
                    </li>
                    <li>
                        <div style="text-align:right;white-space: nowrap;">
                            <label for="couleur_1">Couleur 1 : </label>
                        </div>
                        <div>
                            <input id="couleur_1" type="color">
                        </div>
                    </li>
                    <li>
                        <div style="text-align:right;white-space: nowrap;">
                            <label for="couleur_2">Couleur 2 : </label>
                        </div>
                        <div>
                            <input id="couleur_2" type="color">
                        </div>
                    </li>
                    <li>
                        <div>
                        </div>
                        <div>
                            <input type="submit" value="Créer">
                        </div>
                    </li>
                </ul>
            </form>
        </div>
        <div class="votre_selecteur_CSS" style="min-height:5em;width:100%">
        </div>
    </li>
</ul>
<h2>Code CSS généré</h2>
Remplacez ".votre_selecteur_CSS" par ce qui vous convient.
<textarea id="css_genere" readonly style="min-height:5em;width:100%"></textarea>
<script type="text/javascript">
    var bCSS="@function linearGradient($angle,$color1, $color2, $nBandes) {"+
        "$i:0;"+
        '$r:"linear-gradient(#{$angle}deg";'+
        "@while $i<$nBandes{"+
            "$w:100/$nBandes*$i;"+
            "$ws:100/$nBandes*($i+1);"+
            '@if $i%2==0{$r:$r+",#{$color1} #{$w}%,#{$color1} #{$ws}%"}'+
            '@else{$r:$r+",#{$color2} #{$w}%,#{$color2} #{$ws}%"}'+
            "$i:$i+1;"+
        "}"+
        "@return #{$r+')'};"+
    "}"+
    '.votre_selecteur_CSS{'+
        '$$$$'+
        'background-image:#{"-webkit-"+linearGradient($angle,$couleur_1,$couleur_2,$bandes)} !important;'+
        'background-image:#{"-moz-"+linearGradient($angle,$couleur_1,$couleur_2,$bandes)} !important;'+
        'background-image:#{"-o-"+linearGradient($angle,$couleur_1,$couleur_2,$bandes)} !important;'+
        'background-image:linearGradient($angle,$couleur_1,$couleur_2,$bandes) !important;'+
    '}';
    var getCode=function(){
        var angle=$("#angle").val()||0;
        var couleur_1=$("#couleur_1").val()||"#000";
        var couleur_2=$("#couleur_2").val()||"#000";
        var nBandes=Math.max(2,$("#nBandes").val());
        $.post("https://fa7up.fr/sp/compilateur_scss.php",{"scss":bCSS.replace("$$$$","$angle:"+angle+";$couleur_1:"+couleur_1+";$couleur_2:"+couleur_2+";$bandes:"+nBandes+";")},function(d){
            $("#css_bandes_g").remove();
            $("#css_genere").val(d.css);
            $("<style>",{"type":"text/css","id":"css_bandes_g","text":d.css}).appendTo("head");
        });
    };
    $("#nBandes,#angle,input[type='color']").on("change",getCode);
    $("#genCSS").on("submit",function(e){e.preventDefault();getCode()});
</script>
Milouze14
avatar
Fondateur

MessageMilouze14

  • 16px
  • 24px
  • Zoom
Hello Arnaud,
encore merci pour ton dévouement à nous faire partager ton savoir et tes talents hinhin .

Je viens de tester sous Firefox avec cette div:
Code:
<div class="test">Exemple</div>








Le code css généré:
Code:
.test
{
  background-image: -webkit-linear-gradient(-45deg,#4d4ddf 0%,#4d4ddf 5%,#000 5%,#000 10%,#4d4ddf 10%,#4d4ddf 15%,#000 15%,#000 20%,#4d4ddf 20%,#4d4ddf 25%,#000 25%,#000 30%,#4d4ddf 30%,#4d4ddf 35%,#000 35%,#000 40%,#4d4ddf 40%,#4d4ddf 45%,#000 45%,#000 50%,#4d4ddf 50%,#4d4ddf 55%,#000 55%,#000 60%,#4d4ddf 60%,#4d4ddf 65%,#000 65%,#000 70%,#4d4ddf 70%,#4d4ddf 75%,#000 75%,#000 80%,#4d4ddf 80%,#4d4ddf 85%,#000 85%,#000 90%,#4d4ddf 90%,#4d4ddf 95%,#000 95%,#000 100%) !important;
  background-image: -moz-linear-gradient(-45deg,#4d4ddf 0%,#4d4ddf 5%,#000 5%,#000 10%,#4d4ddf 10%,#4d4ddf 15%,#000 15%,#000 20%,#4d4ddf 20%,#4d4ddf 25%,#000 25%,#000 30%,#4d4ddf 30%,#4d4ddf 35%,#000 35%,#000 40%,#4d4ddf 40%,#4d4ddf 45%,#000 45%,#000 50%,#4d4ddf 50%,#4d4ddf 55%,#000 55%,#000 60%,#4d4ddf 60%,#4d4ddf 65%,#000 65%,#000 70%,#4d4ddf 70%,#4d4ddf 75%,#000 75%,#000 80%,#4d4ddf 80%,#4d4ddf 85%,#000 85%,#000 90%,#4d4ddf 90%,#4d4ddf 95%,#000 95%,#000 100%) !important;
  background-image: -o-linear-gradient(-45deg,#4d4ddf 0%,#4d4ddf 5%,#000 5%,#000 10%,#4d4ddf 10%,#4d4ddf 15%,#000 15%,#000 20%,#4d4ddf 20%,#4d4ddf 25%,#000 25%,#000 30%,#4d4ddf 30%,#4d4ddf 35%,#000 35%,#000 40%,#4d4ddf 40%,#4d4ddf 45%,#000 45%,#000 50%,#4d4ddf 50%,#4d4ddf 55%,#000 55%,#000 60%,#4d4ddf 60%,#4d4ddf 65%,#000 65%,#000 70%,#4d4ddf 70%,#4d4ddf 75%,#000 75%,#000 80%,#4d4ddf 80%,#4d4ddf 85%,#000 85%,#000 90%,#4d4ddf 90%,#4d4ddf 95%,#000 95%,#000 100%) !important;
  background-image: linear-gradient(-45deg,#4d4ddf 0%,#4d4ddf 5%,#000 5%,#000 10%,#4d4ddf 10%,#4d4ddf 15%,#000 15%,#000 20%,#4d4ddf 20%,#4d4ddf 25%,#000 25%,#000 30%,#4d4ddf 30%,#4d4ddf 35%,#000 35%,#000 40%,#4d4ddf 40%,#4d4ddf 45%,#000 45%,#000 50%,#4d4ddf 50%,#4d4ddf 55%,#000 55%,#000 60%,#4d4ddf 60%,#4d4ddf 65%,#000 65%,#000 70%,#4d4ddf 70%,#4d4ddf 75%,#000 75%,#000 80%,#4d4ddf 80%,#4d4ddf 85%,#000 85%,#000 90%,#4d4ddf 90%,#4d4ddf 95%,#000 95%,#000 100%)!important;
}

Et le résultat ne donne rien sur mon fofo de test:

http://testdesforums.1fr1.net/

Je reviens que ce soir, reprise du taf oblige pleure .



-Le respect de nos semblables est la règle de notre conduite.-

Fondateur des forums





no_way
avatar
Développeur

Messageno_way

  • 16px
  • 24px
  • Zoom
Si seulement on avait pas besoin d'argent hein ^^

En désactivant l'optimisation du CSS par FA ça fonctionne parfaitement mais c'est bizarre quand même de voir l'optimisation supprimer autant du code mis dans la feuille de style ...
Milouze14
avatar
Fondateur

MessageMilouze14

  • 16px
  • 24px
  • Zoom
Si seulement on avait pas besoin d'argent hein ^^
Hum, tout est dit mdr .

En désactivant l'optimisation du CSS par FA ça fonctionne parfaitement mais c'est bizarre quand même de voir l'optimisation supprimer autant du code mis dans la feuille de style ...


Oui, je viens de voir Arnaud,
effectivement, c'est assez étonnant....
Je ne pourrais te venir en aide sur ce point car je ne me suis
jamais servi de ce style.



-Le respect de nos semblables est la règle de notre conduite.-

Fondateur des forums





photoclic
avatar
Milouzien

Messagephotoclic

  • 16px
  • 24px
  • Zoom
Très sympa cette fonction. Merci Arnaud.

j'ai le même souci pour le fonctionnement, Il faut désactiver l'optimisation du CSS.

En analysant, on voit que l'optimisation du CSS retire l'espace entre la couleur et le pourcentage et le background ne fonctionne plus dans ce cas.
no_way
avatar
Développeur

Messageno_way

  • 16px
  • 24px
  • Zoom
J'ai lu que FA utilisait une version dépassée de CSStidy, le code CSS est juste mais l'optimisation est aux fraises, je ne peux rien faire face à ça :(
photoclic
avatar
Milouzien

Messagephotoclic

  • 16px
  • 24px
  • Zoom
Bin y en a des trucs qui clochent chez FA :-) marreordi
no_way
avatar
Développeur

Messageno_way

  • 16px
  • 24px
  • Zoom
J'avoue ... et ça c'est pas le pire, pour moi le plus problématique c'est le non respect du code source:

Crée une nouvelle page HTML en mode avancé avec le haut et le bas de ton forum puis mets le contenu suivant:
Code:
;)

Une fois validé tu auras une page avec un smiley alors qu'il n'a strictement rien à y faire, t'es en mode source !

Édite la page en question, efface le contenu et remets à nouveau:
Code:
;)

Magiiie, le code HTML est enfin respecté ...

Voir le sujet précédent Voir le sujet suivant Revenir en haut

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum