Как я могу выровнять div по вертикали, одновременно выровняв его по документу по горизонтали? - PullRequest
1 голос
/ 21 марта 2012

Я хочу выровнять элемент div в HTML по вертикали в нижней части области просмотра, а также выровнять по горизонтали тот же элемент div с документом / страницей или их элементом.

Например, скажем, у меня естьdiv как таковой:

<html>
<head>
  <style type="text/css">
  * {
    margin: 0;
  }
  #wrapper {
    margin: 0 auto;
    width: 1000px;
    min-height: 2000px;
    background: #FF0000;
  }
  </style>
</head>
<body>
  <div id="wrapper">wrapper</div>
</body>
</html>

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

Моя наивная попытка заключается в следующем:

<html>
<head>
  <style type="text/css">
  * {
    margin: 0;
  }
  #wrapper {
    margin: 0 auto;
    width: 1000px;
    min-height: 2000px;
    background: #FF0000;
  }
  #footer {
    position: fixed;
    bottom: 0;
    left: 50%;
    width: 1000px;
    height: 100px;
    margin-left: -500px;
    background: #00FF00;
  }
  </style>
</head>
<body>
  <div id="wrapper">wrapper</div>
  <div id="footer">footer</div>
</body>
</html>

Это решение работает до тех пор, пока ширина области просмотра превышает 1000 пикселей.Как только окно становится меньше чем 1000 пикселей, решение ломается;нижний колонтитул больше не прокручивается горизонтально с остальной частью страницы.Также обратите внимание, что если документ «выше» области просмотра, то нижний колонтитул должен оставаться прикрепленным к нижней части области просмотра.

Ответы [ 2 ]

0 голосов
/ 21 марта 2012
<html>
    <head>
          <style type="text/css">
          * {
            margin: 0;
          }
          #outer
          {     
            width: 1000px;
            margin: 0 auto;
            height: 100%;
          }
          #wrapper {
            min-height: 800px;
            background: red;
          }
          #footer {
            position: absolute;
            bottom: 0;
            width: 1000px;
            height: 100px;
            background: lime;
            display: block;
          }
          </style>
        </head>
        <body>

        <div id="outer">
          <div id="wrapper">wrapper</div>
          <div id="footer">footer</div>
        </div>

        </body>
    </html>
0 голосов
/ 21 марта 2012

Вы должны использовать два div для этого.Первый выравнивается внизу страницы со стилями:

.wrapper {
    position: absolute;
    bottom:0;
    width: 100%;
    background-color: red;
}

Затем нижний колонтитул, содержащийся в обертке нижнего колонтитула, содержит фактическую информацию нижнего колонтитула (я вызываю то, что вы хотите выровнятьвнизу страницы нижний колонтитул ...

.footer {
    width: 50%;
    margin: 0 auto;
    background-color: green;
}

Посмотреть в действии:

http://jsfiddle.net/C3rhX/1/

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