Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
… а css — оставить функцию оформления элементов, т.е. то ради чего он и был создан.

Гриды, например, не работают когда нужно на мониторах класть 3 элемента в ряд, а на телефонах — в столбец.
Потом нужно учитывать что контент внутри может сам менять размер, например текст в зависимости от языка, и ценнее уместить текст чем выполнить ограничение в 80% ширины.
Но даже если ты найдешь универсальную мат. модель, реализуешь ее, будет ли это удобнее и понятнее для простых веб-разработчиков?
block.my_div='center middle'; — и знать что этот блок будет по центру экрана.Гриды, например, не работают когда нужно на мониторах класть 3 элемента в ряд, а на телефонах —в столбец.
В идеале хотелось бы создать некий «мини-язык» упрощающий возможности разметки документа для человека не являющегося специалистом в JavaScript. В таком «мини-языке» можно было бы максимально просто сформулировать правила адаптации макета к любому разрешению экрана. А JavaScript обеспечил бы выполнение этих правил.
При обычной верстке html – задает структуру контента, а css – управляет и позиционированием и визуальным представлением документа. Эта двойственность css приводит к раздутым файлам стилей, внутри которых бывает сложно ориентироваться. Одни и те же свойства управляют и положением и внешним видом элементов – это вносит путаницу и затрудняет отладку.
При этом естественно я не предлагаю отказываться от css верстки. Предлагаемый инструмент только помогает реализовать некоторые вещи проще и быстрее, а степень его использования определяет верстальщик.
<div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="gutters:false, liveSplitters:false" style="width: 100%; height: 100%;">
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="splitter:false, region:'top'" id="header">
</div>
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="splitter:false, region:'center'" id="main_content">
</div>
</div>
new dijit.layout.BorderContainer().placeAt('bc');
...
Мысли о верстке с JavaScript позиционированием