私はdivを水平方向の中央にしたいのですが、cssコードはこれです:
<style type="text/css">
#footer{
position: fixed;
bottom: 20px;
background-color: red;
width:500px;
margin: auto;/*left:auto; right:auto;*/
}
</style>
とhtmlコード:
<body>
<div id="footer">hello world</div>
</body>
私のcssコードを説明する必要はないと思います、それはほとんど自明ですが、divは水平方向の中央にありません、これを作る方法はありますか?前もって感謝します。
これを試して
#footer{
position: fixed;
bottom: 20px;
background-color: red;
width:80%;
margin: 0 0 0 -40%;
left:50%;
}
ここで注意すべき点は、マイナスmargin-left
の半分の値のwidth
と、本体のleft
を50%に設定
これでうまくいくはずです。コンテナーdivを追加することで機能します。
<style>
#footer-container{
position: fixed;
bottom: 0;
left: 0;
width: 100%;
text-align: center;
}
#footer
{
width:500px;
margin:0 auto;
margin-bottom:20px;
background-color:red;
}
</style>
<div id="footer-container">
<div id="footer">hello world</div>
</div>
内部に別のdivを配置し、マージンをautoにします。固定幅を100%にします。
それ以外の場合は、負のマージン「トリック」でハックできます
div {
position: fixed;
left: 50%;
width: 500px;
margin-left: -250px;
}
最新のブラウザを使用している場合は、flexboxレイアウトモジュール: http://caniuse.com/#feat=flexbox を使用できます。
Flexboxのドキュメント:developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes
注:担当者の都合により、2つを超えるリンクを投稿することはできません。
JSFiddle 。
(div#footer
の代わりにfooter
タグを使用する方が簡単です。)
<div id="footer-container">
<footer>hello world</footer>
<div>
#footer-container {
bottom: 20px;
position: fixed;
display: flex;
justify-content: center;
width: 100%;
}
footer {
width: 500px;
background-color: red;
}
justify-content: center;
'centers' #footer-container
の子。この場合はfooter
要素にすぎません。
これは、Nick N.のソリューションと非常に似ていますが、フッターのtext-align
プロパティをリセットする必要がないことと、これはおそらく、望んでいるトリックではない方法であることを除けばです。
その場合のフッターの幅が500pxではなく可変(80%)であるため、受け入れられたソリューションは少しずれています。
他の読者にとって、親がform
要素であり、子がinput
要素である場合、input
(子)要素でflex: 1;
を使用し、 max-width: 500px;
の代わりにwidth: 500px;
を使用してください。 flex: 1;
を使用すると、input
要素の幅を満たすようにform
要素が拡張されます。