[css] jak pozbyć się wcięcia ul?

0

Mój ul mieści sie w div. Chcę go wycentrować. Nie wychodzi mi to, ponieważ nie mogę pozbyć się odstępu z lewej strony. Szczególnie to widać, gdy ul nie jest wycentrowany. Jest wtedy odstęp z lewej.

Znalazłem info, że można to usunąć poprzez margin-left:-40px, ale to powoduje, że lewa granica mojego div wychodzi poza swoje ograniczenia (wyłazi poza div'a, w którym sam siedzi). Tego efektu pewnie nie będzie widać, bo obramowanie służy tylko jako orientacja podczas projektowania, jednakże takie rozwiązanie mnie nie satysfakcjonuje. Coś możecie mi doradzić?

2

Wcięcie może być definiowane przez style przeglądarki jako margines (margin-left) lub dopełnienie (padding-left) na elementach ul lub samych li. Ustaw te własności na zero.

Aby oszczędzić czas i nie pytać się tutaj o takie pierdoły, zainstaluj sobie Firefoxa z Firebugiem lub uruchom inne podobne narzędzie i po prostu sprawdź, co domyślnie powoduje odstęp w danym elemencie. Ja w ogóle polecam zastosowanie resetu CSS, np. Erica Meyera. I on kasuje wszystkie domyślne odstępy i wcięcia. Sam sobie je definiujesz tam, gdzie trzeba.

0

dzięx

Firebug ma sporo możliwości - pytam bo po prostu ich wszystkich nie ogarnąłem.

BTW: firebuga mam, ale chrome ma takie samo cudo wbudowane: wygląda podobnie, działa identycznie; wszystko sprowadza się do braku wiedzy bądź świadomości co w tym tkwi

Edit:

znalazłem co chciałem, ale pojawiła się dziwna rzecz. Do usunięcia wcięcia przed ul potrzebuję w CSS dwóch parametrów na raz: padding-left:0px; padding:0px, gdy usunę jedno to wcięcie powraca. Nie powinno być tak, że dowolny z nich rozwiązuje problem? Przecież oba modyfikują padding z lewej strony, tylko że padding wpływa jeszcze na pozostałe.

0

Możesz dać link do dokumentu w którym to się dzieje? I zaznaczyć, pod jaką przeglądarką? Zobaczymy o co chodzi. Reguły kaskady są jakoś tam skomplikowane i najlepiej będzie jak po prostu zerknę co się dzieje zamiast zadawać w ciemno serię 10 pytań. Nie powinno być tak, że wymagane są na tym samym elemencie padding i padding-left ustawione na zero by usunąć lewe dopełnienie. W grę wchodzi jeszcze np. błąd składni w rodzaju zagubionego średnika.

Co do Firebuga to rzeczywiście jest złożonym narzędziem i pewnie ja sam nie znam jeszcze wszystkich jego opcji. Ważne, by je poznawać w miarę potrzeb. Jak klikniesz na Zbadaj (Inspect chyba po angielsku) i dojedziesz do jakiegoś elementu, to w prawej części Firebuga możesz kliknąć na Układ (Layout?) i tam Ci się wyświetla model pudełkowy dla danego elementu, z marginesami, dopełnieniami itp.

0

już znalazłem co jest przyczyną. Dodatkowy parametr, który nic nie wnosił powodował to dziwne zachowanie: clear:left

chodzi o strukturę div takiej postaci

 <div id="box">
<div id="nav">
</div>
</div>

style do tego

#nav ul {  /*ten odstęp przed ul powodowało clear:left*/
    margin:0px;
    position:relative;
    padding:0px;
}
#nav ul li {
    display:inline;
    position:relative;
}
#nav ul li ul {
    z-index:100;
    position:absolute;
    padding:0px 10px;
    display:none;
    background-color:white;
    line-height:1.5;
}
#nav ul li:hover ul {
    display:block;
}
#nav ul li ul li {
    display:block;
    white-space:nowrap
} 

Wskazana reguła wykazywała to dziwne zachowanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1