Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SWFObject i div
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
zibra
Witam,

mam taki kod:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2.  
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  4.  
  5. <script type="text/javascript" src="swfobject.js"></script>
  6. <script type="text/javascript">
  7. swfobject.registerObject("menuswf", "9.0.0");
  8.  
  9. <style type="text/css" media="screen">
  10. #menu {
  11. background-color: #000000;
  12. margin: 0px;
  13. padding: 0px;
  14. overflow: hidden;
  15. vertical-align: top;
  16. display: table-cell;
  17. width: 260px;
  18. height: 550px;
  19. }
  20. </head>
  21.  
  22.  
  23. <div id="menu">
  24. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="260" height="550" id="menuswf">
  25. <param name="movie" value="menu.swf">
  26. <param name="menu" value="false">
  27. <param name="quality" value="high">
  28. <param name="scale" value="noscale">
  29. <param name="bgcolor" value="#6D91AE">
  30. <param name="allowscriptaccess" value="sameDomain">
  31. <!--[if !IE]>-->
  32. <object type="application/x-shockwave-flash" data="menu.swf" width="260" height="550">
  33. <param name="menu" value="false">
  34. <param name="quality" value="high">
  35. <param name="scale" value="noscale">
  36. <param name="bgcolor" value="#6D91AE">
  37. <param name="allowscriptaccess" value="sameDomain">
  38. <!--<![endif]-->
  39. <a href="http://www.adobe.com/go/getflashplayer">
  40. <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player">
  41. </a>
  42. <!--[if !IE]>-->
  43. <!--<![endif]-->
  44. </object></div>
  45. </body>
  46. </html>


i div "menu" jest częścią grupy div-ów imitujących tabelkę. Gdy w stylach nie ma pogrubionego wiersza (czyli display: table-cell;) wszystko jest ok, gdy jednak jest (a jest chyba konieczny, bo bez niego psują się inne rzeczy) to pod animacją swf tworzy się 5px szpary, która rozsuwa diva i która bierze się nie wiem skąd. Problem występuje tylko w przeglądarce firefox. Czy ktoś ma jakiś pomysł jak to przeskoczyć?
michail_w
Ten pasek szarego koloru to podejrzewam jest tło o kolorze #6D91AE, czyli tło twojej animacji flash.
Ale odpowiedź na twoje pytanie jest o wiele prostrza niz myslisz.
Algorytm renederowania tabel
Pod powyższym adresem masz opisany w jaki sposób są renderowane tabele. Przeglądarka IE dostając w css display:table-cell; renderuje każda twoją komórkę podobnie jak element blokowy (np. div). Z kolei FF renderuje każdą komórkę jak element tabeli, to znaczy, że wszystkie elementy mają wysokość elementu zajmującego najwięcej miejsca. Czyli jeżeli masz 3 komórki obok siebie, w pierwszej tekst zajmuje wysokość 10px, w drugiej 30px, a w trzeciej 15px, to mimo wszystko wszystkie komórki będą wyświetlane z wysokością 30px (czyli najwięcej zajmującego elementu).

Aby poradzić sobie z problemem, ze swojej strony polecam użycie float.

Pozdrawiam
mad/
Polecam wyjść od tego szablonu i modyfikować go na czuja, będzie łatwiej:
<?xml version=-"1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" dir="ltr">
<head>
<title>tytuł</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset="utf-8""/>
</head>
<body>
<div id="menu">
<object type="application/x-shockwave-flash" data="menu.swf" width="260" height="550">
<param name="menu" value="false"/>
<param name="quality" value="high"/>
<param name="scale" value="noscale"/>
<param name="bgcolor" value="#6d91ae"/>
<param name="allowscriptaccess" value="sameDomain"/>
<p>Treść alternatywna</p>
</object>
</div>
</body>
</html>
Poza tym menu we flashu to nienajlepszy pomysł, nie będzie dostępne dla osób bez flasha, alternatywna treść też jest niezbędna.
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.