web-dev-qa-db-ja.com

CSSで可変幅のdivを中央に配置する簡単な方法

(Webサイトのコンテンツに基づいて)幅が異なるDivを中央に配置しようとしています。

私はここで相対的な位置決め技術について読みました:

http://www.tightcss.com/centering/center_variable_width.htm

しかし、私はそれを行うためのより簡単な方法が必要だと思いましたか?

24
Talon

これはかなり堅実な方法であり、ほとんどのブラウザでうまく機能するはずです。分解するとそれほど複雑ではありません。基本的な例は次のとおりです。

<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>
34
Joe Landsman

@タロン;あなたはこのようにそれを行うことができます 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>
30
sandeep

まあ、これより簡単にすることはできず、すべてのブラウザで完全にサポートされています。コンテナさえ必要ありません:

.centered {
  display:table;
  margin:0 auto;
}

<div class="centered">
  content
</div>

これが実用的なフィドルです: https://jsfiddle.net/1tnprnoz/

2
scooterlord

フレックスボックスを使用すると、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はインラインでスタイル設定されます。

0
Munim Munna