2016-11-11 2 views
0

У меня есть LOT asp:Label s и я хочу изменить размер шрифта для каждого.Изменить размер всех asp: Текст ярлыка

Я знаю, что они преобразуются в <span>, но у меня есть другие элементы с текстом, которые преобразуются в промежутки, которые я не хочу изменить.
Итак, как я могу применить стиль только к пролетам, генерируемым из ярлыков, сразу?

Пожалуйста, не говорите мне, что мне придется пройти через каждый и применить cssClass напрямую.

ответ

1

Вы можете определить для этого Skin. Подумайте о Коже как наборе параметров, общих для всех элементов управления определенного типа. Скины не существуют сами по себе, а внутри темы. Вот walkthrough о том, как создать тему из MSDN. Я не думаю, что здесь разумно скопировать его.

Но сосредоточиться на конкретном случае использования, идти вперед и следовать этому пошаговому руководству и создать тему только с одной кожей, определяемой следующим образом:

<asp:Label runat="server" CssClass="CommonCssClass" /> 

Заметьте, что мы не используем SkinID, так что это будет применяется ко всем элементам управления Label.

Далее перейдите на страницу и изменить директиву страницы:

<%@ Page Theme="YourThemeName" %> 

Вот именно, это должно касаться кож, определенных в теме меток на этой странице.

Фактически я бы сделал аргумент, что это лучший способ сделать аналогичные изменения для элементов управления на стороне сервера, а затем попытаться выяснить, как захватить результирующий HTML с помощью селектора css. Последний ставит ваш код в зависимость от сгенерированной разметки, что опасно, поскольку ASP.NET не всегда генерирует то, что вы ожидаете. Например, Label does not always render as span.

+0

Спасибо, что помогает. Можно ли использовать это выборочно? Как только на этикетках в '

' или что-то? – Nol

+1

@Nol, no afaik. Страница, вероятно, самая узкая область, к которой вы можете применить это. Или вы всегда можете использовать SkinID, но тогда это не значит, что вы просто установите CssClass. Последний вариант, который я вижу, - это назначить код в коде позади, где вы, вероятно, сможете лучше отличить элементы управления. Но имейте в виду, что это можно сделать только во время PreInit фазы, не позже – Andrei

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