ďťż

[HTML/CSS]komorka wieksza od zawartosci - czemu?

       

Podstrony


telcocafe

Witam,
mam taki kod:
<td width="178" height="453" STYLE="background-image: url(images/lay_04.jpg); vertical-align: top" cellpadding="0" cellspacing="0"> <table cellpadding= "0" cellspacing="0" STYLE="background-color: red; position: relative; left:10px"> <tr> <td cellpadding= "0" cellspacing="0" STYLE="background-color: blue;"> <a onmouseover='przycisk1.src="przycisk1nad.jpg"' onmouseout='przycisk1.src="przycisk1.jpg"' href="__link__" border="0"> <img src="przycisk1.jpg" name="przycisk1" valign=center STYLE="border: 0px" /> </a> </td></tr> <tr> <td cellpadding= "0" cellspacing="0"> <a onmouseover='przycisk2.src="przycisk2nad.jpg"' onmouseout='przycisk2.src="przycisk2.jpg"' href="__link__"> <img src="przycisk2.jpg" name="przycisk2" valign=center STYLE="border: 0px"/> </a> </td></tr></table></td>
jest to fragment.
Menu jest w jednej komorce tabeli (lewej), a w prawej komorce jest reszta strony.
To jest właśnie kod tej lewej komórki...
no i problem jest taki, że przyciski, które są w menu powrzucałem do nowej tabeli i każdy przycisk jest w nowym wierszu (i naturalnie nowej tabeli).
Jednak nie iwem czemu pomiędzy tymi przyciskami jest przerwa - kilka pixeli (4-5). Żeby dowiedzieć się co ją powoduje pobawiłem się z kolorem tła komórek i wyszło, że właśnie one są za wysokie w stosunku do obrazka. (z góry , lewej i prawej strony pasują idealnie, ale od dołu tek komórki wystają i przez to przyciski nie są idealnie jeden pod drugim.)

W Operze wszystko działa idealnei (są pod sobą bez zadnej przerwy), jednak IE coś nie pasuje;/
podobnie jest jak powsadzałem te przyciski w divy (w operze jest dobrze, a w IE divy wystają ponad przycisk z dołu - i dodatkowo z prawej strony też, sięgają z prawej strony aż do końca tabeli!; spany tak samo wystają, ale z prawej strony nie aż tak mocno)

Pozdrawiam i proszę o pomoc, bo już kompletnie nie mam pomysłu co może to powodować;/
Ka-lolek



1. nie używaj tabel tylko rób na samych div`ach
2. ale skoro już to skoro na operze chodzi dobrze to i na FF też bo używają podobnego (jak nie tego samego) silnika. IE z kolei korzysta z innego. Idąc tym tropem proponuje zrobić tak, że w głównym kodzie .css zmniejsz wysokość komórki tak żeby na IE wyświetlało się wszystko dobrze.
Następnie dopisz

html>body td { }

ta klauzula jest nie czytana przez IE zaś przez FF i inne przeglądarki jest prawidłowo interpretowana. W tej części napisz tak jak było wcześniej przed poprawkami dla IE i wszystko powinno być ok

http://www.mynthon.n...s/szybkie_hacki tam masz sporo hacków na IE. wykorzystaj.

@Dawid_fix
napisałem prezcież, że z divami jest to samo:/

czyli chcesz powiedzieć, że w IE zawsze jest tak, że div zostawia obramowanie dookoła obiektu, który w nim się znajduje?
nie da się go usunąć?
to przecież bez sensu:P musi być jakiś sposób...
tak samo z tabelami.
jeżeli ludzie mają przycisk jako link, to jak wsadzają je aby były obok siebie?
pozdrawiam



daj w body margin i padding na 0 to po pierwsze. A po drugie. W moim sposobie ustalisz ich wysokość tak żeby ci nic nigdzie nie wystawało.

w html>body td{}
wstawic caly kod (tabele) pomiedzy te znaczniki: { } ?

i przeciez jezeli zmienie wysokosc komorki, to bedzie ona tez widziana przez interpretator zarowno FF i Opery jak i IE.
Wiec w FF i Operze bedzie 2x ten sam fragment. Musialbym jakos wrzucic ten kod tak zeby byl widoczny tylko przez IE?
...

pozdro

słuchaj to działa na tej zasadzie, że:
jeżeli napisz normalnie
1)td{ kod css }
2)html>body td{ kod css} to
IE zinterpretuje tylko nr.1 ponieważ nie rozumie czegoś takiego jak html>body więc to omija zaś FF i Opera zinterpretują znacznik td wg instrukcji po html>body a nr.1 oleją

hmmm ale czemu Opera oleje td{} jak do tej pory to czyta?:P skad bedzie wiedziala, ze ma akurat ten pierwszy sposob olac , skoro ona czyta obydwa (przynajmniej tak mi sie zawsze zdawalo xD)

ponieważ Opera napotka na klauzule body>html. Jest to taki mały trik który pozwala na omienięcie różnic między IE i pozostałymi przeglądarkami :)
IE nie rozumie html>body więc tego nie interpretuje a dla przeglądarek opartych na innym silniku jest to zrozumiałe, a więc interpretują td wg. styli po html>body

nie wiem czy mnie dobrze zrozzumiales...
czyli jak napisze w jednym dokumencie
body<html td{ bleble: bleble1}
i pod spodem
td{blebleble: bleble2}

to wszystko bedzie ok? tzn. Opera przeczyta TYLKO body<html
a IE TYLKO td ?

tak...

tylko zacznijmy od teg, że nie body<html tylko body>html :P

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.