2015-01-20 2 views
0

Я работаю над веб-сайтом с использованием кода ASP.NET C#, сайт будет использоваться для различных веб-сайтов и будет служить только «заполнителем». Мы хотели бы иметь код CSS, который может иметь разную разметку в зависимости от того, какой веб-сайт вы посещаете. Мы извлекаем информацию о веб-сайте, который посетил наша база данных, в которой есть некоторые методы, связанные с возвратом этих значений.Использование переменных C# в CSS

Проблема в том, что мы хотим иметь возможность использовать эти значения в коде CSS, и в настоящее время единственный способ, которым я могу это сделать, - использовать встроенный CSS-код вместо файлов .css. Что бы наш код выглядел примерно так:

<style> 
    .navbar { 
     background-color: @Website.Models.WebsiteConfiguration.NavbarColor; 
    } 
</style> 

Это не идеальный вариант. Есть ли другой способ использования переменных C# в CSS-коде без использования встроенного кода? Я нашел a website, который описывает использование настраиваемого обработчика для изменения файлов css, однако мы не могли заставить это работать, потому что наш парсер никогда не вызывался. Мы также нашли .LESS library, но мы предпочли бы не использовать эту библиотеку и вместо этого работать над решением, которое использует только пару строк кода.

+1

Единственный другой способ (кроме менее/какой-либо другой прекомпилятор), должен был бы установить его в js, но опять же он не был бы идеальным. Я не уверен, но вы могли бы использовать [** attr **] (https://developer.mozilla.org/en/docs/Web/CSS/attr)? – jbutler483

+0

Рассматривали ли вы загрузку разных файлов CSS на основе того, на каком веб-сайте вы находитесь? – Andy

+0

@ Энди, что не совсем возможно, из-за природы проекта, к сожалению. –

ответ

1

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

Таким образом, вы могли бы иметь что-то вроде следующего, что вывело бы соответствующий CSS:

<% CssHelper.Load("myFile.template", "websitex/style.css")%>

это будет жизнеспособным вариантом?

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