Применение встроенного CSS к серверному элементу управления ASP.NET

Основываясь на простом тесте, который я провел, я не думаю, что можно поместить встроенный тег <style> в элемент управления сервера ASP.NET. Стиль не был отображен в выходном HTML. Даже если бы это было возможно, я уверен, что это плохая практика.

Можно ли это сделать? Я вижу, что это полезно для быстрых прототипов, для которых нужно применить только 1 или 2 класса CSS.

Обновлять:

По просьбе Джонатана я собирался опубликовать код. Но когда я открыл свой проект и снова загрузил страницу (просто для удовольствия), он работал правильно. Я предполагаю, что это как-то связано с перезапуском сервера разработки ASP.NET, который Visual Studio запускает при запуске страницы.

В любом случае, когда я включил несколько одинаковых элементов управления на страницу, я получил несколько одинаковых стилей. Вероятно, это объясняет, почему это плохо. Тем не менее, всегда полезно знать передовой опыт и альтернативные методы выполнения задачи, поэтому я благодарю всех за их ответы.

Не могли бы вы привести пример кода того, что вы пытались сделать, и как вы ожидали, что это будет отображаться в HTML? Это поможет нам решить вашу проблему.

Jonathan Rupp 18.09.2008 17:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
15
1
60 620
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я думаю, вам придется добавить его в качестве атрибута в серверный элемент управления ... чтобы он отображался в HTML.

Итак, в основном (в C#),

ControlName.Attributes["style"] = "color:red";

Intellisense не даст вам подсказок, но вы можете сделать это:

<asp:Label ID = "Label1" runat = "server" Text = "Label" style = "color:Red;"></asp:Label>

Это то, о чем спрашивал ОП! Спасибо! - Вроде как HTML.

Amjad 08.12.2013 02:52
Ответ принят как подходящий

Согласно www.w3schools.com:

The style element goes in the head section. If you want to include a style sheet in your page, you should define the style sheet externally, and link to it using <link>.

Поэтому не рекомендуется включать элементы стиля (например, блок <style type = "text\css"></style>) в элемент управления. Если бы вы могли, это, вероятно, повлияло бы на некоторые браузеры, но это не будет проверять и является плохой практикой.

Если вы хотите применить к элементу встроенные стили, подойдет любой из них:

C#

myControl.Attributes["style"] = "color:red";

myControl.Attributes.Add("style", "color:red");

VB.NET

myControl.Attributes("style") = "color:red";

myControl.Attributes.Add("style", "color:red");

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

Использование классов CSS было бы предпочтительнее, поскольку вы можете сгруппировать несколько объявлений стилей и избежать избыточности и раздувания страниц. Все элементы управления, производные от WebControl, имеют свойство CssClass, которое вы можете использовать, но опять же будьте осторожны, чтобы не перезаписать существующие классы, которые были применены где-то еще.

Если вы используете атрибуты ["стиль"], вы перезаписываете стиль каждый раз, когда вызываете его. Это может быть проблемой, если вы выполняете вызов в двух разных разделах кода. Кроме того, это может быть проблемой, потому что фреймворк включает свойства для основных настроек, таких как граница и цвет, которые также будут применяться как встроенные стили. Вот пример:

// wrong: first style will be overwritten
myControl.Attributes["style"] = "text-align:center";
// in some other section of code
myControl.Attributes["style"] = "width:100%";

Чтобы играть лучше, установите вместо этого такие стили:

// correct: both style settings are applied
myControl.Attributes.CssStyle.Add("text-align", "center");
// in some other section of code
myControl.Attributes.CssStyle.Add("width", "100%");

Другие вопросы по теме