bootstrapを使用するWebアプリケーションがあります(2.3.2-企業ポリシー、いくつかのWebアプリケーションでの多くのテストなしでは3.0にアップグレードできません)。このアプリケーション内には、フォームとテーブルの検証を必要とするいくつかの長いページがありますが、実用的で審美的な理由から、ページの上部にフローティングdivとしてアラートメッセージを表示する必要があります。
これは固定の浮動divであり、必要に応じてjavascriptを使用して表示および非表示にできます。この部分は機能し、ユーザーに情報をフラッシュする必要がある場合やエラーが発生する場合はいつでも、このdivを制御できます。
レイアウトは次のようになります。
<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>
スタイリングは次のとおりです。
#message {
position: fixed;
top: 0;
left: 0;
width: 100%;
}
#inner-message {
margin: 0 auto;
}
#message divはすべて正常に動作しますが、#message divにパディングを追加しようとすると(ページのエッジとdivの間のスペースを取得するため、つまりパディング:5px)、divはパディングのみを取得しますdivの左側と上部が残り、ページの右側に押し出されすぎています(bootstrapアラート内の 'x'の一部を非表示にします)。
誰もこれを経験したことがありますか?それは単純な問題のように思えるので、私は何かを見落としていますか?
パディングを適用するdiv内に内部メッセージをラップするだけです: 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>
上部に固定されたアラートが必要で、bootstrap navbar navbar-fixed-topを使用している場合、次のスタイルクラスはアラートをナビゲーションの上にオーバーレイします。
.alert-fixed {
position:fixed;
top: 0px;
left: 0px;
width: 100%;
z-index:9999;
border-radius:0px
}
これは、ユーザーがページ内で下にスクロールされた場合でもアラートを提供するのに役立ちました。
問題は、div
をコンテナや行でラップする必要があることだと思います。
これにより、探しているものと同様の外観が得られます。
<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;
}
他の人はラッピングdiv
を提案していますが、htmlに複雑さを加えることなくこれを行うことができるはずです...
これをチェックしてください:
#message {
box-sizing: border-box;
padding: 8px;
}
最も簡単なアプローチは、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>
このクラスを使用できます:class="sticky-top alert alert-dismissible"