#html #css #frontend #darkmode
#HTML #css #интерфейс #темный режим
Вопрос:
Я работаю над проектом электронной почты, и мне нужно отобразить текст письма в темном режиме. Текст письма представляет собой HTML с определенными цветовыми стилями. Моя цель — изменить цвет текста и фона, чтобы отобразить его в темном режиме. Определите стиль темной схемы следующим образом
@media (prefers-color-scheme: dark) {
html {
filter: invert(1) hue-rotate(180deg);
}
img, video {
filter: invert(1) hue-rotate(180deg);
}
}
После изменения цвета в целом, возврат изображений и видео обратно выглядит как хороший результат.
Единственный недостаток заключается в том, что при этом также меняются цвета смайликов, из-за чего они выглядят ужасно.
Я также пробовал смешивать цвета.
color: white;
mix-blend-mode: screen;
Это также сделает цвета смайликов ярче. И это не делает черные тексты белыми.
Это сводится к вопросу: как сделать так, чтобы следующий текст отображался белым цветом, а смайлики отображались нормально.
<div style="color: black;">
Hello world! 😊 😄 😭
</div>
Ожидаемый результат:
— Отредактировано —
Хорошим примером является приложение Apple mail:
Отправить письмо с HTML:
<div>Test colors: </div>
<div style="color: black;">Black</div>
<div style="color: green;">Green</div>
<div style="color: red;">Red</div>
<div style="color: pink;">Pink</div>
<div style="color: blue;">Blue</div>
<div style="color: yellow;">Yellow</div>
<div style="color: gray;">Grey</div>
<div style="color: white;">White</div>
<div style="color: #8300bb;">Purple</div>
Комментарии:
1. Разве вы не можете просто использовать обычный CSS?
@media (prefers-color-scheme: dark) { html { background: black; color: white; } }
2. Это не отменяет определение цвета в стиле. Даже если добавить тег !important , он сделает все цвета белыми. На самом деле приложение Apple mail может продолжать отображать несколько цветов в темном режиме.
3. Вы имеете в виду, что это специфическая проблема или приложение просто не позволяет вам ее изменять?
4. Поскольку HTML входящего сообщения электронной почты не контролируется, изменения могут быть внесены только на его основе. В качестве почтового приложения я могу управлять отображением HTML.
Ответ №1:
Вы должны поместить свои смайлики в интервал с классом смайликов. Затем в CSS вместе с телом вы должны инвертировать его.
Если вы инвертируете что-то, что инвертировано, оно возвращается к нормальной жизни! 🙂
Я думаю, вам нужно что-то вроде этого:
html {
background: white;
color: black;
}
@media (prefers-color-scheme: dark) {
html {
filter: invert(1);
}
.emoji {
filter: invert(1);
}
}
<div> Hello world!
<span class="emoji">😊 😄 😭</span>
</div>