В настоящее время я разрабатываю приложение 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
Есть ли что-нибудь еще, о чем я должен знать при использовании этого метода и/или есть лучший способ достичь этого?
Как выбрать подходящую кожу? Является ли это настройкой для пользователя или что-то, что автоматически выбирается на основе какого-то другого условия? –
Веб-приложение будет иметь несколько URL-адресов, и скин будет выбран на основе URL-адреса, который используется для доступа к нему. – Mun