(Webサイトのコンテンツに基づいて)幅が異なるDivを中央に配置しようとしています。
私はここで相対的な位置決め技術について読みました:
http://www.tightcss.com/centering/center_variable_width.htm
しかし、私はそれを行うためのより簡単な方法が必要だと思いましたか?
これはかなり堅実な方法であり、ほとんどのブラウザでうまく機能するはずです。分解するとそれほど複雑ではありません。基本的な例は次のとおりです。
<style type="text/css">
#hideoverflow { overflow: hidden; }
#outer { position: relative; left: 50%; float: left; }
#inner { position: relative; left: -50%; float: left; }
</style>
<div id="hideoverflow">
<div id="outer">
<div id="inner">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id velit vel augue fringilla rhoncus at et odio. Suspendisse potenti. Aliquam justo libero, commodo ut iaculis in, placerat vel purus.
</div>
</div>
</div>
@タロン;あなたはこのようにそれを行うことができます http://jsfiddle.net/sandeep/7PXQF/
CSS:
.container{
background-color:red;
text-align:center;
}
.center{
background-color:yellow;
display:inline-block;
text-align:left;}
HTML:
<div class="container">
<div class="center">
<p>This is a div with an much wider width, to make the yellow div go off the page to the right. We'll type a bit more to be sure.</p>
<p>Most people will see a horizontal scroll bar on the bottom, unless their screen is very wide.</p>
</div>
</div>
まあ、これより簡単にすることはできず、すべてのブラウザで完全にサポートされています。コンテナさえ必要ありません:
.centered {
display:table;
margin:0 auto;
}
<div class="centered">
content
</div>
これが実用的なフィドルです: https://jsfiddle.net/1tnprnoz/
フレックスボックスを使用すると、justify-content: center;
でこれを簡単に実現できます。
#container{
background: gray;
display: flex;
justify-content: center;
}
<div id="container">
<div id="content" style="width: 200px; padding: 5px; background: #ffa637;">
This is a centered div This is a centered div This is a centered div This is a centered div
</div>
</div>
これは、コンテナの子セレクタmargin: auto
に#container>*
を適用することでも実現できます。
#container{
background: #c7c7c7;
}
#container>*{
margin: auto;
}
<div id="container">
<div id="content" style="width: 200px; padding: 5px; background: #ffa637;">
This is a centered div This is a centered div This is a centered div This is a centered div
</div>
</div>
注:これらのスタイルは生成されたスタイルであり、この質問の範囲外であるため、contentdivはインラインでスタイル設定されます。