[css] background

0

Witajcie,
Mam taki mały problem :)

Mam dwa obrazki pod menu, pierwszy główny, drugi ma wchodzić w momencie rozciągania się diva.
http://img230.imageshack.us/img230/4840/boxvf.jpg
http://img826.imageshack.us/img826/7205/box2.jpg

Na głupiego wpisałem:
background:url(images/box.jpg) no-repeat, url(images/box2.jpg);
Ale wiadomo, niezgodność ze standardem, działa pod FF,chrome, ale pod IE oczywiście nie :P reszty nie sprawdzałem.
Jakieś propozycję jak to zrobić?
Mogę podzielić na 3 bloki to tło i wtedy problemu nie będzie, ale więcej kodu, może jakiś magik coś wymyśli :)
Z góry dzięki [browar]

0

Nie chodzi o niezgodność ze standardem. Wiele obrazków tła dla jednego elementu praktycznie na pewno będzie można używać w CSS 3. I wtedy będzie to już standard pełną gębą. Póki co jest to "niedoszły standard" :).

Oto dwie możliwości:

A) Stosujesz dwa elementy, jeden w drugim (jeden już masz, więc dodaj drugi, otaczający). W tle tego zewnętrznego umieszczasz to małe tło, które ma się powtarzać, z repeat-x. W tle wewnętrznego umieszczasz to drugie tło, bez repeat-x.

B) Robisz jednak JEDEN obrazek bez żadnego repeat-x. Zrób go tak, że na dole masz ten gradient, a u góry tą niską grafikę, która ma się powtarzać. Ale tę grafikę rozciągnij/powiel w pionie tak, żeby obrazek miał w sumie np. 1000px wysokości. Albo 2000 px. Tyle, żeby wystarczyło (sprawdza się to jedynie gdy wiesz na pewno, że menu będzie niezbyt wysokie). Następnie umieszczasz obrazek w tle tego jednego elementu, ale używasz takiego pozycjonowania (tu: prawdopodobnie "left bottom"), by stale widoczny była tylko ta część z gradientem. Jeśli menu zrobi się wyższe, to będzie widoczna coraz większa część góry. Ta góra ma zapas powiedzmy tego 1000 czy 2000 pikseli wysokości. Aha: użyj formatu PNG.

0

Dzięki :)
Pierwszy sposób ok, drugi też chociaż jeszcze zobacze jak z rozmiarem obrazka wyjdzie.

CSS 3 owszem, lecz co z tego że wejdzie, jeśli nadal 60% ludzkości będzie korzystała ze starego IE :/
I robisz 2 razy to samo...
No ale cóż, to się chyba nigdy nie skończy, no chyba, że ktoś mądry zasiądzie na głównym stołku w MS ;]

Pozdrawiam

0

@blackshock:
Za Gatesa (bardzo inteligentnego kolesia), gdy Microsoft przeżywał rozkwit, IE szło raczej w innowację niż trzymanie się standardów. Płacimy za to dziś, ale należy pamiętać, że mimo wszystko to IE wygrało wojnę przeglądarek, a pod koniec tamtego okresu powstał np. Ajax (tak, wymyślił to Microsoft!).

Teraz rządzi Ballmer i może wygląda on na psychopatę, ale w rzeczywistości jest... matematycznym geniuszem. Może nie siedzisz aż tak bardzo w branży i tego nie śledzisz, ale powiem Ci -- wcale nie w tajemnicy ;) -- że teraz IE idzie w dobrą stronę. Już wersja 8 stanowiła naprawdę spory krok (również dzięki temu, że MS zatrudnił Molly E. Holzschlag, "Królową Standardów Sieciowych"). Obsługa CSS 2.1 jest w IE8 bardzo przyzwoita. IE9 idzie jeszcze dalej. Obsługa standardów jest teraz dla zespołu IE jednym z priorytetów. Podobnie, Microsoft robi co może, by... ubić stare IE, w tym również IE6.

0

Zgadzam się, idzie w dobrym kierunku i mam nadzieję, że wreszcie będzie dobrze. Wielki plus dla MS za akcje przeciw IE6 ;)
Dobra bo offtopic robimy :)
Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1