2012-10-10 19 views
7

Czy istnieje sposób na wyczyszczenie absolutnie pozycjonowanych elementów za pomocą CSS? Tworzę stronę, na której potrzebuję, aby każda część witryny (element sekcji) była absolutnie ustawiona i chcę zastosować stopkę z zawartością poniżej tych elementów.
Próbowano względnie ustawić nagłówek i stopkę, aby sprawdzić, czy wzięto pod uwagę całkowitą wysokość, ale stopka nadal jest "uwięziona" pod elementami przekroju. Jakieś pomysły?Czy możliwe jest wyczyszczenie całkowicie pozycjonowanych elementów za pomocą CSS?

<header style="position: relative;"></header> 

<div id="content" style="position: relative;"> 

    <section id="a" style="position: absolute;"></section> 

    <section id="b" style="position: absolute;"></section> 

    <section id="c" style="position: absolute;"></section> 

    <section id="d" style="position: absolute;"></section> 

    <section id="e" style="position: absolute;"></section> 

</div> 

<footer style="position: relative;"></footer> 
+1

Elementy pozycjonowane bezwzględnie nie są elementami pływającymi, dlatego nie ma to jak usuwanie ich. –

+0

Powiedziałbym również, że nie ma sposobu na wykonanie tego bez JavaScriptu. – insertusernamehere

+0

Rozumiem. Ale rozumiesz, o co mi chodzi, kiedy mam na myśli "czysty"? Zachowanie, aby umieścić następnego rodzica poniżej poprzedniej treści. –

Odpowiedz

14

Absolutnie-umieszczone elementy nie są już częścią układu - pozycje dominujące nie mają pojęcia, jak wielkie absolutnie-pozycjonowane elementy potomne są. Musisz sam ustawić wysokość "treści", aby nie nakładała się na stopkę.

2

Nie należy używać elementów pozycjonowanych bezwzględnie dla układów, ponieważ elementy te są usuwane z normalnego przepływu i nie mają już wpływu na elementy wokół nich. I nie są pod wpływem innych elementów.

Użycie pozycjonowania bezwzględnego do przenoszenia elementów wewnątrz kontenera, gdy pozwalają na to warunki.

Dla elementów pływających proponuję użyć konkretnej techniki czyszczenia o nazwie clearfix. Używam tego w sposób religijny.

http://nicolasgallagher.com/micro-clearfix-hack/

http://jsfiddle.net/necolas/K538S/

+0

Jestem bardzo obeznany ze sposobem podejścia do regularnej struktury, ale w tym scenariuszu potrzebuję tych elementów do absolutnej pozycji. Postanowiłem zamiast tego wybrać rozwiązanie JS. –

+0

@StaffanEstberg jeśli jest nadal możliwe, czy mógłbyś wysłać swoje rozwiązanie js? –

1

Gdyby to samo pytanie, wykonane wszystkie absolutny ustawione, ale niech pierwszy być względne, jak dla układu reagującego gdzie wysokość ulega zmianie, to pomogło śledzić wysokości elementów zmiany, wypowiedzenia w tym przypadku wszystkie elementy mają taką samą wysokość:

.gallery3D-item { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
} 
 
.gallery3D-item:first-of-type { 
 
    position: relative; 
 
    display: inline-block; 
 
}

Powiązane problemy