2014-09-05 2 views
2

Я использую API Google Maps и пытаюсь установить сгенерированную карту в качестве фона.суперпозиция и центр div

Это мой HTML

<div class="content"> 
    <div class="map"></div> 
    <div class="element"></div> 
</div> 

CSS-

.content { 
    position: relative; 
    height: 500px; 
} 

.map { 
    position: absolute; 
    width: 100%; 
    height: 100%; 
} 

.element { 
    position: absolute; 
    width: 900px; 
    margin-left: auto; 
    margin-right: auto; 
    z-index: 1; 
} 

Сайт должен выглядеть следующим образом

|-------------------------------------| 
|          | 
|          | 
|          | <- Other content 
|          | 
|-------------------------------------| 
|.map |-------------------------|  | 
|  |.element     |  | <- The concerned content (.content) 
|  |       |  | 
|  |-------------------------|  | 
|-------------------------------------| 

Но результат не то же самое. Конечно, маржа, оставленная автоматически, не работает. Суперпозиция в порядке, правый край тоже, но как я могу сделать для левого края? Мой сайт должен быть всегда сосредоточен.

Спасибо.

Решение от Allan:

.content { 
    position: relative; 
    height: 500px; 
} 

.map { 
    position: absolute; 
    width: 100%; 
    height: 100%; 

    z-index: 0; 
} 

.element { 
    position: relative; 

    width: 900px; 
    margin-left: auto; 
    margin-right: auto; 
    z-index: 1; 
} 
+0

Поля слева и справа 'auto' будут работать на абсолютно позиционированных и явно размерных блоках, если вы установите' left' и 'right' равным 0. Однако, если ширина экрана меньше 900px - это будет не центрировать блок. В целом, использование отрицательных полей, как показано @Niels Keurentjes, является, пожалуй, лучшим и самым переносимым способом центрирования абсолютного элемента. – DRD

ответ

3

Использование:

.element { 
    left:50%; 
    margin-left:-450px; 
    position:absolute; 
    z-index:1; 
} 

Поскольку элемент является 900px в ширину (явно декларируется) вас позиционируют его на 450 пикселей слева от центра таким образом - центрируя весь элемент.

Имейте в виду, что это дает неожиданные результаты, когда браузер сжимается ниже 900px ширины - вам нужно поймать это с помощью медиа-запроса, если это необходимо.

1

Margin авто не будет работать, когда элемент дом имеет место как абсолютное.

Если у родителя есть определенное значение ширины, вы должны играть с верхним и левым атрибутами вашего элемента .element.

Другой способ - установить z-index карты в Zero (0) или отрицательное значение, тогда просто установите элемент. Position в положение relative, тогда маржа может использоваться с автоматическими значениями.

Дайте ему попробовать.

и если вам нужно, я мог бы создать jsfiddle для вас, но мне потребуется код карты, а

+0

Он работает, я добавил ваше решение в свой пост. Это правильный путь? – Druxtan

+0

Существуют разные способы решения этого и многое другое, это одно. если бы вы могли предоставить код, с которым работаете, я мог бы взглянуть и дать знать, все ли выглядит нормально. – Allan

+0

С решением Niels Keurentjes я могу добавить верхний край, а не ваш, поскольку маржа также применяется к карта. – Druxtan