Blokuj elementy a elementy wbudowane w HTML: dlaczego to rozróżnienie?

15

Rozróżnienie między elementami blokowymi i liniowymi zawsze wydawało mi się dziwne. Cała różnica polega na tym, że element blokowy zajmuje całą szerokość, wymuszając w ten sposób przerwanie linii przed i za elementem, a element wbudowany zajmuje tyle samo, co treść. Dlaczego nie mieć tylko jednego rodzaju elementu - elementu wbudowanego, w którym można również zastosować niestandardową wysokość / szerokość i użyć go? Chcesz podziału linii? Wstaw <br />, a może dodaj specjalny znacznik do CSS dla tego zachowania. Sposób, w jaki jest teraz, nie widzę rozwiązania żadnego problemu, a zamiast tego wymusza jedynie właściwość, która moim zdaniem powinna zostać podjęta przez projektanta.

Dlaczego więc te dwa typy?

EpsilonVector
źródło
Moją ulubioną częścią tego pytania jest to, w jaki sposób używa on stylu wbudowanego dla <br/>i <p>znacznika, aby oddzielić ostatnią linię od pierwszego akapitu. Być może powinieneś zacząć przyglądać się ogromnym różnicom w intencjach wizualnych, a nie różnicom we wdrażaniu.
riwalk
1
Chociaż w 100% uważam, że elementy blokowe są przydatne i nie zgadzam się z proponowanym przez ciebie rozwiązaniem, to wciąż jest wielkie pytanie.
Nicole,

Odpowiedzi:

13

Mówisz:

Chcesz podziału linii? Wstaw <br />, a może dodaj specjalny znacznik do CSS dla tego zachowania. Sposób, w jaki jest teraz, nie widzę rozwiązania żadnego problemu, a zamiast tego wymusza jedynie właściwość, która moim zdaniem powinna zostać podjęta przez projektanta.

Jesteś na dobrej drodze - projektant powinien zdecydować o stylu.

Ale masz problem na odwrót. Wstawienie <br/>znacznika jest tak naprawdę opcją, która „wymusza właściwość, o której decyduje projektant” - wewnątrz dokumentu znaczników, gdy już <br/>tam jest, jest tam - i tylko przy pomocy jakiegoś trudnego / zhackowanego CSS możesz usunąć jego efekt.

Inline / block elements, z drugiej strony, to elementy czysto stylowe z wygodną wartością domyślną dla typowego przypadku użycia. Sama właściwość wizualna może zostać natychmiast zmieniona przez projektanta CSS za pomocą display:inlinelub display:block.

Weźmy na przykład wspólny element nawigacji w dzisiejszych czasach - <li>. Są to blockelementy domyślnie , ale projektanci sprawią, że będą floatpojawiać się w linii ( blockma więcej specjalnych właściwości niż tylko zajęcie całej linii, ale to rozmowa na inny dzień).

Nicole
źródło
3

Większość elementów ma standardowe formatowanie ... Twoje pytanie może zostać rozszerzone, aby powiedzieć, że formatowanie powinno być decyzją projektanta i powinno zostać usunięte. Zawsze po prostu myślałem, że to punkt wyjścia i w razie potrzeby usunąłem formatowanie (często nie było). Ale w końcu są pewne rzeczy naturalne. Jeśli masz na przykład akapit, oczekujesz, że będzie to element blokowy, ponieważ taka jest natura akapitu. Bez względu na to, czy elementy mają ustawienia domyślne, takie jak blok lub wstawianie, zdecydowanie chciałbym w każdym razie móc określić tę opcję. Powodem, dla którego mówię, że jest to IMO, jego sprzątaczka, aby rozbić rzeczy w ten sposób w porównaniu do rzucania<br />w HTML. Czy to robi to samo? Tak. Jednak w związku z najnowszymi osiągnięciami HTML duży wysiłek skupił się na uczynieniu go bardziej semantycznym językiem, w którym mniej wkładasz HTML, jeśli chodzi o formatowanie, a więcej w CSS. <br />Przerwa środki linia, która jest zazwyczaj odnoszące się do podziału wiersza w akapicie drugim zdanie zawierające lub struktury. W końcu nie ma to dla mnie znaczenia, ale osobiście chcę mieć możliwość rozróżniania bloków i wstawiania, więc mam nadzieję, że nigdy nie usuną tego przynajmniej ze strony CSS!

Kenneth
źródło
2

To tak jakby powiedzieć, że nie ma prawdziwej różnicy między akapitami a zdaniami. Akapity ograniczają grupę pomysłów. Zazwyczaj zdanie dotyczy jednego pomysłu.

Znaczniki dotyczą semantyki, a nie wyświetlania. Rzeczywiście, projektant może traktować każdy element, który domyślnie ma styl blokowy, jako wbudowany i odwrotnie.

Izmael
źródło
2

W LaTeX istnieją dwa tryby (bez trybu matematycznego): tryb poziomy i tryb pionowy. Elementy (znaki) to małe pola, które gromadzą się „w poziomie” w akapicie. Następnie te większe pudełka kumulują się pionowo. Jest to podobne do (X) HTML: wbudowany i blok.

Olivier Pirson
źródło
0

Dla mnie to wygląda na problem kompatybilności wstecznej. Element inline był prawdopodobnie późniejszym dodatkiem do standardu HTML, więc aby strony internetowe napisane w 1992 r. Można było nadal oglądać w 2011 r., Nadal jest ono obsługiwane - tak jak istnieje mnóstwo 19-letnich stron internetowych ...!


źródło
-1

Myślę, że tryby wyświetlania są tak różne między blokami i liniami, że warto wprowadzić rozróżnienie na poziomie znaczników.

JoeM05
źródło