2011-07-04 18 views
6

Chcę, aby lista stylów, która nie ma marginesu - pozostawiona na pierwszym poziomie. Ale robi na kolejnych, wyrównanych podlistach. Ktoś wie, jak to zrobić?ul bez marginesu na pierwszym poziomie zagnieżdżonej listy?

<ul> 
<li>no margin</li> 
<li> 
    <ul> 
    <li>yes margin</li> 
    </ul> 
</li> 
</ul> 

(bez dodawania klas css do pierwszego poziomu ul lub zmianą kodu)

Odpowiedz

3

Czy pierwsza ul bezpośrednim potomkiem ciała? Wiem, że powiedziałeś, że nie dodawałeś klas CSS do kodu, ale zakładam, że dodanie rzeczy do arkusza stylów nie jest wykluczone? Jeśli więc można użyć deklaracji stylu jak:

body > ul{ 
margin-left:0px; 
} 

lub jeśli wiesz div to nie siedzieć w ciągu:

#your_id > ul{ 
margin-left:0px; 
} 

Nie mogą być również domyślny wyściółka trzeba rozważyć.

Dzięki

+0

Dzięki, nie wiedziałem o> selektora CSS! – Wesley

+0

@Wesley: zauważ, że ['>' nie działa w IE 6] (http://www.browsersupport.net/CSS/%3E_%28child_selector%29). –

3

Powinieneś raczej usuną margines głównego <ul>, a następnie ustawić margines dla <ul> że w elemencie <li>.

ul { 
    margin-left: 0px; 
} 

li > ul { 
    margin-left: 10px; 
} 
1

Rzeczywiście, ale małe uzupełnienie do odpowiedzi TommyBs za: trzeba zastosować identyfikatora używanego w tagu html lista pozycji, tak jak poniżej:

<ul> 
<li id="your_id">no margin</li> 
<li> 
    <ul> 
    <li>yes margin</li> 
    </ul> 
</li> 
</ul> 

A w css odpowiednia linia będzie być

li#your_id { 
    margin-left:0px; 
} 
8

Jeśli chcesz to mieć zastosowanie do wszystkich <ul> s na każdej stronie arkusza stylów jest nakładana, to działa:

ul {/* Remove margin for all <ul>s (and padding, because different browsers have different default styles) */ 
    margin-left: 0; 
    padding-left: 0; 
} 

ul ul {/* Add a margin for any <ul> inside another <ul> */ 
    margin-left: 2em; 
} 

Ale jeśli chcesz, aby był stosowany do niektórych list, musisz dodać coś do kodu HTML, aby zidentyfikować te listy (jak sugerowały inne odpowiedzi).

0

W moim przypadku nie było domyślne marginesy, a ja je ustawić 0 -webkit-margin-before: 0; -webkit-margin-after: 0; -webkit-padding-start: 0;

Powiązane problemy