Как я могу создать веб-сайт ASP.NET с задержкой стиля/темы?
Вопрос
Мне нужно создать прототип интранет-сайта, и я хочу сосредоточиться на удобстве использования (макете, навигации и т. д.) и оставить тему на потом (у меня очень плохой вкус, поэтому, вероятно, это сделает кто-то другой).
Я знаю о возможности ASP.NET мгновенно переключать темы, но как мне спроектировать веб-формы, чтобы это было легко в дальнейшем?
- Должен ли я создавать элементы управления с атрибутом класса, указывающим на что-то, что будет существовать в будущем CSS?
- Или я просто создаю элементы управления, не беспокоясь об этом, и с этим можно будет легко справиться, когда мы создадим тему?
Решение
Если вы планируете использовать Темы ASP.NET, то вы сможете спроектировать все элементы управления в общем и добавить скины позже.В зависимости от сложности дизайна (то есть, сколько разных стилей у вас есть для текстовых полей или представлений сетки и т. д.), это может не сэкономить вам много работы, но это один из способов использовать встроенную поддержку .Net для тем.
Убедитесь, что вы используете MasterPage, чтобы все ваши подстраницы имели общую базу, и дайте всем вашим элементам хорошие идентификаторы, потому что вам все равно придется испачкать руки CSS, чтобы собрать все это вместе.
Вот ссылка на приличный Учебное пособие по темам и скинам.Знание того, что вам придется сделать в будущем, чтобы добавить это, облегчит проектирование для этого сейчас.
Другие советы
Я хотел бы привести аргументы в пользу полного игнорирования тем и использования только CSS.Мне никогда не было ясно, какую ценность добавляют темы;это очень специфичный для Microsoft подход, и его результаты не всегда соответствуют стандартам.Используя CSS, вы расширите круг потенциальных дизайнеров, способных работать над вашим проектом, и у вас будет больше шансов создать кроссбраузерный и соответствующий стандартам сайт.
Если позже кто-то другой будет стилизовать это, я бы просто позаботился о том, чтобы вы предоставили достаточно «крючков», чтобы они могли это спроектировать.Это означает добавление классов CSS практически ко всему, что вы делаете, что будет иметь одинаковый стиль, и перенос элементов в элементы div или интервалы с помощью классов CSS, например, где это необходимо.
<div class="ButtonContainer">
<asp:linkbutton runat="Server" cssclass="Button Cancel" command="Save" text="Save" />
<asp:linkbutton runat="Server" cssclass="Button Save" command="Cancel" text="Cancel" />
</div>
Однако если у вас нет четкого понимания CSS и у вас нет внутренних соглашений об именах или стандартных таблиц стилей, вы действительно не будете знать, как структурировать свои элементы div и классы.В нашем магазине мы справляемся с этим следующим образом: программист просто пишет стандартную разметку ASP.NET, а дизайнер добавляет элементы div, span и имена классов, которые работают с таблицей стилей, которую он разработает.
Скины, вероятно, являются ответом, но что-то в этом меня раздражает (возможно, потому, что мне не нравится быть специфичным для этого поставщика и я бы хотел, чтобы мои навыки были применимы к другим веб-языкам и платформам, кроме .NET).Я предпочитаю использовать атрибуты CssClass во всех элементах управления ASP.Net, тщательно классифицировать все остальное и использовать как можно больше семантической разметки.Затем, когда элементы управления настроены и работают, я использую CSS для стилизации всего (хотя обычно на этом этапе мне приходится настраивать HTML и JavaScript).
Другой разработчик, с которым я работаю, предпочитает делать все в стиле Microsoft со скинами, директивами страниц и так далее.Вероятно, это лучший способ сделать это, но мне кажется, что при этом слишком большая часть презентации смешивается с серединой и серверной частью приложения.
просто оберните элементы управления в div.в конце концов макет/стиль станет намного проще