Мне нравится использовать темы, но, как указал Радж в своем ответе, перезапись URL может вызвать проблемы. Мой поиск некоторых решений этого и привел меня к вашему вопросу. Но я все равно добавлю свое мнение.
Я расскажу некоторые из ваших пунктов выше, почему я считаю темы хорошими:
- Тема подбирает каждый CSS-файл в папке
Полагаю, вы хотите применить только определенные файлы стилей к определенным страницам. Да, темы используют подход ружья, так что это проблема. Но вам не нужно помещать все таблицы стилей в папку темы. Поместите ваши специализированные вне его, и они не будут включены автоматически. Но я думаю, что это хорошая возможность автоматически включать общие / общие для сайта.
- Если вы хотите использовать стили сброса (если порядок важен), порядок импортируемых таблиц стилей не гарантируется
Я думаю, вы можете гарантировать порядок по именам файлов, поэтому они упорядочены по номерам и алфавиту. Возможно не элегантное решение, но не ужасное.
Лично у меня есть шаг сборки, который объединяет и сжимает все файлы * .css в папке моей темы в один файл style.css, и, поскольку я контролирую этот шаг сборки и порядок их объединения, не влияет на меня.
- Ваша главная страница не будет явно указывать, какой стиль используется, только отрендеренная страница может сказать вам это, если вы не покопаетесь в своем web.config
Вы можете изменить тему с помощью кода и в директиве <% @ Page </p>
- Стилизовать веб-элементы управления с помощью файла темы ... ну ... глупо? Вы можете просто сделать это в своей таблице стилей. Детальный контроль должен быть на уровне HTML, не так ли?
Я согласен, что применение атрибутов стиля к элементам управления через тему не является наилучшей практикой. Но мне нравится тот факт, что я могу определять обложки изображений в файлах обложек темы, и мне не нужно вырезать и вставлять атрибуты «Ширина», «Высота», «Альтернативный текст», «Выравнивание» для общих изображений, которые я использую во многих местах по всему сайту. И если я когда-нибудь изменю одно из этих изображений, я могу исправить атрибуты в одном месте, а не во всем. Я также могу создавать скинованные элементы управления с определенным списком примененных классов CSS, что мне кажется удобным.
- Как указать таблицы стилей печати, не имея всех стилей в одной таблице стилей?
У меня есть файл Print.css, который начинается с @media print и определяет стили печати для моего сайта. Почему вы должны поместить их в одну таблицу стилей?