Темы ASP.NET - должны ли они использоваться? - PullRequest
28 голосов
/ 27 марта 2009

Я читал темы в своей книге ASP.NET и думал, что это может быть очень удобным решением, а потом столкнулся с некоторыми проблемами.

  • Тема подбирает каждый CSS-файл в папке
  • Если вы хотите использовать стили сброса (если порядок важен), порядок импортированных таблиц стилей не гарантируется
  • Ваша главная страница не будет явно указывать, какой стиль используется, только отображенная страница может сказать вам об этом, если вы не копаетесь в своем файле web.config
  • Стилизовать веб-элементы управления с помощью файла темы ... ну ... глупо? Вы можете просто сделать это в своей таблице стилей. Детальный контроль должен быть на уровне HTML, не так ли?
  • Как указать таблицы стилей печати, не имея всех стилей в одной таблице стилей?

Мне интересно, стоит ли их вообще использовать. Есть ли какая-то выгода? Есть ли какие-либо крупные сайты, использующие их?

EDIT

Просто чтобы прояснить последнюю мысль Слайфа. Если бы у меня было две таблицы стилей, одна с именем print.css и другая с именем main.css, и я использовал темы ASP.NET, как он узнал, что print.css был таблицей стилей печати? В обычном HTML вы используете медиа-тип в самом теге (т. Е. <link rel= ...>), но темы не знают об этом, поэтому он просто включается как обычная таблица стилей.

Ответы [ 3 ]

9 голосов
/ 19 июня 2009

Мне нравится использовать темы, но, как указал Радж в своем ответе, перезапись URL может вызвать проблемы. Мой поиск некоторых решений этого и привел меня к вашему вопросу. Но я все равно добавлю свое мнение.

Я расскажу некоторые из ваших пунктов выше, почему я считаю темы хорошими:

- Тема подбирает каждый CSS-файл в папке

Полагаю, вы хотите применить только определенные файлы стилей к определенным страницам. Да, темы используют подход ружья, так что это проблема. Но вам не нужно помещать все таблицы стилей в папку темы. Поместите ваши специализированные вне его, и они не будут включены автоматически. Но я думаю, что это хорошая возможность автоматически включать общие / общие для сайта.

- Если вы хотите использовать стили сброса (если порядок важен), порядок импортируемых таблиц стилей не гарантируется

Я думаю, вы можете гарантировать порядок по именам файлов, поэтому они упорядочены по номерам и алфавиту. Возможно не элегантное решение, но не ужасное.

Лично у меня есть шаг сборки, который объединяет и сжимает все файлы * .css в папке моей темы в один файл style.css, и, поскольку я контролирую этот шаг сборки и порядок их объединения, не влияет на меня.

- Ваша главная страница не будет явно указывать, какой стиль используется, только отрендеренная страница может сказать вам это, если вы не покопаетесь в своем web.config

Вы можете изменить тему с помощью кода и в директиве <% @ Page </p>

- Стилизовать веб-элементы управления с помощью файла темы ... ну ... глупо? Вы можете просто сделать это в своей таблице стилей. Детальный контроль должен быть на уровне HTML, не так ли?

Я согласен, что применение атрибутов стиля к элементам управления через тему не является наилучшей практикой. Но мне нравится тот факт, что я могу определять обложки изображений в файлах обложек темы, и мне не нужно вырезать и вставлять атрибуты «Ширина», «Высота», «Альтернативный текст», «Выравнивание» для общих изображений, которые я использую во многих местах по всему сайту. И если я когда-нибудь изменю одно из этих изображений, я могу исправить атрибуты в одном месте, а не во всем. Я также могу создавать скинованные элементы управления с определенным списком примененных классов CSS, что мне кажется удобным.

- Как указать таблицы стилей печати, не имея всех стилей в одной таблице стилей?

У меня есть файл Print.css, который начинается с @media print и определяет стили печати для моего сайта. Почему вы должны поместить их в одну таблицу стилей?

6 голосов
/ 27 марта 2009

ИМХО, темы asp.net абсолютно бесполезны

попробуйте реализовать перезапись URL с помощью приложения, которое использует темы, и вы сразу же увидите, как они ломаются

В принципе, вы можете добиться того же, написав несколько строк кода в asp.net и несколько папок CSS. я еще не встречал ни одного разработчика / компании, который использовал темы

когда был запущен asp.net 2.0, вокруг тем был большой ажиотаж, но, по моему личному мнению, его просто не стоит: -)

0 голосов
/ 03 сентября 2010

Используйте темы ТОЛЬКО для изменения атрибутов управления. Они были плохо предназначены для работы с CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...