Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: valign dla obrazka - nie działa
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
gniotek
Witam wszystkich na forum.

Próbowałem już prawie wszystkich sposób, od positionów pod marginy i paddingi, i nie mogłem wpaść na konkretne rozwiązanie.

Na stronie:
http://czekson.krdc.com.pl/wd/index.html

logo po lewo, w pasku najwyżej nie chce mi się wyrównać do środka (paska #header), musi to być równo vertical-align: middle.
O to CSS:
Kod
#header
{
position:relative;
height: 100px;
line-height: 100px;
background: #353535;
vertical-align:middle;
}

#header img
{
margin-left: 15%;
}


a tak wygląda html
Kod
<div id="header">
        <a href="index.html"><img src="img/logo_artraf.png"/></a>
        <div id="menu">
        <ul class="header_menu">
        <li><a href="index.html">HOME</a></li>
        <li>O NAS</li>
        <li>OFERTA</li>
        <li>PORTFOLIO</li>
        <li>REALIZACJE</li>
        <li>KONTAKT</li>
        </ul>
        </div>
    </div>


Proszę o pomoc, jak to wypozycjonować żeby było równiutko na środku paska #header.
Pozdrawiam
com
co to znaczy na środku paska? w pionie, poziomie?

może to Cie zadowoli o ile o tym mowa:
  1. #header img {
  2. margin-left: 15%;
  3. margin-top: 25px;
  4. }
gniotek
Hmm, skoro mowa o vertical-align = mowa o pionie smile.gif

Nie interesuje mnie rozwiązanie w "px", zależy mi bardzo na dokładnym wyśrodkowaniu w pionie, oraz raczej wyjaśnienie i wniosek dlaczego vertical-align nie działa.
com
no to inaczej niż poprzez ustawienie marginesu tego nie zrobisz bo vertical-align działa na tekście a Ty masz tam blok div na który musisz go nałożyć na powierzchnie w której się on znajduje, bo logo i menu są w oddzielnych linach wink.gif
gniotek
No są już jakies konkrety smile.gif

A mógłbyś mi wyjaśnić, jakim sposobem udało by mi się wypozycjonować za pomocą valign?
com
http://jsfiddle.net/HBuQf/
gniotek
Kod
#header
{
background: #353535;
width: 100%;
height:100px;
}

#logo
{
display:inline;
margin-left: 15%;
line-height:100px;
background: #353535;
}

img
{
vertical-align:middle;
}


Co robię źle, nadal przyssany do góry sad.gif
gniotek
Najwidoczniej mam jakiś błąd w CSS.

Próbowałem metodą zrozumienia użyć CSS który dałeś, com - lecz niestety efekt ten sam, logo jest na górze.
Więc mówię ze jaki to ja głupi nie jestem i skopiowałem cały CSS z jsfiddle i to samo.

Masakra, widzicie co jest problemem?
MountainDew
Cytat(gniotek @ 1.12.2013, 01:04:40 ) *
Masakra, widzicie co jest problemem?

Problemem jest float:right; w #menu
com
niestety nie mam pojęcia skopiowałem 1 do 1 z twojego kodu http://jsfiddle.net/q9eXk/ i efekt jest poprawny... ustaw sobie najwyżej reset na początku bo może to wina domyślnych ustawień gdzieś wink.gif

@up owszem, ale z tym czy bez powinno działać co widać na jsfiddle wink.gif
gniotek
dzięki panowie - rzeczywiście float right był problemem, mógłbym wiedzieć jak zdiagnozowałeś problem?
com
metodą prób i błędów... nie ma na to reguły wink.gif a skoro float odpowiada za pozycje to najłatwiej obstawić to.. nie wiem czy zauwazyłeś usunąłem jeden float:left żeby zaczęło wgl na jsfiddle działać wink.gif
gniotek
Skoro już mowa o float, to macie teraz jakis prosty pomysł żeby menu dosunąć do prawej, logo do lewej?
MountainDew
Proponuję wrzucić #logo i #menu w dodatkowy kontener który ogarnie marginesy, #logo i #menu zamienić na display: inline-block; o szerokości 50%, wtedy w #menu ustawiasz text-align: right;
Co do diagnozy problemu, floaty źle stosowane zawsze sprawiają problemy, stąd wiadomo gdzie szukać. Proponuję poczytać google pod frazą 'float issues' i stosować zgodnie z przeznaczeniem.
No i z doświadczenia dodam, że takie pozycjonowanie logo na vertical-align na prawdę rzadko ma sens, polecam korzystać z marginesów, pozdrawiam smile.gif
gniotek
Mountain, skoro twierdzisz że vertical-align nie ma sensu dla loga, to może rozważmy opcje, aby sam margin-top: 50%; centrował, tylko znowu bajka, bo pamiętam że ostatnio jak dodawałem to cała strona szła w dół o 50%, a nie samo #logo na środek #header'a.

Jakieś propozycje?

PS. Zrobiłem na razie na test to co mówiłeś, znowu się rozjeżdza...

Kod
#header
{
background: #353535;
width: 100%;
height:100px;
}

#headcont
{
margin-left:15%;
margin-right:15%;
}

#menu
{
display:inline-block;    
line-height:100px;
width:50%;
text-align: right
}

#logo
{
display:inline-block;
line-height:100px;
width:50%;
}

MountainDew
To dlatego że między #logo i #menu pojawia się extra przestrzeń wynikająca z zawartości inline. Rozwiązaniem jest 'white-space: nowrap;' dla #headcont.
Margin-top:50% jest również bezcelowy, poczytaj trochę o modelu pudełkowym, ja sugerowałbym rozwiązanie zaproponowane przez com w jego pierwszym poście.
gniotek
Dziękuję panowie za pomoc, i 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.