Chcę ustawić element span, aby pojawiał się pod innym elementem za pomocą właściwości display. Próbowałem zastosować blok inline, ale bez powodzenia, i pomyślałem, że mógłbym użyć bloku, jeśli w jakiś sposób uda mi się uniknąć nadania elementowi szerokości 100% (nie chcę, aby element się „rozciągał”). Czy można to zrobić, a jeśli nie, jakie są dobre praktyki przy rozwiązywaniu tego rodzaju problemów?
Przykład: lista wiadomości, na której chcę ustawić link „czytaj więcej” na końcu każdego posta (uwaga: <a>
zamiast <span>
)
<li>
<span class="date">11/15/2012</span>
<span class="title">Lorem ipsum dolor</span>
<a class="read-more">Read more</a>
</li>
Aktualizacja: rozwiązane. W CSS zastosuj
li {
clear: both;
}
li a {
display: block;
float: left;
clear: both;
}
Odpowiedzi:
Jeśli dobrze rozumiem twoje pytanie, poniższy kod CSS przeniesie twoją a poniżej rozpiętości i sprawi, że nie będzie miała 100% szerokości:
a { display: block; float: left; clear: left; }
źródło
Użyj
display: table
.Ta odpowiedź musi mieć co najmniej 30 znaków; Wpisałem 20, więc oto kilka więcej.
źródło
margin: 0 auto;
jeśli potrzebujesz go wyśrodkowany.display: table;
działa, ale nie akceptuje dopełnienia.możesz użyć:
width: max-content;
Uwaga: obsługa jest ograniczona, sprawdź tutaj pełny opis obsługiwanych przeglądarek
źródło
inline-block
et al psuje mój układ.Zachowałbym każdy wiersz w swoim własnym div, więc ...
<div class="row"> <div class="cell">Content</div> </div> <div class="row"> <div class="cell">Content</div> </div>
A potem dla CSS:
.cell{display:inline-block}
Trudno jest znaleźć rozwiązanie bez zobaczenia oryginalnego kodu.
źródło
Znowu: odpowiedź, która może być trochę za późno (ale dla tych, którzy i tak znajdą tę stronę jako odpowiedź).
Zamiast
display:block;
używaćdisplay:inline-block;
źródło
Spróbuj tego:
li a { width: 0px; white-space:nowrap; }
źródło
Możesz użyć następujących:
display: inline-block;
Działa dobrze z linkami i innymi elementami.
źródło
Miałem ten problem, rozwiązałem go tak:
.parent { white-space: nowrap; display: table; } .child { display: block; }
"white-space: nowrap" zapewnia, że dzieci dziecka (jeśli takie istnieją) nie zawijają się do nowej linii, jeśli nie ma wystarczającej ilości miejsca.
bez „spacji: nowrap”:
z „white-space: nowrap”:
edycja: wydaje się, że działa również bez części bloku potomnego, więc wydaje się, że działa dobrze.
.parent { white-space: nowrap; display: table; }
źródło