Ocena wątku:
- 1 głosów - średnia: 5
- 1
- 2
- 3
- 4
- 5
[CSS]vertical-align nie działa
|
Liczba postów: 5
Liczba wątków: 1
Dołączył: 19-08-2009
Reputacja:
0
19-08-2009, 19:01
(Ten post był ostatnio modyfikowany: 19-08-2009, 19:03 przez demboo.)
Witam,
tworze menu z przycisków (div):
Kod: <div class="przycisk"><p class="menu"><span><a class="menu" href="">O MNIE</a></span></p></div>
nadawałem z bezsilności parametr 'vertical-align:middle;' dla <div> <p>, <span> oraz <a> ale w żdanym przypadku tekst nie wyśrodkowuje się względem górnej i dolnej krawędzi, dlaczego ?
Dodam też, że <span> umieszczałem już przed <p> <a> i zupełnie do wewnątrz <span>O MNIE</span>, ale to i tak nic nie dało.
Pozdrawiam
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
Wyśrodkowujesz menu względem całej strony, czy tekst względem menu?
Wklej też CSS.
Liczba postów: 5
Liczba wątków: 1
Dołączył: 19-08-2009
Reputacja:
0
19-08-2009, 21:16
(Ten post był ostatnio modyfikowany: 19-08-2009, 21:31 przez demboo.)
Wyśrodkowuję tekst względem diva id=przycisk.
Wklejam całość:
Kod: * {
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
body
{
background-image : url("images/tlo.jpg");
background-repeat : repeat-x;
}
div#glowny
{
border:0px solid black;
width:1000px;
margin: 0 auto;
}
div#head
{
border:0;
width:1000px;
height:327px;
margin: 0 auto;
background-image : url("images/head.jpg") ;
}
div#baner
{
position: relative;
top: 55px;
left: 0px;
width:1000px;
height:242px;
}
div#tresc
{
border:0;
width:1000px;
height:200px;
background-color: white;
}
div#stopka
{
border:0;
width:1000px;
height:118px;
background-image : url("images/stopka.jpg") ;
}
div#menu
{
margin: 0px 0px 0px 50px;
}
div.przycisk
{
width: 161px;
height: 49px;
background-image: url(images/p_menu.jpg);
float: left;
display: block;
text-align:center;
display: block;
}
p.menu
{
padding-top: 50%px;
text-align: center;
font-family: Times New Roman;
font-weight: bold;
font-size: 15px;
color: #222222;
}
a.menu
{
text-decoration: none;
color: #222222;
}
span
{
}
/* ]]> */
</style>
</head>
<body>
<div id="glowny">
<div id="head">
<div id="baner"></div>
</div>
<div id="tresc">
<div id="menu">
<div class="przycisk"><p class="menu"><a class="menu" href=""><span>O MNIE</span></a></p></div></div>
<div class="przycisk"><p class="menu"><a class="menu" href="">GALERIA I MULTIMEDIA</a></p></div>
<div class="przycisk"><p class="menu"><a class="menu" href="">BIURO<br />POSELSKIE</a></p></div>
</div>
</div>
<div id="stopka"></div>
</div>
</body>
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
19-08-2009, 21:37
(Ten post był ostatnio modyfikowany: 19-08-2009, 21:40 przez Labsta.com.)
Spróbuj dodać do div.przycisk line-height: 49px; taki sobie sposób, ale zwykle daje radę w prostych przypadkach. Jak nie da to może to być winna innych wartości np. padding-top: 50%px; - co to ma być ?
Liczba postów: 5
Liczba wątków: 1
Dołączył: 19-08-2009
Reputacja:
0
19-08-2009, 21:49
(Ten post był ostatnio modyfikowany: 19-08-2009, 21:49 przez demboo.)
 nie, no to -50px to pozostałość po moich próbach znalezienia rozwiązania.
To line-height to jest rozwiązanie, ale:
1. nie w przypadku gdy pozostałe pozycje mają <br> i napisy się rozjeżdżają poza przycisk
2. chciałbym również wiedzieć jak wyśrodkowywać teksty względem górnej i dolnej krawędzi i czy vertical-align jest do tego odpowiedni
Rozwiązanie, które mi podałeś mogłoby być OK, ale jest rozwiązaniem 'na chwilę', nie daje poglądu na ogół sprawy i dlatego błagam dalej o pomoc w znalezieniu jakiegoś uniwersalnego sposobu na wyśrodkowywanie tekstów góra-dół.
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
19-08-2009, 21:55
(Ten post był ostatnio modyfikowany: 19-08-2009, 21:56 przez Labsta.com.)
Ja zwykle załatwiam to przez padding: (odpowiadnia wartość w px od góry). Możesz też zrobić to przez position:relative;. Wtedy nadaj div.przycisk Natomiast p.menu
Kod: position:relative;
top:50%;
margin-top: -(połowa wysokości czcionki)px;
Tak skomplikowane konstrukcje są odpowiednie raczej dla grafiki, a nie tekstu, ale musi zadziałać.
P.S. Ogólnie mocno namieszałeś sobie i w kodzie i w CSS na przyszłość staraj się upraszać, będziesz miał mniej problemów.
Liczba postów: 5
Liczba wątków: 1
Dołączył: 19-08-2009
Reputacja:
0
19-08-2009, 22:16
(Ten post był ostatnio modyfikowany: 19-08-2009, 22:23 przez demboo.)
Rozumiem te dwa rozwiązania, ale są one odpowiednie tylko wtedy, gdy tekst w przycisku jest w jednej linii i wtedy jasne, tekst bedzie na srodku.
Wystarczy, że tekst będzie w dwóch liniach i wtedy już nie jest na środku.
W podobny sposób zadziała rozwiązanie z position: relative;
Interesuje mnie, czy istnieje rozwiązanie bardziej uniwersalne. Takie, które będzie potrafiło wyważyć tekst i umieścić je dokładnie tak, aby między tekstem a górną i dolną krawędzią 'rodzica' było tyle samo px'ów.
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
No tak...fakt
Poczytaj to http://kurs.browsehappy.pl/CSS/Table i http://kurs.browsehappy.pl/Krok/TabeleCSS innych pomysłów nie mam, ale nic nie podpowiem, bo nie stosuje tego.
Liczba postów: 5
Liczba wątków: 1
Dołączył: 19-08-2009
Reputacja:
0
Ok, dzięki.
Będę poszukiwał. Może znajdzie się ktoś, kto zna odpowiedź na moje pytanie
|
Podobne wątki… |
Wątek: |
Autor |
Odpowiedzi: |
Wyświetleń: |
Ostatni post |
|
galeria nie działa w IE |
Nicorrtiss |
2 |
3,379 |
02-08-2013, 22:42
Ostatni post: Nicorrtiss
|
|
Css działa tylko na... IE |
catalunya |
5 |
4,618 |
21-12-2012, 15:04
Ostatni post: atp
|
|
Strona na DIV-ach nie działa w IE i Operze |
kazelot2000 |
7 |
5,649 |
03-08-2012, 16:12
Ostatni post: kazelot2000
|
|
pokazuje mi się błąd strona nie działa |
jabol73 |
1 |
2,295 |
28-07-2012, 18:17
Ostatni post: Pedro84
|
|
Formularz nie działa |
raxiq |
9 |
5,284 |
26-06-2012, 12:32
Ostatni post: raxiq
|
Użytkownicy przeglądający ten wątek:
|
|
Sponsorzy i przyjaciele
|
|
|