2011-09-13 15 views
9

Poszukuję odpowiedniej metody CSS, aby nałożyć div obrazów na inny div obrazów (nie obraz tła) bez używania position:absolute. Czy ktoś wie, jak to zrobić?Jak nakładać obrazy bez użycia stanowiska: absolutny?

+0

Dlaczego nie możesz użyć 'position: absolute'? –

+2

'position: absolute' w połączeniu z' position: relative' w rodzicu to bardzo dobry sposób na nakładanie się dwóch obiektów przy zachowaniu układu dla całej strony. Tworzy on samodzielny pojemnik, który można ułożyć w normalnym modelu pudełkowym HTML, ale w kontenerze używa się pozycji do tworzenia nakładania. – jfriend00

+1

Naprawdę musisz wyjaśnić, dlaczego starasz się unikać 'position: absolute', ponieważ jest to prawdopodobnie najlepsze rozwiązanie i prawdopodobnie istnieją sposoby na rozwiązanie tego, co Cię martwi. – jfriend00

Odpowiedz

2

position: absolute nie jest "niewłaściwy" - jest częścią specyfikacji CSS! Nie ma innego sposobu na umieszczanie elementów na innych elementach, chyba że będziesz się zastanawiał z position: relative lub może niektóre właściwości float.

position: absolute to najprostszy sposób na zrobienie tego. Co sprawia, że ​​myślisz, że to zły pomysł?


Jedynym rozwiązaniem jest użycie obrazu wewnątrz div z tłem, na przykład:

<div> 
    <img src="..."> 
</div> 

Następnie dać div background-image:

div 
{ 
    background: url(/images/foo.png) no-repeat; 
} 

Jednak dla wiele obrazów na pewno bym się trzymał position: absolute.

Istnieje glitchy demo demonstrujący efekt.

+2

jak wspomniano na oryginalnym wpisie, nie może zajmować się tłem w div i zgadzam się z pozycją: absolutna jest najłatwiejsza, ale nie idealna do responsywnego projektowania –

3

http://jsfiddle.net/HUUQ6/2/

można nałożyć/pokrywać elementy na górze siebie stosując ujemny margines. przykład:

#b{ 
    margin-left:-10px; 
} 

ten przesuwa element b w lewo 10px, nakładanie co jest po lewej stronie (przy założeniu, że jest to ekran: Typ elementu bloku, nie jest wbudowany, na przykład w przedziale).

+3

90% czasu, negatywne marże są złym pomysłem. Niektóre przeglądarki zawierają u nich błędy i nie zmieniają "przestrzeni rozłożonej" zarezerwowanej dla oryginalnego obiektu. Wiem, że OP prosił o pomysły, ale zaleciłbym, aby używali 'position: absolute;' over negative margins. – jfriend00

+0

@ jfriend00 Zgadzam się, ale "bez użycia pozycji: absolut" jest zasadniczą częścią pytania. –

+0

Odpowiedziałem na korzyść PO. Nie sądzę, że istnieje lepszy wybór niż pozycjonowanie bezwzględne dla nakładających się obiektów. Pomógłby, gdyby wyjaśnili, dlaczego starają się unikać pozycjonowania absolutnego. Podejrzewam, że nie rozumieją, jak używać 'position: relative' na rodzica. – jfriend00