web-dev-qa-db-fra.com

thème et style de dialogue jQuery

Comment changer la couleur d'arrière-plan de la barre de titre d'une boîte de dialogue jQuery?

J'ai regardé le themeroller mais cela ne semble pas fonctionner pour moi.

Merci

14
Picflight

Je fais de cette façon (en ajoutant le style "ui-state-error" pour en-tête):

<script type="text/javascript">
            $(function () {
                $("#msg").dialog({
                    open: function () {
                        $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
                    }

                });

            });
        </script>  
12
DonSleza4e

Vous pouvez le changer en modifiant la classe CSS ui-dialog-titlebar, mais je vous recommande vivement d'utiliser l'outil ThemeRoller .

Voir également:

13
CMS

Il existe des classes associées à chaque élément de la boîte de dialogue. 

Utilisez Firebug pour inspecter les éléments et utilisez CSS pour les styler. Par exemple, la barre de titre a la classe "ui-dialog-titlebar".

(cela suppose que vous utilisez la boîte de dialogue jQuery UI)

3
jonstjohn

Utilisez la propriété dialogClass. Vous pouvez appliquer n'importe quel css dans la boîte de dialogue jquery. Ci-dessous, nous formaterons des blocs d'en-tête et de contenu.

<head>
<style>
.main-dialog-class .ui-widget-header{background: url("/Images/your-background.png") repeat-x scroll 34px 42px #a4cf50;font-size:16px;border:0;text-transform:uppercase}
.main-dialog-class .ui-widget-content{background-image:none;background-color:#fff}
</style>
<script>
        $('#jq_dialog').dialog({
            title: 'Detalhes do produto',
            modal: true,
            resizable: false,
            width: 500,
            maxHeight: 400,
            closeText: 'fechar',
            draggable: true,
            show: 'fade',
            hide: 'fade',
            dialogClass: 'main-dialog-class'
        });
</script>
</head>
<body>
<div id="jq_dialog">Hello StackOverflow!</div>
</body>
2
Junior M

L'exemple précédent fonctionne bien, mais avec uniquement la couleur rouge du thème d'erreur.

Voici une solution simple avec juste changer l'image d'en-tête dans le css:

css:

.ui-widget-header-custom{ 
    background: #f6a828 url(../images/ui-bg_flat_95_0a43ac_40x100.png) 50% 50% repeat-x;      
}

javascript:

$('#my_dialog').dialog({ 
    open: function(event, ui){ 
        $(this).parents(".ui-dialog:first").find(".ui-widget-header")
            .removeClass("ui-widget-header").addClass("ui-widget-header-custom");
    }
});

Notez que contrairement à l'exemple précédent, j'ai supprimé le: 

removeClass("ui-widget-header")

au lieu d'ajouter simplement la classe sur le:

find(".ui-dialog-titlebar")

Notez que cet exemple fonctionne avec l'en-tête de la boîte de dialogue sans son lien.

1
Geoffroy CALA

Parfois, vous ne pouvez pas éditer le fichier css. Donc, vous pouvez essayer ceci:

dialog = $('<div/>').dialog({
  title: 'Dialog with css for title bar',
  open: function() {
    $(this).parents(".ui-dialog:first").find('.ui-dialog-titlebar').css('background-color','#275D9E');
  } 
});
0
Hermann Schwarz