Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CSS]Wyśrodkowanie diva, Jak ustawić diva po środku innego diva?
JacekKw
post 10.03.2010, 13:18:02
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.03.2010

Ostrzeżenie: (0%)
-----


Niby podstawa a tyle z tym problemów. Czytałem o tym kilka wątków i natknąłem się jedynie na rozwiązanie margin: 0px auto, które jest w moim przypadku nieskuteczne
Go to the top of the page
+Quote Post
lord_t
post 10.03.2010, 13:19:37
Post #2





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

Ostrzeżenie: (0%)
-----


A szerokość ustawiłeś?


--------------------
Go to the top of the page
+Quote Post
Kethrax
post 10.03.2010, 13:22:54
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 3
Dołączył: 9.12.2006
Skąd: Kraków

Ostrzeżenie: (10%)
X----


  1. <style type="text/css">
  2. #a {
  3. width: 500px;
  4. height: 100px;
  5. }
  6.  
  7. #b {
  8. width:200px;
  9. height: 50px;
  10. margin: 0 auto;
  11. }
  12.  
  13. <div id="a">
  14.  
  15. <div id="b"> </div>
  16.  
  17. </div>


Ten post edytował Kethrax 10.03.2010, 13:23:29


--------------------
Historia wynalazków naukowych i technicznych uczy nas, że rasa ludzka uboga jest w niezależną myśl twórczą i wyobraźnię... człowiek musi niejako dosłownie potknąć się o rzecz samą, aby mu zakwitła Idea. [b]Albert Einstein[/b]
Go to the top of the page
+Quote Post
artur_dziocha
post 10.03.2010, 13:26:03
Post #4





Grupa: Zarejestrowani
Postów: 320
Pomógł: 53
Dołączył: 18.09.2007
Skąd: Radom

Ostrzeżenie: (0%)
-----


nie da rady tak.
ustaw margin w b na
margin: 0px 150px
Go to the top of the page
+Quote Post
Kethrax
post 10.03.2010, 13:40:12
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 3
Dołączył: 9.12.2006
Skąd: Kraków

Ostrzeżenie: (10%)
X----


Szerokość div'a ustawiłem tylko przykładową, u mnie margin: 0 auto; działa bez problemu na wszystkich przeglądarach, dla IE ustawiam dodatkowo w #a text-align: center;


--------------------
Historia wynalazków naukowych i technicznych uczy nas, że rasa ludzka uboga jest w niezależną myśl twórczą i wyobraźnię... człowiek musi niejako dosłownie potknąć się o rzecz samą, aby mu zakwitła Idea. [b]Albert Einstein[/b]
Go to the top of the page
+Quote Post
JacekKw
post 10.03.2010, 13:54:24
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.03.2010

Ostrzeżenie: (0%)
-----


Popełniłem błąd w analizie problemu. margin 0 auto działa skutecznie.

Problem mam tak na prawdę z ustawieniem kilku divów w jednej linii tak żeby były na środku diva-kontenera.

W przypadku zastosowaniu na bloczkach float:left będa one nieco przesunięte do lewej. A jak użyje display:inline to jakby ignorowało margin 0 auto; i ustawia mi je wszystkie do lewej



efekt float:left;

----------------------------------------------------------------



efekt display:inline
Go to the top of the page
+Quote Post
mortus
post 10.03.2010, 14:09:31
Post #7





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Niestety musisz mieć ustawioną szerokość każdego div-a i szerokość div-a kontenera równą sumie szerokości div-ów w środku. I wtedy do diva kontenera dodajesz margin: 0 auto; Innej możliwości nie ma.
Go to the top of the page
+Quote Post
krzysztof_kf
post 10.03.2010, 14:22:03
Post #8





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

Ostrzeżenie: (0%)
-----


pokaż kawałek css
Go to the top of the page
+Quote Post
JacekKw
post 10.03.2010, 14:38:39
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.03.2010

Ostrzeżenie: (0%)
-----


  1. #menu {
  2. width: 550px;
  3. height:3%;
  4. margin:0px auto;
  5. clear:both;
  6. padding: 15px 0 0 0;
  7. background: #fff;
  8. }
  9.  
  10. #mbutton {
  11. width:90px;
  12. height:3%;
  13. float:left;
  14. margin:0px auto;
  15. padding: 0px 20px;
  16. font-family: Nyala;
  17. font-size:20px;
  18. }


#menu to ten biały blok na środku strony a #mbutton to bloczki Firma, Kolekcje, Sklepy, Kontakt

Cytat(mortus @ 10.03.2010, 14:09:31 ) *
Niestety musisz mieć ustawioną szerokość każdego div-a i szerokość div-a kontenera równą sumie szerokości div-ów w środku. I wtedy do diva kontenera dodajesz margin: 0 auto; Innej możliwości nie ma.



Miałem nadzieje, że będę mógł użyć tego samego arkusza stylów dla wersji polsko i anglojęzycznej strony. A tam wiadomo, rózne długości poszczególnych wyrazów smile.gif

Ten post edytował JacekKw 10.03.2010, 14:43:17
Go to the top of the page
+Quote Post
Kethrax
post 10.03.2010, 14:40:37
Post #10





Grupa: Zarejestrowani
Postów: 80
Pomógł: 3
Dołączył: 9.12.2006
Skąd: Kraków

Ostrzeżenie: (10%)
X----


JacekKw tak jak napisałem wyżej -> ma być margin: 0 auto; .


--------------------
Historia wynalazków naukowych i technicznych uczy nas, że rasa ludzka uboga jest w niezależną myśl twórczą i wyobraźnię... człowiek musi niejako dosłownie potknąć się o rzecz samą, aby mu zakwitła Idea. [b]Albert Einstein[/b]
Go to the top of the page
+Quote Post
JacekKw
post 10.03.2010, 14:42:02
Post #11





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.03.2010

Ostrzeżenie: (0%)
-----


Przecież jest...
Go to the top of the page
+Quote Post
Kethrax
post 10.03.2010, 14:44:19
Post #12





Grupa: Zarejestrowani
Postów: 80
Pomógł: 3
Dołączył: 9.12.2006
Skąd: Kraków

Ostrzeżenie: (10%)
X----


Cytat(JacekKw @ 10.03.2010, 14:38:39 ) *
  1. #menu {
  2. width: 550px;
  3. height:3%;
  4. margin:0px auto;
  5. clear:both;
  6. padding: 15px 0 0 0;
  7. background: #fff;
  8. }
  9.  
  10. #mbutton {
  11. width:90px;
  12. height:3%;
  13. float:left;
  14. margin:0px auto;
  15. padding: 0px 20px;
  16. font-family: Nyala;
  17. font-size:20px;
  18. }


#menu to ten biały blok na środku strony a #mbutton to bloczki Firma, Kolekcje, Sklepy, Kontakt




Miałem nadzieje, że będę mógł użyć tego samego arkusza stylów dla wersji polsko i anglojęzycznej strony. A tam wiadomo, rózne długości poszczególnych wyrazów smile.gif



--------------------
Historia wynalazków naukowych i technicznych uczy nas, że rasa ludzka uboga jest w niezależną myśl twórczą i wyobraźnię... człowiek musi niejako dosłownie potknąć się o rzecz samą, aby mu zakwitła Idea. [b]Albert Einstein[/b]
Go to the top of the page
+Quote Post
mortus
post 10.03.2010, 14:48:38
Post #13





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


A co to za różnica, czy będzie margin: 0 auto; czy margin: 0px auto;? Nie ma sensu używać jednocześnie margin: 0 auto; i float: left;, bo to nic nie da. Margines nie jest wtedy uwzględniany. Musisz znać szerokość całego menu (równą sumie szerokości #mbutton), żeby wyśrodkować je na stronie. A tak w ogóle to mbutton powinno być u Ciebie klasą, a nie identyfikatorem.
Cytat
Miałem nadzieje, że będę mógł użyć tego samego arkusza stylów dla wersji polsko i anglojęzycznej strony. A tam wiadomo, rózne długości poszczególnych wyrazów

A co to za problem? Dostosowujesz klasę mbutton do najdłuższego wyrazu zarówno w języku polskim, jak i angielskim, no i centrujesz tekst:
Kod
.mbutton {
    width: xxxxx; // szerokość najdłuższego napisu;
    padding: 0 10px; // coby jakiś odstęp był pomiędzy kolejnymi linkami
    text-align: center; // żeby tekst był na środku
}


Ten post edytował mortus 10.03.2010, 14:54:33
Go to the top of the page
+Quote Post
krzysztof_kf
post 10.03.2010, 15:08:15
Post #14





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

Ostrzeżenie: (0%)
-----


jeśli chcesz jeden button wyśrodkować
Kod
#menu {
width: 550px;
height:3%;
margin:0px auto;
clear:both;
padding: 1px 0 0 0;
background: #fff;
border: 1px solid #000;
}

#mbutton {
width:90px;
height: 100%;
margin:0px auto;
font-family: Nyala;
font-size:20px;
border: 1px solid #3399ff;
}
Go to the top of the page
+Quote Post
JacekKw
post 11.03.2010, 09:25:40
Post #15





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.03.2010

Ostrzeżenie: (0%)
-----


Dziękuję Panowie. Rozwiązanie mortusa w pełni rozwiązuje problem smile.gif

A może jeszcze w temacie... jak wycentrować diva w divie tak żeby był na środku zarówno horyzontalnie jak i wertykalnie?
Go to the top of the page
+Quote Post
mortus
post 11.03.2010, 11:34:24
Post #16





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


div-owi nadrzędnemu trzeba nadać style display: table-cell; i vertical-align: middle;, a div-owi w środku margin: 0 auto;. Sprawdź to:
  1. <head>
  2. <meta name="content-type" content="text/html; charset=UTF-8" />
  3. <style type="text/css">
  4. #box1 {
  5. border: 1px solid #ccc;
  6. width: 500px;
  7. height: 200px;
  8. display: table-cell;
  9. vertical-align: middle;
  10. }
  11. #box2 {
  12. margin: 0 auto;
  13. border: 1px solid #000;
  14. width: 100px;
  15. height: 50px;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <div id="box1">
  21. BOX 1
  22. <div id="box2">
  23. BOX 2
  24. </div>
  25. </div>
  26. </body>
  27. </html>
Go to the top of the page
+Quote Post
JacekKw
post 11.03.2010, 12:31:04
Post #17





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.03.2010

Ostrzeżenie: (0%)
-----


To dla mnie kłopotliwe w implemetacji, gdyż używam często szerokości procentowych

  1. #tresc {
  2. height: 73%;
  3. width:100%;
  4. text-align: center;
  5. }
  6.  
  7. #kontakt {
  8. width: 800px;
  9. height: 500px;
  10. margin: 0px auto;
  11. }


Muszę sprawić by #kontakt był wycentrowany w #treść a zastosowanie opisanej wyżej metody nie przynosi korzystnych rezultatów
Go to the top of the page
+Quote Post
krzysztof_kf
post 11.03.2010, 13:25:26
Post #18





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Kod
<style type="text/css">
#tresc {
height: 73%;
width:100%;
text-align: center;
}

#kontakt {
width: 800px;
height: 500px;
margin: 0 auto;
text-align: center;
}
</style>
<div id="tresc">
<div id="kontakt">
kontakt ze mna
</div>


Ten post edytował krzysztof_kf 11.03.2010, 13:27:02
Go to the top of the page
+Quote Post
mortus
post 11.03.2010, 15:07:34
Post #19





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Niestety, jeżeli używasz wielkości procentowych, to musisz manipulować samym marginem
  1. #tresc {
  2. width: 100%;
  3. height: 73%;
  4. text-align: center;
  5. }
  6. #kontakt {
  7. width: 800px;
  8. height: 500px;
  9. margin: xxxxx auto;
  10. /* w miejsce xxxxx wpisujesz odpowiednio obliczony margines (będzie to margines górny i zarazem dolny) */
  11. }
Z tym, że xxxxx musi być podane w procentach i nie u każdego może to działać tak, jak powinno (różne rozdzielczości monitorów, różne viewporty). No chyba, że sam div#tresc znajduje się w jakimś innym div-ie, który ma nadaną wysokość w px, to wtedy wszystko można dokładnie policzyć. Inną alternatywą jest wykorzystanie języka JavaScript i dynamiczne ustawianie stylu elementów podczas ładowania strony.

Ten post edytował mortus 11.03.2010, 15:11:31
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 18:11