Czy istnieje sposób, aby zapobiec podziałowi wiersza po elemencie div z css?
Na przykład mam
<div class="label">My Label:</div>
<div class="text">My text</div>
i chcesz, aby wyświetlał się jak:
Moja etykieta: mój tekst
Odpowiedzi:
display:inline;
LUB
float:left;
LUB
display:inline-block;
- Może nie działać we wszystkich przeglądarkach.
Jaki jest cel używania div
tutaj? Sugerowałbym span
, ponieważ jest to element na poziomie liniowym, podczas gdy a div
jest elementem blokowym.
Zwróć uwagę, że każda z powyższych opcji będzie działać inaczej.
display:inline;
zamieni się div
w odpowiednik a span
. Będzie to wpływu margin-top
, margin-bottom
, padding-top
, padding-bottom
, height
, itd.
float:left;
zachowuje div
jako element blokowy. Nadal będzie zajmował miejsce jak blok, jednak szerokość zostanie dopasowana do zawartości (zakładając width:auto;
). Może wymagać clear:left;
pewnych efektów.
display:inline-block;
to opcja „najlepsza z obu światów”. div
Jest traktowany jako element bloku. Reaguje na wszystkie margin
, padding
i height
zasad zgodnie z oczekiwaniami dla elementu blokowego. Jednak jest traktowany jako element wbudowany w celu umieszczenia w innych elementach.
Przeczytaj to, aby uzyskać więcej informacji.
Te div
elementy są elementy blokowe, więc domyślnie biorą upp pełną dostępną szerokość.
Jednym ze sposobów jest przekształcenie ich w elementy wbudowane:
.label, .text { display: inline; }
Będzie to miało taki sam efekt, jak użycie span
elementów zamiast div
elementów.
Innym sposobem jest unoszenie elementów:
.label, .text { float: left; }
Zmieni to sposób określania szerokości elementów, dzięki czemu thwy będzie tylko tak szeroki, jak ich zawartość. Spowoduje to również, że elementy będą unosić się obok siebie, podobnie jak obrazy przepływają obok siebie.
Możesz także rozważyć zmianę elementów. div
Element jest przeznaczony do podziałów dokumentu, zazwyczaj użyć label
i do span
elementu do konstruktu w taki sposób:
<label>My Label:</label>
<span>My text</span>
Elementy div są używane do nadawania struktury witrynie lub do zawierania dużej ilości tekstu lub elementów, ale wydaje się, że używasz ich jako etykiety, powinieneś użyć span, automatycznie umieści oba teksty obok siebie i nie będziesz musiał pisać kod css do tego.
A nawet jeśli inni ludzie powiedzą ci, że musisz unosić elementy, najlepiej po prostu zmienić tagi.
Spróbuj zastosować clear:none
atrybut css do etykiety.
.label {
clear:none;
}
div
nadal ma wartość domyślną, width:auto
która sprawia, że zajmuje całą dostępną szerokość.
Wiele razy udało mi się uzyskać elementy div bez podziałów linii po nich, bawiąc się atrybutem float css i atrybutem css szerokości.
Oczywiście po wypracowaniu rozwiązania trzeba je przetestować we wszystkich przeglądarkach, aw każdej z nich trzeba zmienić rozmiar okien, aby upewnić się, że działa w każdych okolicznościach.