Простой способ центрировать переменные ширины div в CSS - PullRequest
24 голосов
/ 01 сентября 2011

Я пытаюсь центрировать Div, который будет иметь различную ширину (в зависимости от содержимого веб-сайта).

Я читал о технике относительного позиционирования здесь:

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

Но я думал, что должен быть более простой способ сделать это?

Ответы [ 4 ]

34 голосов
/ 01 сентября 2011

Это довольно надежный метод, который должен хорошо работать в большинстве браузеров.Это не так уж сложно, когда вы ломаете это.Вот базовый пример:

<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>
28 голосов
/ 01 сентября 2011
* * 1000 @ Talon;Вы можете сделать это следующим образом 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>
1 голос
/ 20 марта 2018

Ну, это не может быть проще, чем это и имеет полную поддержку во всех браузерах; даже не нужен контейнер:

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

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

Вот рабочая скрипка: https://jsfiddle.net/1tnprnoz/

0 голосов
/ 20 марта 2018

Теперь с flex-box вы можете легко добиться этого с 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>

Примечание: div содержимого имеет встроенный стиль, поскольку эти стили являются сгенерированными стилями и выходят за рамки этого вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...