2009-09-07 2 views
2

В настоящее время я разрабатываю приложение ASP.NET WebForms, которое будет иметь несколько скинов. То, как я собираюсь приблизиться к этому, состоит в том, чтобы каждый скин в полностью отдельной папке, которая будет содержать все изображения и CSS, а CSS будет ссылаться на изображения соответственно.Создание веб-приложения ASP.NET с несколькими скинами?

Структура папок будет что-то вроде этого:

  • /Default.aspx
  • /Skins/Master.css
  • /Skins1/Skin1/Skin1.css
  • /Skins1/skin1/Images/...
  • /Skins1/Skin1/Skin2.css
  • /Skins1/Skin2/Images/...
  • /Ski ns1/skin1/Skin3.css
  • /Skins1/Skin3/Images/...

Так, например, мы могли бы иметь:

<div id="foo-logo"></div> 
<a href="/bar/"><div id="bar-logo"></div></a> 

, а затем в CSS:

#top-logo { height: 100px; width:200px; background:url(images/foo-logo.jpg); } 
#bar-logo { height: 50px; width:100px; background:url(images/bar-logo.jpg); } 

Моя логика позади этого, чтобы избежать ссылки в папку кожи в линии с кодом, например:

<img src="/skins/<%=Settings.CurrentSkin%>/images/foo-logo.jpg" /> 
<a href="/bar/"><img src="/skins/<%=Settings.CurrentSkin%>/images/bar-logo.jpg" /></a> 

Таким образом, HTML будет оставаться чистым и полностью независимым, и можно будет полностью изменить скин, просто ссылаясь на другой файл CSS и удаляя необходимость обновлять теги изображений.

Основные минусы этого, что я могу думать, являются:

  • Размеры изображения на вмещающего элемента должны быть конкретно указаны в CSS, как они будут реализованы как CSS фоновое изображение,
  • Web приложение может не ухудшаться, если важные элементы бренда, такие как логотип, видны только с помощью CSS

Есть ли что-нибудь еще, о чем я должен знать при использовании этого метода и/или есть лучший способ достичь этого?

+0

Как выбрать подходящую кожу? Является ли это настройкой для пользователя или что-то, что автоматически выбирается на основе какого-то другого условия? –

+0

Веб-приложение будет иметь несколько URL-адресов, и скин будет выбран на основе URL-адреса, который используется для доступа к нему. – Mun

ответ

1

WebForms поддерживает темы и Skinning, который делает много того, что вы, кажется, хотят, чтобы сделать здесь, некоторые полезные статьи

Ode to Code, MSDN

Что обесшкуривание в основном позволяет сделать это определить отдельные таблицы стилей и скины управления. Структура папок вы должны были бы выглядеть

App_Themes/skin1

App_Themes/Skin2

App_Themes/Skin3

...

Затем вы можете использовать asp: элементы управления изображением, которые указывают на различные URL изображения для каждого идентификатора кожи (или вы можете сделать это с помощью CSS).

Смежные вопросы