О простоте концепции
hardsign — 13.10.2025
Потратил выходные на практическое изучение таблиц стилей (CSS). Действительно, концепция оказалась весьма простой, её практически точно сформулировал один из комментаторов: «Есть классы элементов, которым присваиваются атрибуты». Всё.
И вот эта простота концепции оказалась очень и очень подлой штукой.
Когда-то я попал на лекцию учёного-биолога, где услышал, что возвратный гортанный нерв у жирафа соединяет две точки на расстоянии нескольких сантиметров друг от друга, но при этом имеет длину около 4 метров, т. к. проходит вниз и вверх по шее, ныряя под аорту. Этот нерв есть у всех млекопитающих, которые унаследовали его от рыб. Только вот у рыб нет шеи, и траектория этого нерва оптимальна.
— Если бы Бог был инженером, — сказал тогда лектор, — он вполне мог бы перепроектировать и человека, и жирафа, значительно сократив этот нерв. Но увы, эволюция так не работает. А вот мы можем взять всё и переделать...
О, наивный юноша, погружённый в академическую науку и никогда не слышавший об обратной совместимости и дедлайнах с ограниченными бюджетами!
Вот казалось бы, когда проектировали CSS, можно было бы уделить разработке концепции чуть больше внимания: как классифицируются элементы, какие атрибуты у какого класса элементов есть, как они наследуются, в каких единицах выражаются и так далее. Но скорее всего, проектировалось всё совсем не так: в этом квартале доля нашего браузера снизилась на 0.7%, поэтому надо срочно запилить киллер-фичу! Некогда думать и расписывать «концепции», надо писать код! Вперёд, гип-гип, ура!
В результате всё вроде бы работает, но как-то немножко криво. И в целом стандартные задачи более или менее решаются примерами из всевозможных «кукбуков», но когда задача не совсем стандартная, иногда приходится применять всякие не очевидные решения. Потому что «атрибуты» есть не только в CSS, но и в html, который разрабатывался совсем по другим принципам.
Например, если ты указываешь ширину элемента в 100% экрана, то он получается чуть шире, чем текущее окно. А если не указываешь — ну, тогда шириной точно с окно.
Или, например, изображение может легко увеличить размер родительского элемента. Чтобы этого не происходило, вместо изображения надо вставить пустой раздел, фоном которого будет нужное изображение.
В общем, весело. Но результат мне пока нравится.
|
|
</> |
Как быстро выучить английский язык: эффективные методы 
