Biorąc pod uwagę ten HTML:
<div>foo</div><div>bar</div><div>baz</div>
Jak sprawić, by wyświetlały się w następujący sposób:
foo bar baz
nie tak jak to:
foo
bar
baz
To coś innego:
div.inline { float:left; }
.clearBoth { clear:both; }
<div class="inline">1<br />2<br />3</div>
<div class="inline">1<br />2<br />3</div>
<div class="inline">1<br />2<br />3</div>
<br class="clearBoth" /><!-- you may or may not need this -->
Inline div jest wybrykiem sieci i należy go pokonać, aż stanie się rozpiętością (co najmniej 9 razy na 10) ...
... odpowiada na oryginalne pytanie ...
źródło
Spróbuj napisać w ten sposób:
źródło
Po kilkukrotnym przeczytaniu tego pytania i odpowiedzi mogę jedynie założyć, że trwało sporo edycji, i podejrzewam, że otrzymałeś niepoprawną odpowiedź z powodu niewystarczającej ilości informacji. Moja wskazówka pochodzi od użycia
br
tagu.Przepraszam Darryl. Czytam class = „inline” jako style = „display: inline”. Masz poprawną odpowiedź, nawet jeśli używasz semantycznie wątpliwych nazw klas ;-)
Nieudane użycie
br
do zapewnienia układu strukturalnego zamiast do układu tekstowego jest zdecydowanie zbyt powszechne dla moich upodobań.Jeśli chcesz umieścić w nich więcej niż elementy wbudowane
divs
, powinieneś unosić te elementydiv
zamiast umieszczać je w linii.Pływające divy:
Inline divs:
Jeśli szukasz pierwszego, oto twoje rozwiązanie i zgub te
br
tagi:zwróć uwagę, że szerokość tych div jest płynna, więc możesz je nałożyć, jeśli chcesz kontrolować zachowanie.
Dzięki, Steve
źródło
Użyj
display:inline-block
z marginesem i zapytaniem o media dla IE6 / 7:źródło
Oto kod HTML zgodnie z Twoimi wymaganiami:
Możesz to zrobić na dwa sposoby
display:inline-block;
float:left;
więc musisz
display:inline-block;
zdecydowanie zmienić właściwość wyświetlaniaPrzykład pierwszy
Przykład drugi
źródło
Jak wspomniano, display: inline jest prawdopodobnie tym, czego chcesz. Niektóre przeglądarki obsługują również bloki wbudowane.
http://www.quirksmode.org/css/display.html#inlineblock
źródło
Wystarczy użyć div otoki z „float: left” i umieścić w środku pola zawierające również float: left:
CSS:
HTML:
źródło
<span>
?źródło
dla mnie ok :
źródło
Używałbym rozpiętości lub unosiłbym div w lewo. Jedynym problemem związanym z przestawianiem jest to, że musisz później wyczyścić zmiennoprzecinkową, lub zawierający div musi mieć styl przepełnienia ustawiony na auto
źródło
Wiem, że ludzie twierdzą, że to okropny pomysł, ale w praktyce może być przydatny, jeśli chcesz zrobić coś w rodzaju obrazów kafelkowych z komentarzami pod nimi. np. Picasaweb używa go do wyświetlania miniatur w albumie.
Zobacz na przykład / demo http://closure-library.googlecode.com/svn/trunk/closure/goog/demos/inline_block_quirks.html (klasa goog-inline-block; tutaj skracam do ib)
Biorąc pod uwagę, że CSS, ustaw div na klasę ib, a teraz jest magicznie wbudowanym elementem blokowym.
źródło
Musisz zawierać trzy divy. Oto przykład:
CSS
Uwaga: atrybuty border-radius są opcjonalne i działają tylko w przeglądarkach zgodnych z CSS3.
HTML
Zauważ, że pasek div foo i pasek baz są przechowywane w div zawierającym.
źródło
źródło
Myślę, że możesz używać tego w ten sposób bez użycia css -
W tej chwili używasz elementu poziomu bloku w ten sposób, aby uzyskać niechciany wynik. Możesz więc wstawić element taki jak rozpiętość, mały itp.
źródło
możemy to zrobić tak
źródło
http://jsfiddle.net/f8L0y5wx/
źródło
źródło
Po prostu dążę do tego, aby miały stałe szerokości, aby sumowały się do całkowitej szerokości strony - prawdopodobnie działa tylko wtedy, gdy używasz strony o stałej szerokości. Również „unosić się”.
źródło