Есть ли существующий класс .net, который инкапсулирует опции CSS? - PullRequest
2 голосов
/ 13 июня 2009

Существует ли существующий класс .net (или доступный), который уже инкапсулирует все / большинство параметров, доступных через css?

, а именно: MyStyleClass msc = new MyStyleClass (); msc.font-family = "arial";

Я ищу существующий класс, который предоставляет эти свойства без стиля ("font-family") = "arial";

Я ничего не видел при поиске в существующей среде .net, но, возможно, я не ищу нужную вещь.

Почему? Мне нужна эта функциональность и я планирую создать реальный .css из свойств, установленных в классе, и я не хочу заново изобретать колесо.

: -)


обновление

Спасибо за ваши ответы, но моей целью было не создавать этот класс - я надеялся, что был либо встроенный, либо сторонний (бесплатный) с уже открытыми свойствами, перечислениями и т. Д. так что я мог бы просто объявить объект и начать использовать его. Я создам его при необходимости, просто не хотел заново изобретать колесо: -)

Ответы [ 6 ]

2 голосов
/ 13 июня 2009

Этот дизайн нарушает всю причину CSS - отделение кода и структуры от представления. Разработка CSS-класса, создающего класс .net, полностью отвергает причину CSS, которая позволяет графическим дизайнерам переделывать веб-сайт без знания основного кода.

Правильное решение - вывести имя класса для элементов, которым вы хотите придать определенный стиль, а затем поместить правила стиля в чистый файл CSS. Это может быть не тот ответ, который ВЫ хотите, но, тем не менее, это правильный ответ.

РЕДАКТИРОВАТЬ: неправильно понял вопрос (см. Комментарий). Для анализа на стороне клиента попробуйте обернуть библиотеку C, например libCSS .

0 голосов
/ 11 августа 2010

Я написал и выпустил парсер CSS, на http://www.modeltext.com/css/

Объектная модель API самого низкого уровня является представлением таблицы стилей «один к одному» на основе грамматики CSS (см. ModelText.ModelCssInterfaces.Parsed пространство имен).

Мой компонент поддерживает только чтение, а не запись; но это хороший пример API / объектной модели, которую вы можете реализовать, из которой вы можете "создать фактический .css из свойств".

Существует также W3C DOM API для CSS .

0 голосов
/ 13 июня 2009

Да, вы можете использовать свойство Style большинства экранных объектов, а перечисления HtmlTextWriterStyle соответствуют вашим свойствам css:

HyperLink hl = new HyperLink() { Text = "StackOverFlow", NavigateUrl = "http://stackoverflow.com" };
hl.Style.Add(HtmlTextWriterStyle.Color, "red");
hl.Style.Add(HtmlTextWriterStyle.FontWeight, "bold");

Это создает гиперссылку и добавляет встроенный стиль: " цвет: красный; font-weight: bold;"

0 голосов
/ 13 июня 2009

Существует ли существующий класс .net (или доступно одно) что уже инкапсулирует все / большинство опций доступны через css?

Нет будет ответом в контексте вашего вопроса «все / большинство». Я предполагаю, что вы хотите что-то, что разумно знает, к какому типу HTML-тегов прикреплен этот специальный класс, и предлагает все относительные селекторы / правила CSS с помощью get / sets и записывает их соответствующим образом? Это не существует, однако, неплохая идея для стороннего продукта.

Если вы ищете что-то более простое, которое интеллектуально не знает, что это связанный HTML, но все же имеет все / большинство CSS-селекторов, которых также не существует, и вам придется свернуть свой собственный с помощью CSSStyleCollection. Добавить, как предложил Шахкалпеш. .

0 голосов
/ 13 июня 2009

Вам нужно будет сделать какое-то отображение, чтобы достичь этого.

Существует класс (System.Web.UI.WebControls.Style), который предоставляет основные свойства, в том числе Font (который в свою очередь имеет Names в качестве свойства, которое может принимать имена шрифтов)

РЕДАКТИРОВАТЬ: посмотреть, если CSSStyleCollection.Add метод также помогает.

0 голосов
/ 13 июня 2009

Одна из возможностей - использовать словарь, т.е.

Dictionary<string, string> msc = new Dictionary<string, string>();
msc["font-family"] = "arial";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...