По этому важному вопросу не хватает дискуссий.
Есть одна ключевая причина, по которой я хочу, чтобы макет HTML / CSS был основан на TeX: отсутствие клея или пружин.
TeX на самом деле не нужно было использовать эту функцию, так как TeX всегда использовался для размещения контента на фиксированных страницах. Но самая естественная вещь в веб-браузере (с тех пор, как размеры экрана превысили 640 x 480 пикселей) - это изменить его размер, особенно ширину.
В CSS впечатляюще сложно создать что-то вроде слайд-шоу, с рамкой в центре, занимающей большую часть пространства, и двумя тонкими полосами кнопок «вперед» и «назад», соответственно, вправо и влево, которые затем изящно изменяют размеры, особенно когда мы доберемся до узкого конца спектра. Но в целом, не тратя все пространство на полях, как это делают многие современные макеты CSS.
В TeX это просто. У вас есть hbox с центральной рамой с возможностью увеличения и сжатия, а кнопки вперед и назад имеют фиксированный размер.
При увеличении ширины страницы расширяется только центральная рамка, а при уменьшении ширины только центральная рамка становится уже, пока все ее значения сжатия не будут израсходованы (минимальная ширина), затем она остановится (и предположительно горизонтальная). появится полоса прокрутки.
Это один из ключевых аспектов, который, по моему мнению, сильно отсутствует в CSS. Это настолько естественно и удивительно, что Кнут изобрел его в то время, когда динамическая разметка экрана была за десятилетия от превращения в реальность. И грустно, что этот гений был забыт.
Я предполагаю, что модель коробки и клея считалась
- слишком много для вычислений в реальном времени у более ранних веб-клиентов
- слишком «сложно» реализовать для программистов Microsoft
- слишком «запутанно» для начинающих.
Все это очень слабые аргументы ИМО.
Та же проблема возникает в схемах Java / Swing Layout. Я помню, что я реализовал настоящий Box and Glue Layout на Java для использования с SWT в проекте около 15 лет назад. Как только вы это сделаете, это так здорово.
Я ожидаю, что в следующем поколении CSS появится настоящая опция «Бокс и клей», и надеюсь, что скоро я смогу использовать ее в течение нескольких лет.