Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyśrodkowanie całości treści
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
beel
W pliku css ustawiłem sobie między innymi:
  1. body
  2. { width: 580px;
  3. margin-top: 100px;
  4. margin-left: 250px;
  5. margin-right: 5px;
  6. font: small-caps 1em/1.5em Helvetica;
  7.  
  8. background-color: #F8F8F8;
  9. }


I fajnie, bo mam wszystko wyśrodkowane z takimi ustawieniami. Jednak obawiam się, że przy innej rozdzielczości może nie być już tak kolorowo. Jak więc ustawić parametry, aby niezależnie od np. wspomnianej rozdzielczości zawsze treść dopasowywałaby się do środka okna? Górny margines może być ustawiony na sztywno.
kamil4u
  1. text-align: center;
?
ew.
  1. margin: 10px auto;
,ale to tylko gdy podasz szerokość, najlepiej:
Kod
<body>
<div id="test">
</div>
</body>

i dla #test ustawiasz szerokość bloku i właśnie powyższy styl CSS. Wszystko zależy czego potrzebujesz. Żeby działało w IE należu ustawić odpowiednie doctype -> strict
el.pablo.72
Tag body nie należy ustawiać szerokości i wysokości ani marginesów.

Należy zrobić np.:
  1. <div id="wrapper_page">
  2. </div>
  3. </body>


a w CSS:

#wrapper_page{
width: 580px;
margin-left: 250px;
margin-right: 5px;
}

Pamiętaj to tylko przykład, a nie gotowe rozwiązanie.
beel
Nie działają mi powyższe propozycje. Może więc konkretniej trochę napiszę o co mi chodzi. Otóż mam tabelę w powiedzmy #zawartość i na nią składa się wiele elementów (ale wszystko w table) i teraz chcę aby ta tabela była zawsze na środku strony.
kamil4u
  1. #zawartosc{
  2. width: 500px;
  3. margin: 10px auto;
  4. }

Dla IE odpowiednie Doctype i element zawartosc ma się znajdować bezpośrednio w <body>

Jak nie zadziała pokaż kod!
beel
Powiem tak, jeżeli dam ustawienia:
  1. #zawartosc{
  2. width: 580px;
  3. margin-top: 80px;
  4. margin-left: 225px;
  5. margin-right: 5px;
  6. }

To jest na środku i odpowiednio od górnej krawędzi tak jak chce. Moje pytanie brzmi, czy to się sprawdzi zawsze? Skąd pewność, że przy innej rozdzielczości nie będzie inaczej?
Damonsson
Oczywiście, że się nie sprawdzi.

Dlaczego nie skorzystasz z poprawnego rozwiązania, które podał @kamil4u?
beel
Bo mi ten gotowy sposób nie działa. Kod poniżej:

  1. <?php
  2. require_once ('./scripts.php');
  3. ?>
  4.  
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  8. <meta http-equiv="content-language" content="pl" />
  9. <meta name="author" content="trym" />
  10.  
  11. </head>
  12. <div id="naglowek">
  13. </div>
  14.  
  15. <div id="zawartosc">
  16. <link href="style/styl.css" rel="stylesheet" type="text/css" />
  17.  
  18. <table style="border-style: double;" width="800" height="420" cellspacing="35">
  19. <tr>
  20. <td>
  21. <img src="/image/img.jpg" alt="img.jpg" />
  22. </td>
  23. <td>
  24. <p class="styl1">text text text text text</p>
  25.  
  26. <p>
  27.  
  28. text text text text text<br />
  29. text text text text text<br />
  30. text text text text text<br />
  31. text text text text text
  32. </p>
  33.  
  34. <!-- formularz-->
  35.  
  36. <form action="P03WymusPass.php" method="post">
  37. <fieldset><legend>Legenda</legend>
  38. <table>
  39. <tr>
  40. <td>Opis1:</td>
  41. <td><input type="password" name="op1" /></td>
  42. </tr>
  43. <tr>
  44. <td>Opis2:</td>
  45. <td><input type="password" name="op2" /></td>
  46. </tr>
  47. </table>
  48. <br />
  49. <input type="submit" value="OK" />
  50. </form>
  51.  
  52. </td>
  53. </tr>
  54.  
  55. </table>
  56.  
  57.  
  58.  
  59.  
  60. </div>
  61. <!-- nawigacja -->
  62. <div id="nawigacja">
  63.  
  64. </div>
  65. <!--stopka-->
  66. <div id="stopka">
  67.  
  68. </div>
  69. </body>
  70. </html>


I styl:
  1. body
  2. {
  3. font: small-caps 1em/1.5em Helvetica;
  4. background-color: #F8F8F8;
  5.  
  6. }
  7.  
  8. #zawartosc{
  9. //width: 580px;
  10. //margin-top: 80px;
  11. //margin-left: 225px;
  12. //margin-right: 5px;
  13. width: 500px;
  14. margin: 10px auto;
  15.  
  16. }
  17.  
  18. p.styl1 {
  19. font-size: larger
  20. }


W efekcie całość przesunięta jest do prawej strony, zachowując lekki margines.
Damonsson
1. Tabelki służą do przedstawienia danych TABELARYCZNYCH
2. Ktoś wyżej zasugerował doctype strict, warto byłoby posłuchać. Osobiście nie sprawdzałem czy coś zmieni. Ale skoro ktoś to napisał, to zapewne ma rację.
3. Wyobraź sobie że masz karton o długości 1,500m i chcesz włożyć do niego człowiek który ma 1,800m. Jak myślisz co się stanie...pewnie mimo ograniczenia zrobi dziurę w kartonie i nogi i tak będą wystawały poza 1,5 metrowy karton wink.gif
beel
Ok, rozumiem, że tabelka nie była najlepszym wyborem. Co polecasz zastosować aby później objąć to ramką.
Damonsson
http://lmgtfy.com/?q=obramowanie+css
beel
Umiem posługiwać się Google. Uzasadniając moje pytanie, chciałem uniknąć sytuacji, że znów dokonam złego wyboru wink.gif
kamil4u
Wszystko zależy co chcesz osiągnąć:
- dane tabelaryczne -> tabelka -> <table>, <tr>, <td>, itd.
- dłuższy tekst -> akapit -> <p>
- lista -> <ul>, <ol>
- blok(wiele różnych elementów na stronie) -> <div>
- krótki tekst -> <span>

+ dla wszystkiego odpowiednia style CSS

Najczęściej w celu określenia bloku elementów używa się <div> np.:
  1. <div id="main">
  2. <div id="top"></div>
  3. <ul id="menu">
  4. <li><a href="#">#1</a></li>
  5. <li><a href="#">#2</a></li>
  6. </ul>
  7. <div id="left"></div>
  8. <div id="right"></div>
  9. <div id="bottom"></div>
  10. </div>


Aby wypozycjonować elementy na stronie musisz się posłużyć CSS. Na pewno musisz poznać: float, clear, margin, padding, width, height, border, position, left, top, right, left. Jak poznasz te elementy, z grubsza będziesz mógł układać poprawne semantycznie strony. Powinieneś móc osiągnąć wtedy to co chcesz.

Miłej nauki wink.gif
demolka666
przykładowe rozwiązanie:

  1. #zawartosc{
  2. position: absolute;
  3. width: 1000px;
  4. left:50%;
  5. margin-left: -500px /*połowa tego co width*/
  6. }
toaspzoo

vertical-align: center;
text-align: center;
float: center;
margin: auto;



kamil4u
Cytat
float: center;

Skąd to się wzięło? http://www.w3.org/TR/CSS2/visuren.html#propdef-float

Sprawdzaj co piszesz wink.gif, chyba że to jakaś nowość...
Poza tym te rozwiązania były już opisane w wątku - bez vertical-align: center;, ale to służy czemuś innemu
Fluke
  1. body {
  2. width: 70%;
  3. margin: 0 auto;
  4. }


Działa wszędzie.
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.