thème dialogue jQuery et le style
-
22-08-2019 - |
Question
Comment puis-je changer la couleur de fond de la barre de titre d'une boîte de dialogue jQuery?
Je l'ai regardé le ThemeRoller, mais il ne semble pas fonctionner pour moi.
Merci
La solution
Je fais de cette façon (en ajoutant un style pour en-tête "ui-state-erreur"):
<script type="text/javascript">
$(function () {
$("#msg").dialog({
open: function () {
$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
}
});
});
</script>
Autres conseils
Vous pouvez le modifier en modifiant la classe ui-dialogue-CSS titlebar, mais je vous recommande fortement d'utiliser le ThemeRoller outil .
Voir aussi:
Il y a des classes associées à chaque élément dans la boîte de dialogue.
Utilisez Firebug pour inspecter les éléments et utiliser les CSS pour les style. Par exemple, la barre de titre a la classe "ui-dialogue-titlebar".
(cela suppose que vous utilisez la boîte de dialogue jQuery UI)
Utilisez la propriété dialogClass
. Vous pouvez demander à tout dialogue dans css jquery.
Ci-dessous, nous la mise en forme des blocs d'en-tête et le 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>
L'exemple précédent fonctionne bien, mais avec seulement la couleur rouge du thème d'erreur.
Voici une solution simple à changer juste 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 enlevé le:
removeClass("ui-widget-header")
au lieu de simplement ajouter la classe sur:
find(".ui-dialog-titlebar")
Il faut noter que cet exemple fonctionne avec l'en-tête de dialogue sans son lien.
Parfois, vous pouvez pas modifier le fichier css. 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');
}
});