CSS стиль цвет неэффективен на символе звезды ( ★ ) на Samsung с Android 4.4 KitKat
На моем специализированном мобильном веб-сайте я использую символ звезды html ★ ★
и применяю CSS на нем, особенно color
.
<span class="orange">★ ★ ★</span>
<span class="grey">★ ★</span>
.orange {
color: orange:
}
.grey {
color: grey;
}
Все хорошо работает в большинстве браузеров и ОС, например:
Но на устройствах Samsung с Android 4.4 kitkat (Galaxy S4, S5...) , звезды изначально стилизованы touchwiz (я полагаю), и свойство color больше не влияет на стоковый браузер и Chrome, но не Firefox ! И это хорошо работает на других kitkat (LG G2, Nexus 7) или Samsung с Jelly Bean.
Я попробовал webkit определенного стиля, как -webkit-text-fill-color
, без всякого эффекта .
Я искал весь стиль webkit, но ничего не соответствует, кроме -webkit-text-fill-color
.
Я знаю другие способы создания звезд, таких как изображения, пользовательские шрифты или даже CSS-формы, но проще было бы лучше.
Итак, вы когда-нибудь видели это и нашли волшебный стиль, который работает ?Спасибо.
2 ответа:
Я нашел в чем была проблема. Он находится внутри шрифтов системы, в этом файле точно:
/system/fonts/NotoColorEmoji.ttf
Изменяя этот шрифт (Samsung emoji) на другой с родным Android emoji, звезды появляются нормально. Я нашел метод здесь: XDA - [MOD] Emoji iOS / Google на Samsung S4 Kit Kat .
Таким образом, невозможно настроить Samsung stars напрямую.
Поскольку у меня есть несколько цветов и размеров звезд, работа в адаптивном дизайне и необходимость управлять retina и другими HD дисплеи, изображения были слишком обременительны для реализации.
Я попробовал CSS shapes, но поскольку я играю с разными размерами в адаптивном дизайне (изменение размера корневого шрифта в em изменяет всю страницу), что-то точное в одном размере, не было в другом.
Поэтому я использовал font-face.
На Icomoon я выбрал звезду и сделал пользовательский шрифт. Я поставил правильный стиль и все ! Я могу применить css, как я хочу.Код выглядит так:
HTML:
<span class="icon-star"></span>
CSS :
@font-face { font-family: 'icomoon'; src:url('fonts/icomoon.eot?4n7iw5'); src:url('fonts/icomoon.eot?#iefix4n7iw5') format('embedded-opentype'), url('fonts/icomoon.woff?4n7iw5') format('woff'), url('fonts/icomoon.ttf?4n7iw5') format('truetype'), url('fonts/icomoon.svg?4n7iw5#icomoon') format('svg'); font-weight: normal; font-style: normal; } [class^="icon-"], [class*=" icon-"] { font-family: 'icomoon'; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .icon-star:before { content: "\e600"; }
Я знаю, что этот вопрос был задан 3 года назад, но недавно я столкнулся с тем же вопросом. Один из способов-использовать CSS shadow hack Кредит идет Тиграну для оригинального решения:
.orange { color: transparent; text-shadow: 0 0 0 orange; }