Ponieważ to pytanie zyskuje wiele opinii i była to akceptowana odpowiedź, poczułem potrzebę dodania następującego zastrzeżenia:
Ta odpowiedź była specyficzna dla pytania PO (które miało szerokość określoną w przykładach). Chociaż to działa, wymaga szerokości każdego elementu, obrazu i akapitu. O ile nie jest to Twoje wymaganie, polecam skorzystanie z rozwiązania Joe Conlin, które jest zamieszczone jako kolejna odpowiedź na to pytanie.
Plik span
Element jest elementem inline, nie można zmienić jego szerokość w CSS.
Możesz dodać następujący CSS do swojego zakresu, abyś mógł zmienić jego szerokość.
display: block;
Innym sposobem, który zwykle ma większy sens, jest użycie <p>
elementu jako rodzica dla twojego <span>
.
<li id="CN2787">
<img class="fav_star" src="images/fav.png">
<p>
<span>Text, text and more text</span>
</p>
</li>
Ponieważ <p>
jestblock
elementem, możesz ustawić jego szerokość za pomocą CSS, bez konieczności zmiany czegokolwiek.
Ale w obu przypadkach, ponieważ masz teraz element blokowy, będziesz musiał przesunąć obraz tak, aby cały tekst nie znalazł się pod obrazem.
li p{width: 100px; margin-left: 20px}
.fav_star {width: 20px;float:left}
PS Zamiast float:left
na obrazie, można również umieścić float:right
na li p
ale w takim przypadku konieczne będzie także text-align:left
prawidłowo wyrównać tekst.
PSS Jeśli zdecydowałeś się na pierwsze rozwiązanie polegające na nie dodawaniu <p>
elementu, twój CSS powinien wyglądać tak:
li span{width: 100px; margin-left: 20px;display:block}
.fav_star {width: 20px;float:left}