Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][CSS]rozjeżdzające sie menu i obrazki
Forum PHP.pl > Forum > Przedszkole
topgun777
Robiłem ostatnio taką stronkę no i dostalem info ze na gorze na niektórych telefonach (np. k850i) się rozjeżdza góra tak ze robią sie przestrzenie miedzy obrazkami czy moze ktos doradzic co poprawic? Opakowałem obrazki w divy i robilem rózne manewry ale to nic nie dało ponoć.
Spawnm
strona się też rozwala w ie6 , między obrazkami robią się odstępy bo nie są w jednej linijce w pliku ,
strona się nie centruje, nie dawaj margin:0auto dla body tylko daj kontener , dodatkowo nie margin:0px auto tylko 0 auto .
topgun777
kontener jest (wraper) wycentrowałem jak mowiles usunałem z body 0px auto
ale pod ie testerem widze nadal taką rozsypke jak to poprawić?
R&R
Witam! smile.gif

Możesz powiedzieć co to jest:

  1. <p style="text-align:center;"><br/>
  2. <a href="sms:?body=WWF Polska: Ty takze mozesz pomoc niedzwiedziom przetrwac trudne czasy. Przekaz 1% podatku i chron polskie niedzwiedzie, wiecej informacji na http://m.wwf.3bee.pl/ ">
  3. <img src="http://m.wwf.3bee.pl//img/cache/00a4767a3d9d57151006aa1a6f2f6216" style="margin:0 auto;" alt="poleć znajomemu"/>
  4. </a>


hmm może to miało być tak:

Kod
<p style="text-align:center;"><br />
<a href="sms:?body=WWF" title="Polska: Ty takze mozesz pomoc niedzwiedziom przetrwac trudne czasy. Przekaz 1% podatku i chron polskie niedzwiedzie, wiecej informacji na http://m.wwf.3bee.pl/"><img src="http://m.wwf.3bee.pl//img/cache/00a4767a3d9d57151006aa1a6f2f6216" style="margin:0 auto;" alt="poleć znajomemu" /></a>


Jakaś bzdura niechcący wyszła w kodzie linku, choćby ten podwójny slash przed img...

Dam Ci pewną radę dla IE
Otóż ten głupek IE nie znosi przenoszenia do nowej linii np. zakończenia linka, czy komórki z pociętą grafiką, skutkiem czego są tzw. rozstępy..

przykład - zły:

img...>
</td>

A teraz dobrze dla IE:

img...></td>

To samo z linkami, musi byc tak:

<a href... = blabla...><img src...blabla></a></td>

Popraw to i zapomnij o kłopotach pod IE winksmiley.jpg
Ponadto przemyśl jakie tam naprawdę masz linki..

Pozdrawiam smile.gif
rr
topgun777
linki są ok jak pisałem to jest stronka na komy zgodna z xhtml-mp 1.0 nie da sie moze jakos bez tabelek?
sowiq
Cytat(Spawnm @ 4.03.2009, 14:15:26 ) *
między obrazkami robią się odstępy bo nie są w jednej linijce w pliku
Bzdura. Nadajesz display:block, float: left i możesz dawać nawet 15 nowych linii pomiędzy obrazkami, a będą one do siebie przylegały. HTML nie służy do określania wyglądu dokumentu. A już na pewno nie za cenę pisania wszystkiego w jednej linijce.
R&R
Być może to bzdura.. tym nie mniej nie chodziło tu zupełnie o pisanie wszystkiego w jednej lini, ale zakończenia tagów.
Szczególnie komórki po img i linka z obrazkiem. Dotyczy to IE6 głównie...

Jeśli bawiłeś się Photoshopem, i była pocięta grafa, to wystarczyło dać enter przed kończącym tagiem komórki, po img... />, żeby były szczeliny widziane pod IE.
niestety...

Tym nie mniej w linkach jest bzdura, co podałem we wklejonym kodzie.

Pozdrawiam smile.gif
rr.


// Edit:

Pomyślałem, że może nie qmasz o czym mówie, zobrazuję to wiec..
Generalnie przejrzysty kod, niemal profeska..
Jednak osobiście nie lubie takich kwiatków jak źle pozamykane tagi szczególnie w xhtml'u

np.:
<br/>
<hr/>
<img... alt="#"/>
<meta... ..."/>
zamiast:
<br />
<hr />
<img... alt="#" />
<meta... ..." />

A wracając do szczelinek pod IE..
Wkleje tu trochę kodu z Twojej stronki.
Są poprzenoszone enterem (+ spacje), zamkniecia tagów
Kod
    <div id="menu_wraper">
         <table id="menu"><tr>
        <td><a href="http://m.wwf.3bee.pl/wwf/">
        <img src="http://m.wwf.3bee.pl/img/cache/a89ea51ff37a07f3385354e3aa104dc7" alt=""/>
      </a></td>
            <td><a href="http://m.wwf.3bee.pl/wwf/newsletter">
        <img src="http://m.wwf.3bee.pl/img/cache/7a1c9c5bd8f979a2833f55c6876eb075" alt="newsletter"/>
      </a></td>
            <td><a href="http://m.wwf.3bee.pl/wwf/download">
        <img src="http://m.wwf.3bee.pl/img/cache/b2c78ab8af2443753e0056089398a585" alt="download"/>
      </a></td>
            <td><a href="http://m.wwf.3bee.pl/wwf/contact">
        <img src="http://m.wwf.3bee.pl/img/cache/a080730b5f129ccd54504ddd45331084" alt="contact"/>
      </a></td>
            </tr></table>
    </div>


Zrób test i zapisz to w tej formie:

Kod
    <div id="menu_wraper">
        <table id="menu"><tr>
            <td><a href="http://m.wwf.3bee.pl/wwf/">
                <img src="http://m.wwf.3bee.pl/img/cache/a89ea51ff37a07f3385354e3aa104dc7" alt="" /></a></td>
            <td><a href="http://m.wwf.3bee.pl/wwf/newsletter">
                <img src="http://m.wwf.3bee.pl/img/cache/7a1c9c5bd8f979a2833f55c6876eb075" alt="newsletter" /></a></td>
            <td><a href="http://m.wwf.3bee.pl/wwf/download">
                <img src="http://m.wwf.3bee.pl/img/cache/b2c78ab8af2443753e0056089398a585" alt="download" /></a></td>
            <td><a href="http://m.wwf.3bee.pl/wwf/contact">
                <img src="http://m.wwf.3bee.pl/img/cache/a080730b5f129ccd54504ddd45331084" alt="contact" /></a></td>
            </tr></table>
    </div>


BTW. porównaj oba kody i znajdź szczegóły, co może Ci pomóc w przszłości..


Kolejny ptrykład...
mamy tu dwa obrazki i poza źle pozamukanymi tagami, gdzie właśnie powinny być spacje,
za to w drugiej grafice link przed zamknieciem cudzysłowem, ma spacje.. czy to poprawne?
Spójrz:

Kod
    <p id="img">
    <br/>&nbsp;<br/>
    <img src="http://m.wwf.3bee.pl/img/cache/af7ec80e1660647b2ce38bbc40d9efad" alt="chrońmy" style="margin:0 auto;"/><img src="http://m.wwf.3bee.pl/img/cache/23f34ef468d6bf0b0ad269be66b40266 " alt="misio" style="margin:5px auto;"/>
    <br/>
    </p>


Proponuję taki zapis:

Kod
    <p id="img">
        <br />&nbsp;<br />
        <img src="http://m.wwf.3bee.pl/img/cache/af7ec80e1660647b2ce38bbc40d9efad" alt="chrońmy" style="margin:0 auto;" /><img src="http://m.wwf.3bee.pl/img/cache/23f34ef468d6bf0b0ad269be66b40266" alt="misio" style="margin:5px auto;" /><br /></p>


Popraw to i sprawdź.


Albo ta stopka "Poleć znajomemu".. czy zadałeś sobie trud i tam kliknąeś? czy najechałes kursorem i zobaczyłeś nazwę tego linku?
Sorry, ale pokaż mi dowolną specyfikacje, która dopuszcza przerwy w linku pomiędzy "cudzysłowami"

Kod
<div id="stopka">
<hr />
<p style="text-align:center;"><br/>
<a href="sms:?body=WWF Polska: Ty takze mozesz pomoc niedzwiedziom przetrwac trudne czasy. Przekaz 1% podatku i chron polskie niedzwiedzie, wiecej informacji na http://m.wwf.3bee.pl/ ">
<img src="http://m.wwf.3bee.pl//img/cache/00a4767a3d9d57151006aa1a6f2f6216" style="margin:0 auto;" alt="poleć znajomemu"/>
</a>
<br/>


Ja bym zapisał to tak:

Kod
<div id="stopka">
<hr />
<p style="text-align:center;"><br />
<a href="sms:?body=WWF" title="Polska: Ty takze mozesz pomoc niedzwiedziom przetrwac trudne czasy. Przekaz 1% podatku i chron polskie niedzwiedzie, wiecej informacji na http://m.wwf.3bee.pl/">
<img src="http://m.wwf.3bee.pl//img/cache/00a4767a3d9d57151006aa1a6f2f6216" style="margin:0 auto;" alt="poleć znajomemu" /></a>
<br />


Dokonaj tych zmian i sprawdź jak to widać pod IE6..
Nie odbieraj tego personalnie, tu chodzi o kod strony ok?

Pozdrawiam.
erix
Cytat
Kolejny ptrykład...
mamy tu dwa obrazki i poza źle pozamukanymi tagami, gdzie właśnie powinny być spacje,

Nadajesz zoom:1 dla zabugowanych obiektów i Twoja teoria jest obalona. winksmiley.jpg
topgun777
link działa bez problemu stronka jest mobilna wiec najlepiej ja testuj pod komem, co do tych tagów w IE to moge zrobic ale ogolnie to ma to chodzić na komie a nie pod IE. Jesli ktos moze to proszę o sprawdzenie jak sie zachowuje to na jego komie i niech napisze swoje uwagi. Najbardziej mi zalezy na teście na poniższych sprzetach do ktorych nie mam dojscia: nokia 6500s, se k850i, mota m375 i mota V3.
R&R
hmm i co ja mam Ci powiedzieć? Skoro nawet nie zadałeś sobie trudu, żeby wykonać to o co prosiłem?

Wykonałem wiele layout'ów, kroiłem grafiki, i później za pomoca najlepszego na świecie "tabelkowca", jakim był niewątpliwie Dreamweaver, zamieniałem na bg w komórkach tabeli itd..
Jednak Dreamuś miał tę cechę, że rozpieprzał te strony.. Miałem wtedy jeszcze IE6 i były holerne szczeliny. Oczywiście stosowałem rózne rozwiązania, choćby zooma 1.0 itd.. wymuszając włączenie trybu "hasLayout" ale zauwazyłem zupełnie przypadkiem, po porównaniu plików, że Dreamuś przenosił zakończenie linka i komórki do nowej linii.. Może obecnym tu panom, wydaje się to być śmieszne, to niestety, ale najgłupszym głupkiem ze wszystkich głupków jest IE. Nie dziwię, się, ponieważ programiści M$shitu, dostają za mało.. gdyby mieli normalne pensje, to nie było by na świecie lepszej przeglądarki.. ot co..

Wyglądało to tak.. jeśli była taka konstrukcja:

<td><a href="http://m.wwf.3bee.pl/wwf/">
<img src="http://m.wwf.3bee.pl/img/cache/a89ea51ff37a07f3385354e3aa104dc7" alt="" /></a></td>

To było ok i żadnych szczelinek i bez żadnej łaski i dodatkowych zabiegów

Natomiast gdzy było tak:

<td><a href="http://m.wwf.3bee.pl/wwf/">
<img src="http://m.wwf.3bee.pl/img/cache/a89ea51ff37a07f3385354e3aa104dc7" alt=""/>
</a></td>

To właśnie w tym miejscu były szczelinki..

Ten głupek np. w listach powiedzmy w linkach w menu <ul><li>link.. to do czcionki 12pxelowej dolicza na górce około 4px przestrzeni! co jest oczywiście chore..

Zaraz przejdziemy do zoomowania..

Zobacz ten obrazek:



To własnie robi IE gdy nie ma extra wymuszonego trybu "hasLayout"

A kiedy mu się go włączy to proszę:




teraz mały przerywnik.., wyjaśnijmy co dzieje się w tym topie..

Otóż kolega autor, ściemnia i nie wykonał niczego o co został poproszony, natomiast zaczynają się pojawiac tu ludzie którzy piszą cvoś do mnie, zamiast napisac do autora..

Sam autor wykazał się lenistwem a ja takich nie lubię! Poproś kolego tych co tu mieli cos do powiedzenia, bo ja to mogę Ci conajwyżej opowiedziec bajkę Adama Skłodowego: "Zrób to sam"

O co kaman? dzisiejsze pokolenie jest po prostu chore.. Kasa to Bóg, najlepiej żeby wszyscy inni zrobilia za niego, a papierzem, jest ten debil i zdrajca naszego narodu niejaki taskutas.. Media robią wam totalną sieczke w głowach, jesteście leniwi i czekacie aż ktoś zrobi za was..
Ale sa wyjątki, jestem niemal codziennie na tym forum od połowy 2003 i znam tu większość i te dziwne obyczaje.. mniejsza o to, np. taki młody człowiek, 18/19 lat, jakim jest @erix jest tego zaprzeczeniem, gościu ma mój szacunek dla swojej wiedzy, btw. moje gratulacje! zadroszcze Ci chłopie! sam bym chciał to osiągnąć no i btw. dzięki za piękny skypcik do operki! To już 30 w mojej kolekcji hehe

Chłopaki, następuje to pewne nieporozumienie.. Wiem co tu się wyprawia i wg. mnie to przypomina parodię StarTrucka, polecam!..
Nie stanowię zagrożenia dla waszych punktów itp.. mnie tam to lotto.., nie bardzo mam ochotę powieszić sobie avatar, ponieważ pod nim jest ten chory pypeć.. to uwłaszcza mojej godności, nie jestem tu dla jakiś debilnych punktów, mogę jedynie uszanować decyzję właścicieli tego przybytku, rozumiem też, że niektórzy w ten sposób chcą pokazać, że są wdzięczni.., ale ja chłopaki na to nie poluje! Mieszkałem paręnaście lat za granica niedługo znowy spadam tym razem na forever, w niemczech mam wiele for, w tym jestem współżałożycielem i jednym z adminów naprawdę molocha.. Boli mnie że takie tureckie scriptskidis rozpieprzają nasze polskie strony, że tak mało się z tym robi, że wygadują o nasz polakach takie bzury, dając przykłady, nawet się nie przyznaje skąd jestem.. Ale boli mnie to.., Kiedyś w stanach widziałem tzw. "polski kubek", dlaczego był polski? bo miał ucho w środku..
Jeśli tu jestem już w końcu zarejestrowany, to dla tego że chcę pomóc, bez jakiś debilnych punktów itp.. to jest dobre dla mas i nabijaczy postów.., ale nie dla mnie </hought></ot>

Nie czepiajcie sie mnie ok? To źle że radzę człekowi, żeby zadbał najpierw o kod, ponieważ już samo to może wiele zmienić? hyba do innych szkół chodziliśmy..

Tak nie napiszę tego za Ciebie i zdecydowanie zapomnij, dodatkowo składa się na to fakt, że każesz mi czuć się jakimś niedoukiem.. więc wiesz, żeby Ci pomóc, to muszę się podszkolić z lekka..

Wróćmy do tej stronki..
Co do telefonów, to właśnie wymieniłem sobie na n97 i mam IPhona 3g i jest ok.. Dam Ci radę.. po co będziesz cokolwiek robił.. Daj tylko jedno zdanie z linkiem na dole:
"Tę stronę najlepiej widać pod przeglądarką OperaMobile" to napewno żaden obciach a Opera zachowuje się po prostu wyśmienicie..

cdn ... to z powodu ograniczeń na php.pl





cd..


Teraz skoncentrujmy się na Twojej stronie.. Tak nie napisze tega za Ciebie, ale przynajmniej kopsnę Ci parę tipsów..

Np. @Erix pisał o tym, żeby ew. edwiedającego Twoją stronę IE, "kopnąć w mordę", żeby wymusić na nim tryb "hasLayout"

Opsługiwane tryby w wymuszeniu hasLayout to:

Cytat
CSS property: Value;
display: inline-block;
height: any value;
float: left or right;
position: absolute;
width: any value;
writing-mode: tb-rl;
zoom: any value;


Poczytaj trochę specyfikacji i poszukaj w necie reszty info ja sorry nie mam czasu:
http://msdn.microsoft.com/en-us/library/bb250481.aspx


Okay, teraz pozoomujmy sobie z lekka..

przykładowo, miałem taką stronkę gdzie są dwa formularze z floatem:




Co się wydarzy, kiedy na początku styli wrzucę: * { zoom: 1.0 } ?

Otórz rozpieprzy to floaty i bulets, pod IE:




Mówisz, że nie będziesz się przejmował głupim IE i ma to chodzić na komie itp..

Chodzi o to, że jak to zwalczysz pod IE:










Więc kiedy to naprawisz, żeby było git pod tymi głupkami IE, to już będzie wszędzi indziej ok!


Dlaczego nie zdrobisz testu:

Kod
    <div id="menu_wraper">
        <table id="menu"><tr>
            <td><a href="http://m.wwf.3bee.pl/wwf/">
                <img src="http://m.wwf.3bee.pl/img/cache/a89ea51ff37a07f3385354e3aa104dc7" alt="" /></a></td>

            ....itd

    </div>


Ale może zanim to zrobisz to wrzuć tło do tabeli czy do diva "menu_wraper" np. color red i daj na początek styli zooma ale wstaw powiększenie na 2, wtedy pod IE powiększy Ci te elementy i powstaną szczeliny, wyraźne!, wtedy wrzuć tę tabelke menu tak jak Ci to pokazałem wyżej.


Teraz trochę wyjaśnień..

Zoom włącza obsługę hasLayout w IE, przez co ten dokładniej wyświetla różne rzeczy, jednak działa to od wersji 5.5, a wcześniej stosowało się
- display: inline-block; Oczywiście trzeba jeszcze powrócić.. przykład:

Kod
div {display: inline-block; width: 400px; background: #fcc;}
div {display: inline;}


cdn... niestety..


cd... (3/3)

Ciekawym rozwiązaniem "wieloprzeglądarkowym" jest :

Kod
/**
Hack for cross-browsing display:inline-block;

Seen on: http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/

**/

element
{
    width: 200px;
    min-height: 250px;
    border: 1px solid #000;
    display: -moz-inline-stack;
    display: inline-block;
    vertical-align: top;
    margin: 5px;
    zoom: 1;
    *display: inline;
    _height: 250px;
}


A to przykład zastosowania do menu:

Kod
li {
       width: 200px;
       min-height: 250px;
       border: 1px solid #000;
       display: -moz-inline-stack; /* FF2*/
       display: inline-block;
       vertical-align: top; /* BASELINE CORRECCIÓN*/
       margin: 5px;
       zoom: 1; /* IE7 (hasLayout)*/
       *display: inline; /* IE */
       _height: 250px; /* IE6 */
   }


Inny przykład zastosowania:

Kod
.box {
display: -moz-inline-box; /* For FF */
display: inline-block; /* IE < 8 needs this tripped back to display: inline; to make it work on blocks */
width: 150px;
background: #eee;
margin: 5px;
border: 1px solid #000;
text-align: left; /* to left align text within divs when container has been set to center */
vertical-align: top; /* explicitly declare as Moz inline-box auto aligns top */
}

.box div {width: 150px;} /* nested block element for FF or text runs out of -moz-inline-box */
.box p {margin: 0.5em;}
</style>

<!--[if lt IE 8]>
<style type="text/css" media="screen">
.box {display: inline;} /* this is to make inline-block work < IE8 */
</style>
<![endif]-->

</head>
<body>


Zoom nie przechodzi validacji i musi być w ochronce, również display:inline-block; IMHO jest w specyfikacji:
http://www.w3.org/TR/CSS21/visuren.html#propdef-display

idąc dalej, do zabugowanych elementów, jeśli nie zadziała ale niekoniecznie, można i połączyć..
Mozna zastosować dla starszych modeli IE - _height:1%;

Innym ciekawym rozwiązaniem dla wielu przeglądarek jest taki przykładowy zapis:

width:20px;#width:23px:_width:20px;

I tak: pierwszą wartość przeczyta FF, drugą IE7, a trzecią IE6!

Dotyczy to również wszystkich innych atrybutów css.., więc zawsze można sobie jakoś poradzić..

Żeby sprawdzic starą przeglądarką IE6 czy 5 czy jest wymuszony tryb hasLayout można w po odwiedzeniu danej strony wpisac w pasku adresu:

java script: alert(eid.currentStyle.hasLayout) i dać enter. Dostaniemy okienko ostrzeżenia w ktorym to zobaczymy. Dział na wcześniejszych wersjach IE!


Teraz kilka praktycznych przykładów, jak chować kod i jakiego użyć..

przykłady:

Kod
/* IE/Win catchall hack - but hide from mac \*/
* {height: 1px;}
/* end hide */


Warto jednak zastosować tu wartość %

Kod
/* hide from mac \*/
* html element {height: 1%;}
/* end hide */


Można to zapisac bardziej uniwersalnie..

Kod
/* \*/
* html .elementlayout { height: 1%; }
/* */


Tak to są haki, jednak sam zoom nie potrzebuje haków, poza ukryciem, ponieważ strona nie przechodzi validacji..

Jednak taki zapis dla menu: a {display: block; zoom: 1;} niestety potrzebuje fixa, ponieważ będzie jednak utrudniona nawigacja.

Przykład ukrycia dla innych przeglądarek:

Kod
<!--[if lte IE 6]>
<style>
.elementlayout { height: 1px; }
</style>
<![endif]-->

<!--[if IE 7]>
<style>
.elementlayout { zoom: 1; }
</style>
<![endif]-->


I tak włączenie hasLayout objawi się takimi efektami:

width, height (aż do 'auto')
max-width, max-height (do 'none') (in IE 7)
position (do 'static')
float (do 'none')
overflow (do 'visible') (in IE 7)
zoom (do 'normal')
writing-mode (od 'tb-rl' do 'lr-tb')


Mozna jeszcze spróbować z .elemntlayout { min-height: 0; }

Napewno nie wolno dawać * {_height: 1px;} do wszystkiego!
Użycie zoom: 1.0 czy display: inline-block włącza tryb hasLayout
Dlatego warto, zanim cokolwiek.. dac na początek styli * { position: relative; zoom:1.0 } i zobaczyć jak wyglada nasza stronka...

Tak, @Erix nie wiedzieć czemu dał ł do quote z moim z błędami tekstem, ale jak sądzę miał na myśli rozwiazanie twojego problemu..
Nie jest z tym tak prosto, trzeba wszystko rozważyć, czasami lepiej zastosować: display: inline-block;

Proponuje jednak, żebyś zaczął od tego co napisałem na początku i Dreamweaver'ze..

Rozejrzyj się po necie, poniewaz jest multum informacji na ten temat. A do innych mam też propozycję..
- jeśli ktoś czegoś nie wie, to niech nie kieruje do forumowej szukajki, raczej do google, ponieważ php.pl jest świetnie wypozycjonowane i w idać tam każdy topik.
Natomiast forumowa szukajaka, mimo cachowania, zużywa multum zasobó i powoduje multum zapytań do bazy, więc jak zależy wam na tym miejscu, to nie kierujcie tam ludzi, szczególnie jak sami nie jesteście w stanie udzielić odpowiedzi. Uwaga!, nie pisze o tym topie tylko ogólnie, ponieważ jest niestety tu nagminne.

Mam nadzieję, że moje informacje się komuś przydadzą, więcej nie zajrzę do tego topa and astalavista.

Pozdrawiam smile.gif
rr.
sowiq
[ironia]
@R&R,
jesteś zajebisty...
[/ironia]
R&R
qrna @Sowiq hehe miałem tu wiecej nie zajrzeć.. ale odpowiem tylko Tobie, jestem po prostu rozrywkowym gosciem ok?
po za tym to my sie znamy, ale nic Ci nie powiem, domyśl sie.. hehe
erix
Komentarze nie mające nic wspólnego z tematem wysyłajcie sobie przez PW.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.