2016-03-09 5 views
0

В настоящее время я создаю страницу параллакса, но у меня проблемы с позиционированием элементов на разделах. Следовательно, моя проблема - это абсолютное позиционирование.Создание страницы параллакса и элементов позиционирования в разделах

Есть ли способ сделать абсолютное положение для работы внутри раздела, а не для всей страницы/окна просмотра?

Я сделал очень минимальный пример того, что я пытаюсь сделать: https://jsfiddle.net/zu2epxxq/1/

Как вы можете видеть в этом пункте в #second секции должно находиться внутри этого раздела, а не в основной раздел #first. Очевидно, что это побочный эффект использования абсолютного позиционирования. Как я могу решить эту проблему чистым и хорошим образом?

HTML:

<section id="first"> 
    <div> 
    <p>This is a test</p> 
    </div> 
</section> 
<section id="second"> 
    <div> 
    <p>More text that has to be pushed arund in this section</p> 
    </div> 
</section> 

CSS:

html, 
body { 
    height: 100%; 
    color: #fff; 
    font-size: 16px; 
    margin: 0; 
    padding: 0; 
} 

section { 
    min-height: 100%; 
} 

#first { 
    background-color: #000; 
} 

#second { 
    background-color: #ddd; 
} 

section > div { 
    bottom: 0; 
    margin: 0; 
    font-size: 4em; 
    position: absolute; 
    transform: translate(-50%, 50%); 
    left: 50%; 
} 
+0

I не видел «position: relative» для элемента 'absolute'. вам может понадобиться это. – Pedram

ответ

0

Использование "позиция: относительная;" по разделам. Затем вы можете расположить дочерние элементы относительно элементов раздела.

Я сделал это из него: https://jsfiddle.net/hpepwvdg/1/

Но я предпочитаю использовать режим разметки Flexbox, так как я обнаружил власть Flexbox: (http://www.w3schools.com/css/css3_flexbox.asp):

html, body, .container { 
 
    height: 100%; 
 
     color: #fff; 
 
} 
 
.container { 
 
    display: -webkit-flexbox; 
 
    display: -ms-flexbox; 
 
    display: -webkit-flex; 
 
    display: flex; 
 
    -webkit-flex-align: center; 
 
    -ms-flex-align: center; 
 
    -webkit-align-items: center; 
 
    align-items: center; 
 
    justify-content: center; 
 
} 
 

 
#first { 
 
    background-color: #000; 
 
} 
 

 
#second { 
 
    background-color: #ddd; 
 
} 
 

 
.centered_heading { 
 
    font-size: 4em; 
 
}
<section class="container" id="first"> 
 
    <h1 class="centered_heading">Centered!</h1> 
 
</section> 
 

 
<section class="container" id="second"> 
 
    <h1 class="centered_heading">Centered!</h1> 
 
</section>

+0

Есть ли какие-либо преимущества в использовании flex-box над традиционными методами, которые я использую? – JavaCake

+0

Я просто не мог заставить его работать с вашим методом. Не знаю, что я сделал неправильно. Оттуда я решил сделать снимок кода с помощью Flexbox, поскольку я думаю, что это проще. Flexbox очень мощный, единственная проблема - поддержка IE, на данный момент это не так уж и здорово. Но даже в этом случае, если вы занимаетесь веб-разработкой в ​​интерфейсе, я предлагаю вам взглянуть на это: [a-guide-to-flexbox] (https://css-tricks.com/snippets/css/a- guide-to-flexbox /) –

+0

Я могу использовать те же функции из абсолютного позиционирования и т. д.? – JavaCake