Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: div+css
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
BDCC
Mam problem... Poprawiam stronę kolegi, która w każdej przeglądarce inaczej się wświetla... Jego strona była w tabelkach, ja w myśl o nowoczesności używam diva tongue.gif Jest pewien problem... Oto link do tego layu: lo.gif' target='_blank pod tym. Ja zrobiłem coś takiego:
  1. <?xml version="1.0" encoding="ISO-8859-2"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <style type="text/css">
  6. <!--
  7. * {
  8.        margin: 0;
  9.        padding: 0;
  10.        border: 0;
  11. }
  12.  
  13. body {
  14.        font: 12px Helvetica, Tahoma, Arial, sans-serif;
  15.        font-weight: normal;
  16.        color: #FFFFFF;
  17.        background: #4B4B4B;
  18.        margin: 0px auto;
  19.        padding: 0px;
  20.        text-align: center;
  21. }
  22.  
  23. h1 {
  24.        color: #FFFFFF;
  25.        font-size: 20px;
  26.        font-weight: bold;
  27.        text-decoration: none;
  28.        text-align: center;
  29.        font-face: Times New Roman;
  30. }
  31.  
  32. a {
  33.        color: #FFFFFF;
  34.        text-decoration: none;
  35. }
  36.  
  37. a:hover {
  38.        color: #FFFFFF;
  39.        text-decoration: none;
  40.        font-weight: bold;
  41. }
  42.  
  43. th {
  44.        background: #000000;
  45.        color: #FFFFFF;
  46. }
  47.  
  48. #glowny {
  49.        text-align: center;
  50.        background: #4B4B4B;
  51.        padding: 0px;
  52.        width: 777px;
  53. }
  54.  
  55. #top {
  56.        background: url(layout/logo.jpg) no-repeat top;
  57.        padding: 0px;
  58.        width: 777px;
  59.        height: 78px;
  60. }
  61.  
  62. #pasek {
  63.        background: url(layout/top_tlo.gif) repeat-x top;
  64.        padding: 10px;
  65.        font-weight: bold;
  66.        padding-top: 0px;
  67.        width: 777px;
  68.        height: 78px;
  69.        vertical-align: top;
  70.        text-align: left;
  71. }
  72.  
  73. #pasek a:hover {
  74.        text-decoration: underline;
  75. }
  76.  
  77. #lewe {
  78.        width: 150px;
  79.        background-color: green;
  80.        float: left;
  81. }
  82.  
  83. #srodek {
  84.        width: 400px;
  85.        background-color: grey;
  86.        float: left;
  87. }
  88.  
  89. #prawe {
  90.        width: 150px;
  91.        background-color: green;
  92.        float: right;
  93. }
  94.  
  95. #stopka {
  96.        width: 777px;
  97.        height: 20px;
  98.        background-color: pink;
  99.        clear: both;
  100. }
  101.  
  102. #deo {
  103.        background: url(layout/deo.jpg) no-repeat top right;
  104.        padding: 0px;
  105.        width: 111px;
  106.        height: 68px;
  107.        position: relative;
  108.        left: 656 px;
  109.            top: 190 px;
  110. }
  111. #deoz {
  112.        padding: 0px;
  113.        width: 777px;
  114.         position: relative;
  115.      
  116.            
  117. -->
  118.  
  119. <div id="glowny">
  120. <div id="top"></div>
  121. <div id="pasek"></div>
  122. <div id="deo">a</div>
  123. <div id="lewe">Menu lewe</div>
  124. <div id="srodek">Srodek</div>
  125. <div id="prawe">Menu prawe</div>
  126. <div id="stopka">Stopka</div>
  127. </div>
  128. </body>
  129. </html>


Co zrobić, aby było tak samo w divie? Próbowałem różnych metod i żadna nie pomaga....
Zajec
Wcisnąć tam img z float:right :-) Poza tym jeśli już zadeklarowałeś domyślne wartości margin i padding na 0 (poprzez * { }) to nie musisz ich ponownie zerować dla poszczególnych bloków.

http://zajec.net/test/pokemony

  1. <?xml version="1.0" encoding="ISO-8859-2"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <base href="http://www.pokemony.com/hack/" />
  6. <style type="text/css">
  7. * {
  8.       margin: 0;
  9.       padding: 0;
  10.       border: 0;
  11. }
  12.  
  13. body {
  14.       font: 12px Helvetica, Tahoma, Arial, sans-serif;
  15.       font-weight: normal;
  16.       color: #FFFFFF;
  17.       background: #4B4B4B;
  18. }
  19.  
  20. h1 {
  21.       color: #FFFFFF;
  22.       font-size: 20px;
  23.       font-weight: bold;
  24.       text-decoration: none;
  25.       text-align: center;
  26.       font-face: Times New Roman;
  27. }
  28.  
  29. a {
  30.       color: #FFFFFF;
  31.       text-decoration: none;
  32. }
  33.  
  34. a:hover {
  35.       color: #FFFFFF;
  36.       text-decoration: none;
  37.       font-weight: bold;
  38. }
  39.  
  40. th {
  41.       background: #000000;
  42.       color: #FFFFFF;
  43. }
  44.  
  45. #glowny {
  46.       margin: 0 auto;
  47.       background: #4B4B4B;
  48.       width: 777px;
  49. }
  50.  
  51. #top {
  52.       background: url(layout/logo.jpg) no-repeat top;
  53.       width: 777px;
  54.       height: 78px;
  55. }
  56.  
  57. #pasek {
  58.       background: url(layout/top_tlo.gif) repeat-x top;
  59.       font-weight: bold;
  60.       width: 777px;
  61.       height: 78px;
  62.       text-align: center;
  63. }
  64.  
  65. #pasek a:hover {
  66.       text-decoration: underline;
  67. }
  68.  
  69. #lewe {
  70.       width: 150px;
  71.       background-color: green;
  72.       float: left;
  73. }
  74.  
  75. #srodek {
  76.       width: 400px;
  77.       background-color: grey;
  78.       float: left;
  79. }
  80.  
  81. #prawe {
  82.       width: 150px;
  83.       background-color: green;
  84.       float: right;
  85. }
  86.  
  87. #stopka {
  88.       width: 777px;
  89.       height: 20px;
  90.       background-color: pink;
  91.       clear: both;
  92. }
  93.  
  94. <body><div id="glowny>
  95.  
  96. <div id="top"></div>
  97.  
  98. <div id="pasek">
  99.      <a href="/hack/index.php">Strona główna</a> |
  100.      <a href="http://firefoks.be/anime/">Forum Dyskusyjne</a>
  101.      <img src="layout/deo.jpg" style="float: right;" />
  102. </div>
  103.  
  104. <div id="lewe">
  105.      Menu lewe
  106. </div>
  107.  
  108. <div id="srodek">
  109.      Srodek
  110. </div>
  111.  
  112. <div id="prawe">
  113.      Menu prawe
  114. </div>
  115.  
  116. <div id="stopka">
  117.      Stopka
  118. </div>
  119.  
  120. </div></body>
  121. </html>

Pamiętaj, żeby IE nie serwować kodu
Kod
<?xml version="1.0" encoding="ISO-8859-2"?>
BDCC
Teraz mam trochę inny problem. Chodzi o menu.. Zauważyłem, że składa się on z odzielnych grafik w tabelkach co w divie wydaje się niemożliwe... Może ktoś mi pomóc?
mike
Menu tutaj to prosta sprawa.
Dajesz tak.
  1. <div class="menu">
  2.  <h4>Pomoce</h4>
  3.  <ul>
  4.    <li>Tutoriale</li>
  5.    <li>Pokemon Hex</li>
  6.    <li>Item Hex</li>
  7.    <li>Tilesety</li>
  8.    <li>Tabele</li>
  9.  </ul>
  10.  <img src="" alt="bootom" />
  11. </div>

Dla <h2> dajesz tło a teks centrujesz.
Dla <ul> dajesz powtarzalne tło, tło repeat-y
I na końcu dajesz obrazek, który zakończy wszystko ładnie.
Zajec
Gdybyś podawał link do wersji nad którą aktualnie pracujesz, byłoby nam też łatwiej ;-)

Przynajmniej mi by się pewnie udało kilka rzeczy do poprawki wyłapać.
BDCC
Orginał: http://www.pokemony.com/hack/
Obrazki: http://www.pokemony.com/hack/layout
Wersja nad którą pracuje: http://xdcc.i-rpg.org/bdcc/hack

Proszę o pomysł jakiś ... W operze menu się krzaczy trochę...

W menu po dole widać mały pasek tła... A przed tytułem menu i menu jest dostęp
Zajec
Teraz znacznie lepiej, zaraz to elegancko przerobimy :-)

1) Zapominasz, że w XHTML strict paddingi wliczają się do wysokości i szerokości. Tak więc:
całkowita wysokość = height + górny padding + dolny padding
całkowita szerokość = width + lewy padding + prawy padding
Jeśli więc dopisałeś padding-top: 4px i chcesz, żeby element nadał miał 26px wysokości - odejmij od tego 26 cztery piksele. Rezultat:
padding-top: 4px;
height: 22px;

2) Ten element "POMOCE" jest nagłówkiem menu. Więc użyj znacznika nagłówka: zamień
<div id="tyt">Pomoce</div>
na
<h2>Pomoce</h2>
a następnie
#tyt {
na
#lewe h2 {

Dodatkowo, jeśli nie chcesz mieć wykropkowania dla listy, dopisz
#lewe ul { list-style-type: none; }


Dodano:
3) masz taki fragment:
Kod
<img src="layout/dol.PNG" alt="bootom" />
W "alt" należy umieszczać tekst zastępczy obrazka. Ponieważ obazek-wykończenie nie niesie żadenj informacji, parametr alt znależy zostawić pusty.
mike
Cytat(Zajec @ 2006-05-17 23:58:15)
1) Zapominasz, że w XHTML strict paddingi wliczają się do wysokości i szerokości. Tak więc:
całkowita wysokość = height + górny padding + dolny padding
całkowita szerokość = width + lewy padding + prawy padding
Jeśli więc dopisałeś padding-top: 4px i chcesz, żeby element nadał miał 26px wysokości - odejmij od tego 26 cztery piksele. Rezultat:
padding-top: 4px;
height: 22px;

Ja jeszcze dodam, że tak się dzieje w przeglądarkach.
W innych dziwnych aplikacjach typu bardzIEwIE interpretowane jest to wbrew standardom.

W IE nie będziesz musiał zmiejszać długości, bo IE traktuje padding jakby był na zewnątrz.

Przydadzą Ci się tutaj Conditional Comments dla wprowadzenia innych styli dla bardzIEwia.
BDCC
@Zając zrobiłem tak, ale są dostępy w Operze miedzy tytułem menu, a menu...
Zajec
Cytat(BDCC @ 1.06.2006, 13:01 ) *
@Zając zrobiłem tak, ale są dostępy w Operze miedzy tytułem menu, a menu...
Eh, a myślałem, że napisałem wystarczająco prostym i obrazowym językiem. Nie zastosowałeś żadnej podanej przeze mnie modyfikacji!

Popatrz na ten kod:
Kod
#tyt {
        background: url(layout/menu_title.gif);
        width: 137px;
        height: 26px;
        text-align: center;
        font-weight: bold;
        padding-top: 4px;
        border: 0px;
}


Wysokość elementu = height + padding-top + padding-bottom = 26px + 4px + 0px = 30px

A Twój obrazek http://xdcc.i-rpg.org/bdcc/hack/layout/menu_title.gif ma tylko 26px wysokości.

Zamień height: 26px; na height: 22px; i wtedy wysokość elementu wyjdzie Ci na właściwe 26px.

I zastosuj może moje pozostałe rady.




Cytat(mike_mech @ 18.05.2006, 00:03 ) *
Ja jeszcze dodam, że tak się dzieje w przeglądarkach.
W innych dziwnych aplikacjach typu bardzIEwIE interpretowane jest to wbrew standardom.

W IE nie będziesz musiał zmiejszać długości, bo IE traktuje padding jakby był na zewnątrz.

Przydadzą Ci się tutaj Conditional Comments dla wprowadzenia innych styli dla bardzIEwia.
Nie, nie, nie. Zbędne kombinowanie.

Wystarczy IE serwować w pierwszej linijce DOCTYPE strict i będzie ładnie działać.
BDCC
http://xdcc.i-rpg.org/bdcc/hack/nowy2.html

Na końcu menu zostaje pasek...
mike
Cytat(Zajec @ 1.06.2006, 16:01 ) *
Cytat(mike_mech @ 18.05.2006, 00:03 ) *

Ja jeszcze dodam, że tak się dzieje w przeglądarkach.
W innych dziwnych aplikacjach typu bardzIEwIE interpretowane jest to wbrew standardom.

W IE nie będziesz musiał zmiejszać długości, bo IE traktuje padding jakby był na zewnątrz.

Przydadzą Ci się tutaj Conditional Comments dla wprowadzenia innych styli dla bardzIEwia.

Nie, nie, nie. Zbędne kombinowanie.

Wystarczy IE serwować w pierwszej linijce DOCTYPE strict i będzie ładnie działać.

Chyba raczej niezbędne tongue.gif
Przecież nie przeskoczysz faktu, że poprawny dokument XHTML powienien być wysłany jako XML.
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" >
  5. <?!-- dalsza cz&#281;&#347;&#263; -->


Conditional Comments są niestety jedynym uniwersalnym rozwiązaniem.
Zajec
Cytat(mike_mech @ 17.06.2006, 21:25 ) *
Chyba raczej niezbędne tongue.gif
Przecież nie przeskoczysz faktu, że poprawny dokument XHTML powienien być wysłany jako XML.

Owszem. Więc poprawny dokument XHTML wysyłamy tylko tym przeglądarkom, które chwalą się obsługą XHTMLa.


  1. <?php
  2. if (stristr($_SERVER[HTTP_ACCEPT], "application/xhtml+xml"))
  3. {
  4. header("Content-Type: application/xhtml+xml; charset=utf-8");
  5. echo '<?xml version="1.0" encoding="utf-8"?>'."rn";
  6. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"'."rn";
  7. echo '"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'."rn";
  8. }
  9. else
  10. {
  11. header("Content-Type: text/html; charset=utf-8");
  12. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'."rn";
  13. echo '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."rn";
  14. }
  15. ?>
mike
~Zajec zakładasz użycie innej technologii.
Nie każdy domument XHTML jest generowany przez php lub inny język server-side.
A poza tym ten skrypt mozna oszukać wiec jest zawodny.
Moim zdaniem akurat w tym przypadku lepiej leczyć niż zapobiegać smile.gif

Co nie zmienia faktu że w zasadzie obaj mamy rację smile.gif
BDCC
Odrazu lepiej smile.gif Tylko chyba skrypt jest troche zły, bo wywalau góry to:
http://xdcc.i-rpg.org/bdcc/hack/nowy3.html
Pod badzIEwIEm nic wyglądem się nie zmieniło...
Vogel
jizas. wklejasz kod php do HTMLa? to nie bedize dzialac (chyba ze serwer skonfigurujesz by i html'e byly mielone przez php).

zmien rozszerzenie z .html na .php
BDCC
http://xdcc.i-rpg.org/bdcc/hack/nowy3.php <- lol
Vogel
nie "lol" tylko nie potrafisz zlozyc porawnego xHTMLa zerknij ile masz błędów.
BDCC
http://xdcc.i-rpg.org/bdcc/hack/nowy3.php <- błędy poprawiłem a CSS'a nadal nie chce czytać

@Zajec <- ten skrypt php właśnie tak robi...
Zajec
Cytat(BDCC @ 17.07.2006, 19:19 ) *
http://xdcc.i-rpg.org/bdcc/hack/nowy3.php <- błędy poprawiłem a CSS'a nadal nie chce czytać

Wyrzuć te swoje
Kod
<!--
-->
które są niepoprawne w XHTML. Z ich powodu strona nie wyświetla mi się w Operze.
BDCC
http://xdcc.i-rpg.org/bdcc/hack/nowy3.php <- wyrzuciłem

By ktoś pomógł z tym menu? Bo nie moge rozgryść jak zrobić styl, żeby badzIEwie go jakoś zgodnie z zamiarem przecztało ...
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.