Программно добавить (ограниченное) имя класса в Svelte

Фрагмент кода:

<script>
  let coloredText = "This is colored text"
    let templateString = `This text is programmatically inserted`;
  let templateHtml = `<span class = "colored">I want this text to be red</span></h1>`
  
</script>

<style>
  .colored {
    color: red;
  }

  main {
    font-family: sans-serif;
    text-align: center;
  }
</style>

<main>
    <h1>This is normal text</h1>
  <h1><span class = "colored">{coloredText}</span></h1>
    <h1>{templateString}</h1>
  <h1>{@html templateHtml}</h1>
    
</main>

Выход:

Коды и песочница

Когда вы добавляете класс CSS к элементу, Svelte, кажется, добавляет дополнительный класс svelte-xxxx к полученной разметке (с правильным стилем). Он не добавляет тот же класс к буквальному HTML, отображаемому с помощью тега @html, и результирующая разметка не стилизована, хотя селектор CSS должен соответствовать результирующему элементу.

Каков канонический способ добавить имя класса в программно сгенерированный HTML в Svelte? Я знаю о :global, но я бы хотел, чтобы результат был привязан к компоненту.

Приемы 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
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Использование модификатора :global(...) в сочетании с элементом-оберткой внутри компонента сохранит область видимости стилей.

 h1 :global(.colored) {
    color: red;
  }

->

h1.svelte-nd95r3 .colored {
    color: red;
}

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