Изменение стиля InputText с использованием изоляции CSS

Я новичок в blazor и пытаюсь изменить стиль InputText, используя css isolation.

Стиль можно изменить, если я установлю его встроенным или внутренним, но он не работает, когда я пытаюсь установить его с использованием изоляции CSS. Я просмотрел документы и там сказано, что

CSS с областью действия применяется только к элементам HTML, а не к компонентам Razor. или вспомогательные функции тегов, включая элементы с примененными вспомогательными функциями тегов, например <input asp-for="...">/.

Является ли InputText компонентом Razor, и именно поэтому я не могу изменить стиль с помощью изоляции CSS? Хотелось бы получить какой-нибудь совет по этому поводу!

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
0
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Прежде всего, InputText определенно должен быть компонентом бритвы, это один из встроенных компонентов ввода. Так что изоляция CSS не работает в InputText, это должно быть ожидаемым поведением. Между тем, в документе ниже приведено объяснение того, почему мы используем встроенный стиль в InputText и можем успешно изменить стиль.

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

В качестве обходного пути мы можем поместить определение класса в wwwroot->css->site.css или <style> .input-text-r { color: blue; } </style> в компонент Razor или использовать встроенный стиль, если это не противоречит вашей политике CSP. Или добавьте класс динамически после отображения страницы, если это необходимо в некоторых конкретных сценариях, используя коды, подобные приведенным ниже.

<InputText class=@classvalue @bind-Value = "starship.Identifier" />

protected override async Task OnInitializedAsync()
{
    classvalue = "input-text-r";
}

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