J'ai une application Web qui utilise bootstrap (2.3.2 - stratégie d'entreprise, nous ne pouvons pas passer à la version 3.0 sans effectuer de nombreux tests sur plusieurs applications Web). Plusieurs applications de cette application nécessitent la validation des formulaires et des tableaux. Toutefois, pour des raisons pratiques et esthétiques, un message d’alerte doit apparaître sous la forme d’un div flottant en haut de la page.
Ce sera un div flottant fixe, qui peut être affiché et caché à l’aide de javascript selon les besoins. Cette partie fonctionne et je peux contrôler cette div chaque fois que je dois envoyer des informations à l'utilisateur ou qu'une erreur se produit.
La mise en page est comme ça:
<div id="message">
<div id="inner-message" class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
test error message
</div>
</div>
Le style est ci-dessous:
#message {
position: fixed;
top: 0;
left: 0;
width: 100%;
}
#inner-message {
margin: 0 auto;
}
La div #message se comporte très bien, mais quand j'essaie d'ajouter un peu de remplissage à la div #message (pour essayer d'obtenir un peu d'espace entre le bord de la page et la div ie padding: 5px), la div ne reçoit que du remplissage à gauche et en haut et le reste de la div est poussé trop loin à droite de la page (masquant une partie du «x» à l'intérieur de l'alerte bootstrap).
Quelqu'un at-il déjà vécu cela? Cela semble être un problème assez simple, puis-je oublier quelque chose?
Enroulez simplement votre message intérieur dans une div sur laquelle vous appliquez votre remplissage: http://jsfiddle.net/Ez9C4/
<div id="message">
<div style="padding: 5px;">
<div id="inner-message" class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
test error message
</div>
</div>
</div>
Si vous souhaitez une alerte fixée au sommet et que vous utilisez bootstrap navbar -barbar-fixed-top, la classe de style suivante superposera l'alerte au-dessus du navigateur:
.alert-fixed {
position:fixed;
top: 0px;
left: 0px;
width: 100%;
z-index:9999;
border-radius:0px
}
Cela a bien fonctionné pour moi de fournir des alertes même lorsque l'utilisateur fait défiler la page.
Je pense que le problème est que vous devez envelopper votre div
dans un conteneur et/ou une ligne.
Cela devrait donner un aspect similaire à ce que vous recherchez:
<div class="container">
<div class="row" id="error-container">
<div class="span12">
<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">×</button>
test error message
</div>
</div>
</div>
</div>
CSS:
#error-container {
margin-top:10px;
position: fixed;
}
D'autres suggèrent un wrapping div
mais vous devriez pouvoir le faire sans ajouter de complexité à votre code HTML ...
regarde ça:
#message {
box-sizing: border-box;
padding: 8px;
}
Vous pouvez utiliser cette classe: class="sticky-top alert alert-dismissible"
La méthode la plus simple consiste à utiliser l’un des utilitaires de classe fournis par Bootstrap:
<div class="position-fixed">...</div>
<div class="position-sticky">...</div>
<div class="fixed-top">...</div>
<div class="fixed-bottom">...</div>
<div class="sticky-top">...</div>