2013-08-08 10 views
5

Mam jsfiddle poniżej z przykładem linków wyświetlanych w bloku in-line, czego nie rozumiem, dlaczego na początku każdego znacznika zakotwiczenia jest jakiś dopełnienie lub margines , może ktoś mógłby mi pomóc, nie jestem pewien, czy coś przeoczyłem, ale po prostu nie mogę się domyślić, dlaczego ta wyściółka jest tam?lewa wyściółka na znaczniku zakotwiczenia

Jest to kod html:

<div class="wrapper"> 
    <header class="main-header"> 
      <h1>blah blah blah</h1> 
      <nav class="main-nav"> 
       <ul class="main-nav-links"> 
        <li><a href="#">Home</a></li> 
        <li><a href="#">About Us</a></li> 
        <li><a href="#">Get a Quote</a></li> 
        <li><a href="#">Contact</a></li> 
       </ul> 
      </nav> 
     </header> 

To jest cały kod CSS:

.wrapper { 
    width: 100%; 
    min-width: 960px; 
} 

.main-header { 
    position: relative; 
    width: 100%;  
    height: 60px; 
    background-color: #41a2cd; 
} 

.main-header > h1{ 
    float: left; 
    margin: 11px 0 0 5px; 
    color: #073a4f; 
} 

.main-nav-links > li { 
    list-style: none; 
    display: inline-block; 
} 

.main-nav-links li > a { 
    text-decoration: none; 
    display: block; 
    color: #073a4f; 
} 

.main-nav-links > li { 
    border-right: 1px solid #45b1e1; 
} 

.main-nav-links li > a:hover { 
    background-color: #ffffff; 
    /*background-color: #50bae8;*/ 
} 

http://jsfiddle.net/pDvZt/

+0

łatwy do zrozumienia, usunąć te style i dowiedzieć się różnicę. – Praveen

Odpowiedz

6

Podczas korzystania display: inline-block; będzie zostawiać odstępów 4px pomiędzy elementami, tak musisz użyć margin-left: -4px; lub rozważyć użycie zamiast tego float.

Demo (Korzystanie margin-left: -4px;)

.main-nav-links > li { 
    list-style: none; 
    display: inline-block; 
    margin-left: -4px; 
} 

Demo 2 (Korzystanie float własność)

.main-nav-links > li { 
    list-style: none; 
    float: left; 
} 

Uwaga: Nie zapomnij wyczyścić elementy pływające jeśli używasz float: left; dla li nieruchomości.


Edit: Chciałbym, aby określić, że Inorder temu zapobiec można również modyfikować znaczników (jeśli masz dostęp do niego) niż można wyrównać swoje elementy li tak, że białe przestrzeń między elementy nie będą już tam na przykład

<ul> 
    <li></li><li></li><li></li><li></li> 
</ul> 
+0

kiedy mówisz "wyczyść" pływające elementy, co dokładnie masz na myśli? i jak bym to zrobił, bo teraz to wszystko działa, ale kiedy powiększam i pomniejszam okno, moje pojemniki się zmieniają i myślę, że to dlatego, że ich nie oczyściłem. – thechrishaddad

+0

nieważne, naprawiłem, dzięki hałd! – thechrishaddad

+0

@ user1265535 kontenery zawsze kurczą się podczas powiększania lub pomniejszania, jeśli chcesz wiedzieć o clearingu, po prostu szukaj w google "float clear", a dostaniesz mnóstwo artykułów, do których możesz skierować moją odpowiedź [tutaj] (http: // stackoverflow.com/questions/12871710/why-clear-both-css/12871734#12871734) –

2

jednym rozwiązaniem jest umieszczenie

<li></li><li></li> 

w jednej linii. Dzieje się tak dlatego, że nowe linie są sformatowane jako spacje.

+0

+1 Zapomniałem dodać to: p, ale to zepsułoby jego plik źródłowy, jeśli dostanie luźny pojedynczy ciąg –

+0

Właściwie, to ogólnie biała przestrzeń, która dodaje przesunięcie o 4 piksele, a nie tylko nowe linie. –

0
<li></li><li></li> 

Jego najlepszym rozwiązaniem można uzyskać

Powiązane problemy