Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML]Strona przy innej rozdzielczości wyrównuje do prawej
Forum PHP.pl > Forum > Przedszkole
Duvel
Witam.
Jestem raczkujący w sprawach CSS, i stąd mogą się tu pojawić głupie dla was pytania.
Liczę na wyrozumiałość, i proszę o pomoc w paru kwestiach.

Otóż, kod pisałem pod rozdzielczością 1600x1050, i na tej rozdzielczości wszystko wygląda ładnie, i tak jak trzeba.
Problem pojawia się przy zmianie rozdzielczości, całość zachowuje oryginalny układ elementów, jednak strona / całość / body wyrównuje do prawej strony ekranu, i to w takim stopniu, że potrzebny jest scroll, do przewinięcia strony.

Bez zbędnej paplaniny, strona jest stroną startową / główną, składającą się tylko z elementów i odnośników graficznych.
Może lepiej będzie jak zaprezentuje kod, a wy wskażecie mi błędy i naprowadzicie na odpowiedni trop, celem nie robienia takich błędów w przyszłości.

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  3. <title>Martwa Materia</title>
  4. <style type="text/css">
  5. body
  6. {
  7. background-color: #000000;
  8. color: #000000;
  9. margin: auto;
  10.  
  11. }
  12.  
  13. a
  14. {
  15. color: #000000;
  16. }
  17. a:visited
  18. {
  19. color: #000000;
  20. }
  21. a:active
  22. {
  23. color: #000000;
  24. }
  25.  
  26. DIV.home
  27. {
  28. position:absolute;
  29. top:200px;
  30. left:350px;
  31. width:180px;
  32.  
  33. }
  34. DIV.blog
  35. {
  36. position:absolute;
  37. top:305px;
  38. left:340px;
  39. width:180px;
  40.  
  41. }
  42. DIV.omnie
  43. {
  44. position:absolute;
  45. top:405px;
  46. left:340px;
  47. width:180px;
  48. }
  49. DIV.top
  50. {
  51. position:absolute;
  52. top:0px;
  53. left:307px;
  54. width:500px;
  55. }
  56. DIV.center
  57. {
  58. position:absolute;
  59. top:94px;
  60. left:500px;
  61. width:500px;
  62. }
  63. DIV.bottom
  64. {
  65. position:absolute;
  66. top:700px;
  67. left:400px;
  68. width:500px;
  69. }
  70.  
  71. </head>
  72.  
  73. <div class="top">
  74. <img src="images/daszek.jpg" border="0" alt="">
  75. </div>
  76. <div class="center">
  77. <img src="images/index_04.jpg" border="0" alt="">
  78. </div>
  79.  
  80. <div class="home">
  81. <a href="home.html"><img src="images/index_03.jpg" border="0" alt=""></a>
  82. </div>
  83.  
  84. <div class="blog">
  85. <a href="blog.html"><img src="images/index_06.jpg" border="0" alt=""></a>
  86. </div>
  87.  
  88. <div class="omnie">
  89. <a href="omnie.html"><img src="images/index_08.png" border="0" alt=""></a>
  90. </div>
  91.  
  92. <div class="bottom">
  93. <img src="images/index_11.jpg" border="0" alt="">
  94. <img src="images/index_12.jpg" border="0" alt="">
  95. </div>
  96.  
  97.  
  98. </body>
  99. </html>


Tak wiem, kod zapewne jest toporny, mało funkcjonalny, czy dziwny, ale tutaj pojawia się 'n00bostwo', siedzę w tym zaledwie parę dni.

Proszę o pomoc, jest to sprawa poniekąd pilna.
mortus
Strona zachowuje się tak jak powinna, wszystko masz pozycjonowane absolutnie, wszystko zawsze wyświetli się o wartość top od góry i wartość left od lewej. Trzeba wszystko zrobić od nowa i zastanowić się, czy pozycjonowanie absolutne to dobre rozwiązanie. Poszukaj u Wujka Google czegoś na temat modelu pudełkowego w html.
thek
Zrób to tak... Weż sobie stwórz kontener z ustawionym position:relative jedynie, a całość strony wrzuć do niego. Wtedy strona będzie się pozycjonowała absolutnie względem tego nadrzędnego kontenera, a ów kontener sobie ustawisz wedle własnych upodobań jak chcesz na stronie (choćby margin: 0 auto by centrować).
emtiej
stwórz nowy identyfikator, który obejmie wszystko od <body> do </body> nazwij go np. wyrownanie

  1. DIV#wyrownanie{
  2. margin: 0 auto;
  3. width: SZEROKOSC_STRONY;
  4. text-align: center;
  5. }


Resztę rób jak chcesz, a ich szerokości ustawiaj w % (tylko przyciski w px)
Duvel
Tworzenie nowych kontenerów nie działa, najwyraźniej będę musiał tworzyć to od początku.
Szkoda.
thek
A zwróciłeś uwagę, na to co napisałem? Dałeś temu kontenerowi position:relative? Bez tego strona nadal będzie olewała pozycjonowanie. Position:absolute pozycjonuję według najbliższego przodka, który nie ma position:static (domyślne ustawienie elementów). A jeśli nie ma takiego to jedzie względem body.
Duvel
Ok, przepisałem kod od nowa, z użyciem boksów.
Wygląda to tak:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  3. <title>Martwa Materia</title>
  4. <style type="text/css">
  5. body
  6. {
  7. background-color: #000000;
  8. color: #000000;
  9. margin: 0;
  10. padding: 0;
  11.  
  12. }
  13. .wrap
  14. {
  15. position: relative;
  16. width: 1300px;
  17. margin: auto;
  18. }
  19. a
  20. {
  21. color: #000000;
  22. }
  23. a:visited
  24. {
  25. color: #000000;
  26. }
  27. a:active
  28. {
  29. color: #000000;
  30. }
  31.  
  32. DIV.home
  33. {
  34. position: relative;
  35. margin-top: 23mm;
  36. margin-left: 30mm;
  37.  
  38. }
  39. DIV.blog
  40. {
  41. position: relative;
  42. margin-top: 5mm;
  43. margin-left: 30mm;
  44.  
  45. }
  46. DIV.omnie
  47. {
  48. position: relative;
  49. margin-top: 5mm;
  50. margin-left: 30mm;
  51. }
  52.  
  53. DIV.center
  54. {
  55. position: absolute;
  56. margin-top: -23mm;
  57. margin-left: 65mm;
  58. }
  59. DIV.bottom
  60. {
  61. position: absolute;
  62. margin-top: 75mm;
  63. margin-left: 40mm;
  64. }
  65.  
  66. </head>
  67. <div class="wrap">
  68. <div class="center">
  69. <img src="images/center.jpg" border="0" alt="">
  70. </div>
  71. <div class="menu">
  72. <div class="home">
  73. <a href="#"><img src="images/index_03.jpg" border="0" alt=""></a>
  74. </div>
  75.  
  76. <div class="blog">
  77. <a href="#"><img src="images/index_06.jpg" border="0" alt=""></a>
  78. </div>
  79.  
  80. <div class="omnie">
  81. <a href="#"><img src="images/index_08.png" border="0" alt=""></a>
  82. </div>
  83.  
  84. <div class="bottom">
  85. <img src="images/index_11.jpg" border="0" alt="">
  86. <img src="images/index_12.jpg" border="0" alt="">
  87. </div>
  88. </div>
  89.  
  90. </body>
  91. </html>


Wszystko jest poprawnie, aż do rozdzielczości 1024x860, wtedy strona się scrooluje względem szerokości, jednak podejrzewam, że jest to spowodowane wielkością elementów strony.
W przyszłości to poprawie, bo teraz mi się nie chce winksmiley.jpg

Adres strony:
http://agamerz.pl/

Czy widzicie jakieś zastrzeżenia odnośnie kodu / całokształtu ?
Co warto poprawić ?

Pozdrawiam, i dziękuję za pomoc.

@Edit:
Zauważyłem błąd, ustawiłem klasę divu na menu, a takowego nie ma, zwykłe przeoczenie nie przeszkadzające w funkcjonowaniu kodu.
mortus
Pozycje elementów określa się za pomocą atrybutów: position (który występuje zawsze) oraz left, right, top, bottom (mogą być określone, ale nie wszystkie muszą). Ty zaś do pozycjonowania elementów używasz marginesów, wobec czego nie potrzebujesz nigdzie pisać position: relative;, czy position: absolute;. Tak na dobrą sprawę całość można zrobić dużo łatwiej (bez tylu div-ów). Za rozciąganie okna przeglądarki odpowiada width: 1300px;. Mimo wszystko całość jeszcze w tych czasach dopasowywałbym do szerokości 1024px (a z uwzględnieniem scroll-a pionowego we wszystkich przeglądarkach do 970px - bezpieczna wielkość). Nie jest to najlepszy kod, a w sumie to sprawdź, czy działa pod wszystkimi przeglądarkami. Pozdrawiam
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.