Partage
  • Partager sur Facebook
  • Partager sur Twitter

Supprimer css par défaut d'un bouton

Sujet résolu
3 avril 2021 à 13:16:58

Bonjour,

J’ai un petit souci sur mon bandeau informatif des cookies.

Tout s’affiche correctement sur ordinateur mais j’ai des doubles boutons sur mobiles et tablettes (tests sur iOS), je ne trouve pas comment les supprimer. 

Si quelqu’un a une idée je suis preneur !

capture d'écran sur mobiles :

capture d'écran sur ordi :

Et voici mon code css : 

/* Cookies */




#gdpr-cookie-message {
  position: fixed;
  right: 30px;
  bottom: 30px;
  max-width: 475px;
  background-color: #3B3646;
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 6px 6px rgba(0,0,0,0.25);
  margin-left: 30px;
  z-index: 10000;
 
  
}


#gdpr-cookie-message h4 {
  color: #EE4B5A;
  font-size: 18px;
  font-weight: 500;
  
}
#gdpr-cookie-message h5 {
  color: #EE4B5A;
  font-size: 15px;
  font-weight: 500;
  
}
#gdpr-cookie-message p, #gdpr-cookie-message ul {
  color: white;
  font-size: 15px;
  line-height: 1.5em;
  margin-bottom: 20px;
  padding-left: 0;

  
 
}
#gdpr-cookie-message p:last-child {
  margin-bottom: 0;
  text-align: right;
}


#gdpr-cookie-message li {
  list-style: none;
  margin-bottom: 0;
}

@media only screen and (min-width: 425px) {
  #gdpr-cookie-message li {
    display:inline-block;
    width: 49%;
    list-style: none;
    margin-bottom: 0;
  }
}


#gdpr-cookie-message a {
  color: #EE4B5A;
  text-decoration: none;
  font-size: 15px;
  padding-bottom: 2px;
  border-bottom: 1px dotted rgba(255,255,255,0.75);
  transition: all 0.3s ease-in;
}
#gdpr-cookie-message a:hover {
  color: white;
  border-bottom-color: #EE4B5A;
  transition: all 0.3s ease-in;
}
#gdpr-cookie-message .button2,
.button2#ihavecookiesBtn {
 
  border: none;
  background: #EE4B5A;
  color: white;
  font-size: 15px;
  padding: 7px;
  border-radius: 3px;
  margin-left: 15px;
  cursor: pointer;
  transition: all 0.3s ease-in;
}
#gdpr-cookie-message .button2:hover {
  background: white;
  color: #EE4B5A;
  transition: all 0.3s ease-in;
}
.button2#gdpr-cookie-advanced {
  background: white;
  color: #EE4B5A;
}
#gdpr-cookie-message .button2:disabled {
  opacity: 0.3;
}
#gdpr-cookie-message input[type="checkbox"] {
  float: none;
  margin-top: 0;
  margin-right: 5px;
}


#gdpr-cookie-message input[type="checkbox"] + label{
  text-decoration: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  color: #ffffff;
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 300;
  margin: 0 0 0.5rem 0;
  padding-left: 2rem;
  position: relative;
}

#gdpr-cookie-message input[type="checkbox"] + label:before{
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  line-height: 1;
  text-transform: none !important;
  font-family: "Sniglet", sans-serif;
  font-weight: 900;
}

#gdpr-cookie-message input[type="checkbox"] + label:before{
  -moz-transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out,
    background-color 0.2s ease-in-out;
  -webkit-transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out,
    background-color 0.2s ease-in-out;
  -ms-transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out,
    background-color 0.2s ease-in-out;
  transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out,
    background-color 0.2s ease-in-out;
  border-radius: 4px;
  border: solid 1px #ffffff;
  content: "";
  display: inline-block;
  height: 1.4rem;
  left: 0;
  line-height: 1.65rem;
  position: absolute;
  text-align: center;
  top: -0.15rem;
  width: 1.4rem;
}

#gdpr-cookie-message input[type="checkbox"]:checked + label:before{
  background: #ffffff !important;
  border-color: #ffffff !important;
  color: #1b1f22;
  content: "\2713";
 
}

#gdpr-cookie-message input[type="checkbox"]:focus + label:before{
  background: rgba(255, 255, 255, 0.075);
  border-color: #ffffff;
  box-shadow: 0 0 0 1px #ffffff;
}

#gdpr-cookie-message input[type="checkbox"] + label:before {
  border-radius: 4px;
}



J'avais essayé d'ajouter ça sans résultat :

-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
  • Partager sur Facebook
  • Partager sur Twitter
6 avril 2021 à 12:26:17

personne n’a d’idées ? :/
  • Partager sur Facebook
  • Partager sur Twitter
6 avril 2021 à 20:41:48

Bonjour,

il nous faut aussi le HTML :)

  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)

6 avril 2021 à 23:47:36

Bonsoir,

Je n'ai pas mis le html car c'est du JS, je te mets le code si tu veux mais c'est assez long..

(function($) {

   
    $.fn.ihavecookies = function(options, event) {

        var $element = $(this);

       
        // Définir les valeurs par défaut
        var settings = $.extend({
            cookieTypes: [
                {
                    type: 'Préférences',
                    value: 'preferences',
                    description: 'Cookies liés aux préférences de votre site, par ex. mémoriser votre nom d utilisateur, les couleurs du site, etc.'
                },
                {
                    type: 'Statiqtiques',
                    value: 'analytics',
                    description: 'Cookies liés aux visites du site, aux types de navigateurs, etc.'
                },
                {
                    type: 'Marketing',
                    value: 'marketing',
                    description: 'Cookies liés au marketing, par ex. newsletters, réseaux sociaux, etc.'
                }
            ],
            title: 'Vous aimez les cookies ?',
            message: 'Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site Web...',
            link: '#cookies',
            delay: 2000,
            expires: 30,
            moreInfoLabel: 'En savoir plus',
            acceptBtnLabel: 'Accepter',
            advancedBtnLabel: 'Personnaliser',
            cookieTypesTitle: 'SÉLECTIONNEZ LES COOKIES QUE VOUS VOULEZ ACCEPTER',
            fixedCookieTypeLabel:'Necessary',
            fixedCookieTypeDesc: 'Ceux-ci sont essentiels au bon fonctionnement du site Web.',
            onAccept: function(){},
            uncheckBoxes: false
        }, options);

        var myCookie = getCookie('cookieControl');
        var myCookiePrefs = getCookie('cookieControlPrefs');
        if (!myCookie || !myCookiePrefs || event == 'reinit') {
            // Supprime toutes les instances du message cookie pour qu'il ne soit pas dupliqué
            $('#gdpr-cookie-message').remove();

            // Cochez la case du type de cookie 'nécessaire' qui ne peut pas être décochée
            var cookieTypes = '<li><input type="checkbox" name="gdpr[]" value="necessary" checked="checked" disabled="disabled"> <label title="' + settings.fixedCookieTypeDesc + '">' + settings.fixedCookieTypeLabel + '</label></li>';

            // Générer la liste des cases à cocher des types de cookies
            preferences = JSON.parse(myCookiePrefs);
            $.each(settings.cookieTypes, function(index, field) {
                if (field.type !== '' && field.value !== '') {
                    var cookieTypeDescription = '';
                    if (field.description !== false) {
                        cookieTypeDescription = ' title="' + field.description + '"';
                    }
                    cookieTypes += '<li><input type="checkbox" id="gdpr-cookietype-' + field.value + '" name="gdpr[]" value="' + field.value + '" data-auto="on"> <label for="gdpr-cookietype-' + field.value + '"' + cookieTypeDescription + '>' + field.type + '</label></li>';
                }
            });

           // Afficher le message de cookie sur la page
            var cookieMessage = '<div id="gdpr-cookie-message"><h4>' + settings.title + '</h4><p>' + settings.message + ' <a href="' + settings.link + '">' + settings.moreInfoLabel + '</a><div id="gdpr-cookie-types" style="display:none;"><h5>' + settings.cookieTypesTitle + '</h5><ul>' + cookieTypes + '</ul></div><p><button class=button2 id="gdpr-cookie-accept" type="button">' + settings.acceptBtnLabel + '</button><button class=button2 id="gdpr-cookie-advanced" type="button">' + settings.advancedBtnLabel + '</button></p></div>';
            setTimeout(function(){
                $($element).append(cookieMessage);
                $('#gdpr-cookie-message').hide().fadeIn('slow', function(){
                   
                    // En cas de réinitialisation, ouvrez la section avancée du message
                    // et revérifiez toutes les options précédemment sélectionnées.
                    if (event == 'reinit') {
                        $('#gdpr-cookie-advanced').trigger('click');
                        $.each(preferences, function(index, field) {
                            $('input#gdpr-cookietype-' + field).prop('checked', true);
                        });
                    }
                });
            }, settings.delay);

           // Lorsque vous cliquez sur le bouton d'acceptation, déposez le cookie
            $('body').on('click','#gdpr-cookie-accept', function(){
                // Set cookie
                dropCookie(true, settings.expires);

                // Si 'data-auto' est défini sur ON, cochez toutes les cases car
                // l'utilisateur n'a pas cliqué sur le bouton de personnalisation des cookies
                $('input[name="gdpr[]"][data-auto="on"]').prop('checked', true);

                
                // Enregistrer les préférences de cookies des utilisateurs (dans un cookie!)
                var prefs = [];
                $.each($('input[name="gdpr[]"]').serializeArray(), function(i, field){
                    prefs.push(field.value);
                });
                setCookie('cookieControlPrefs', encodeURIComponent(JSON.stringify(prefs)), 365);

                // Exécuter la fonction de rappel
                settings.onAccept.call(this);
            });

            // Activer / désactiver les options de cookies avancées
            $('body').on('click', '#gdpr-cookie-advanced', function(){
                // Décochez toutes les cases à l'exception de la désactivée «nécessaire»
                // one et définissez 'data-auto' sur OFF pour tous. L'utilisateur peut maintenant
                // sélectionnez les cookies qu'ils souhaitent accepter.
                $('input[name="gdpr[]"]:not(:disabled)').attr('data-auto', 'off').prop('checked', false);
                $('#gdpr-cookie-types').slideDown('fast', function(){
                    $('#gdpr-cookie-advanced').prop('disabled', true);
                });
            });

        } else {
            var cookieVal = true;
            if (myCookie == 'false') {
                cookieVal = false;
            }
            dropCookie(cookieVal, settings.expires);
        }

        // Décochez toutes les cases au chargement de la page
        if (settings.uncheckBoxes === true) {
            $('input[type="checkbox"].ihavecookies').prop('checked', false);
        }

    };

    // Méthode pour obtenir la valeur du cookie
    $.fn.ihavecookies.cookie = function() {
        var preferences = getCookie('cookieControlPrefs');
        return JSON.parse(preferences);
    };

    
    // Méthode pour vérifier si la préférence de cookie de l'utilisateur existe
    $.fn.ihavecookies.preference = function(cookieTypeValue) {
        var control = getCookie('cookieControl');
        var preferences = getCookie('cookieControlPrefs');
        preferences = JSON.parse(preferences);
        if (control === false) {
            return false;
        }
        if (preferences === false || preferences.indexOf(cookieTypeValue) === -1) {
            return false;
        }
        return true;
    };

   // Fonction pour déposer le cookie avec une valeur booléenne de true.
    var dropCookie = function(value, expiryDays) {
        setCookie('cookieControl', value, expiryDays);
        $('#gdpr-cookie-message').fadeOut('fast', function() {
            $(this).remove();
        });
    };

    // Définit le cookie avec «nom» et la valeur «valeur» pour «jours_expiration».
    var setCookie = function(name, value, expiry_days) {
        var d = new Date();
        d.setTime(d.getTime() + (expiry_days*24*60*60*1000));
        var expires = "expires=" + d.toUTCString();
        document.cookie = name + "=" + value + ";" + expires + ";path=/";
        return getCookie(name);
    };

   // Obtient le cookie appelé «nom».
    var getCookie = function(name) {
        var cookie_name = name + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(cookie_name) === 0) {
                return c.substring(cookie_name.length, c.length);
            }
        }
        return false;
    };

}(jQuery));
  var options = {
        title: '&#x1F36A; Vous aimez les cookies ?',
        message: 'Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site Web...',
        delay: 4000,
        expires: 1,
        link: '#cookies',
        onAccept: function(){
            var myPreferences = $.fn.ihavecookies.cookie();
            console.log('Les préférences suivantes ont été enregistrées ...');
            console.log(myPreferences);
        },
        uncheckBoxes: true,
        acceptBtnLabel: 'Accepter',
        moreInfoLabel: 'En savoir plus',
        cookieTypesTitle: 'SÉLECTIONNEZ LES COOKIES QUE VOUS SOUHAITEZ ACCEPTER',
        fixedCookieTypeLabel: 'Essentiels',
        fixedCookieTypeDesc: 'Cookies essentiels au bon fonctionnement du site Web.'
    }

    $(document).ready(function() {
        $('body').ihavecookies(options);

        if ($.fn.ihavecookies.preference('marketing') === true) {
            console.log('Cela devrait fonctionner car le marketing est accepté.');
        }

        $('#ihavecookiesBtn').on('click', function(){
            $('body').ihavecookies(options, 'reinit');
        });
    });



-
Edité par Coombaya 6 avril 2021 à 23:48:06

  • Partager sur Facebook
  • Partager sur Twitter
10 avril 2021 à 10:51:50

Je remonte le message car je n’ai pas résolu le problème..
  • Partager sur Facebook
  • Partager sur Twitter
12 avril 2021 à 15:39:52

J'ai trouvé la solution en ajoutant à mon css 
input[type="checkbox"] {
  display: none;
}
ça enlève bien les boutons gris sans enlever les boutons blanc. Je trouve ça un peu mystérieux mais ça fonctionne comme ça.

-
Edité par Coombaya 12 avril 2021 à 15:40:57

  • Partager sur Facebook
  • Partager sur Twitter