2010-09-26 16 views
18

mam kilka znaczników div zagnieżdżone wewnątrz siebie i kilku tagów rozpiętości zagnieżdżone jak poniżej: -znaczniki SPAN owijania wewnątrz div

<div id="leftcol"> 
    <div id="tagcloud"> 
     <span class="mytags"><a href="">tag1</a></span> 
     <span class="mytags"><a href="">tag2</a></span> 
     <!-- and a few more spans of the same type --> 
    </div> 
</div> 

Teraz problemem jest to, że przęsła przepełnienie ich kontener div tag. Czy ktoś może być na tyle uprzejmy, aby dać mi znać, jak uzyskać te przęsła do zawinięcia w ich pojemnik div (tutaj div z tagcloud id). Oba zewnętrzne elementy div mają określoną szerokość 300 pikseli.

(Dodatkowe informacje - dokonałem resetu css przy użyciu resetowania czcionek YUI po prostu przyzwyczaiłem się do CSS ..) Edytuj: -Strona internetowa może być przeglądnięta na frekshrek.appspot.com .. Chmura znaczników po prostu nie zawija się wewnątrz kontenera

+0

zrobić zdarzy się, że adres URL patrzeć na? –

+0

Wysyłanie swoich CSS również bardzo by pomogło. –

+0

możesz rzucić okiem na frekshrek.appspot.com .. – rubicondude

Odpowiedz

17

Spróbuj zadeklarować float: left; na klasie .mytagcloud. Coś jak:

.mytagcloud{ 
    float: left; 
    margin: 5px; 
    font-family: 'Reenie Beanie', arial, serif; 
} 

w pliku basiclayout.css, linia 71.

+1

Jesteś BOGIEM! :-) .. Dzięki – rubicondude

+1

Cieszę się z pomocy :) –

+2

@rubic @Freek - nie powinieneś używać 'margin: 5px;' na dowolnym pływającym elemencie. W IE6 działa podwójny błąd marginesu. Trzymałbym się z 'dopełnieniem: 5px;' lub 'marginesem: 5px 5px 5px 0;'. – orokusaki

2

Wygląda na to, że przestawiasz przęsła wewnątrz pojemnika div. Jeśli jest to przypadek, a chcesz „tagcloud” zawierać (okład) z oczkami przęsła to trzeba wyczyścić pływaków przez dodanie następujących do CSS tagcloud:

div.tagcloud { 
    overflow: auto; 
    width: 100%; 
} 

wyjaśnienie tej technice możliwe można znaleźć tutaj: http://www.quirksmode.org/css/clearing.html

+0

Nie, w ogóle nie przestawiam przęseł. Jedyne css, które się tam stosuje, określa szerokość dwóch zewnętrznych elementów div i czcionki znaczników span. To jest to. Chociaż powyższe rozwiązanie pomaga dopasować rozpiętość wewnątrz elementu div, indukuje on pasek przewijania u dołu. Nie zawija zakresu od jednej linii do drugiej poniżej, gdy szerokość ma zostać wkrótce przekroczona. – rubicondude

8

Nie masz żadnych spacji między swoimi przęsłami, więc przeglądarka widzi je wszystkie jako jedno długie słowo. Jeśli dodasz pojedynczą spację lub linię podziału między poszczególnymi zakresami, będą one traktowane jako oddzielne słowa i odpowiednio opakowane.

+1

Zawsze możesz edytować swoją pierwszą odpowiedź i albo dodać aktualizację, albo całkowicie ją zastąpić. Pomaga w utrzymaniu sekcji odpowiedzi w czystości;) –

+0

Czy byłby jakikolwiek inny sposób, ponieważ dynamicznie generuję tagi span za pośrednictwem pętli for, na serwerze, zamykając je w div i wysyłając. Nie potrafię znaleźć sposobu na dodanie spacji między nimi. – rubicondude

+0

W pętli for możesz spróbować dodać " " zaraz po tagu zamknięcia zakresu. Jest to encja html dla niepodzielonego miejsca. Na przykład serwer powinien zwrócić coś w rodzaju: ...   ...

19

Inną opcją jest po prostu ustawić tagów być wyświetlane inline-block:

.mytags { 
    display:inline-block; 
} 
+2

+1, gdy pozostanie w lewo, powoduje zniekształcenie układu –

Powiązane problemy