Mam bardzo podstawowy i znany scenariusz formularza, w którym muszę poprawnie wyrównać etykiety obok danych wejściowych. Jednak nie wiem, jak to zrobić.
Moim celem byłoby wyrównanie etykiet obok danych wejściowych po prawej stronie. Oto przykład obrazu pożądanego wyniku.
Zrobiłem skrzypce dla twojej wygody i wyjaśnienia, co mam teraz - http://jsfiddle.net/WX58z/
Skrawek:
<div class="block">
<label>Simple label</label>
<input type="text" />
</div>
<div class="block">
<label>Label with more text</label>
<input type="text" />
</div>
<div class="block">
<label>Short</label>
<input type="text" />
</div>
Chociaż rozwiązania tutaj są wykonalne, nowsza technologia stworzyła to, co uważam za lepsze rozwiązanie. Układ siatki CSS pozwala nam stworzyć bardziej eleganckie rozwiązanie.
Poniższy arkusz CSS zawiera 2-kolumnową strukturę „ustawień”, w której pierwsza kolumna ma być etykietą wyrównaną do prawej strony, a po niej część treści w drugiej kolumnie. Bardziej skomplikowaną treść można przedstawić w drugiej kolumnie, umieszczając ją w <div>.
[Na marginesie: używam CSS, aby dodać „:”, który śledzi każdą etykietę, ponieważ jest to element stylistyczny - moje preferencje.]
źródło
grid-template-columns: max-content 1fr;
, druga kolumna wykorzysta całą pozostałą szerokość. To dla mnie święty Graal takich układów, w których nie trzeba określać szerokości kolumn ani treści, a wszystko automatycznie dopasowuje się idealnie do dostępnej przestrzeni.Odpowiedziałeś wcześniej na takie pytanie, możesz spojrzeć na wyniki tutaj:
Tworzenie formularza tak, aby pola i tekst znajdowały się obok siebie - jaki jest semantyczny sposób, aby to zrobić?
Aby zastosować te same reguły do swoich skrzypiec, możesz użyć
display:inline-block
do wyświetlania obok siebie etykiet i grup wprowadzania, na przykład:CSS
zaktualizowane skrzypce
źródło
Używam czegoś podobnego do tego:
Styl:
źródło
Możesz także spróbować użyć flex-box
źródło
Wiem, że to stary wątek, ale łatwiejszym rozwiązaniem byłoby osadzenie danych wejściowych w etykiecie w następujący sposób:
źródło
Oto ogólna szerokość etykiet dla wszystkich etykiet formularzy. Nic nie określa szerokości.
wywołaj kalkulator setLabelWidth ze wszystkimi etykietami. Ta funkcja załaduje wszystkie etykiety do interfejsu użytkownika i ustali maksymalną szerokość etykiety. Zastosuj zwracaną wartość poniższej funkcji do wszystkich etykiet.
źródło
Możesz zrobić coś takiego:
HTML:
CSS:
Mam nadzieję że to pomoże ! :)
źródło