#css #ruby-on-rails #firefox #fonts
#css #ruby-on-rails #firefox #шрифты
Вопрос:
Я локально размещаю свои иконки в виде шрифтов, используя @font-face в файле font.css.sass и ссылаюсь на это в общем файле style.css.scss. (Я, по сути, скопировал-вставил-модифицировал с сайта для создания значков социальных сетей, PerfectIcons.com . Значки отображаются точно так, как ожидалось, во всех браузерах, кроме Firefox. Несмотря на это, Firefox получает и отображает мои другие шрифты @font-face без проблем.
Возможно, проблема связана с файлом svg, который используется для социальных значков, и с тем, как Firefox обрабатывает это?
ПРИМЕЧАНИЕ. приведенный ниже asset_url предназначен для Rails 4 и Heroku.
@font-face {
font-family: 'si';
src: asset_url('socicon.eot');
src: asset_url('socicon.eot?#iefix') format(embedded-opentype),
asset_url('socicon.woff') format(woff),
asset_url('socicon.ttf') format(truetype),
asset_url('socicon.svg') format(svg);
font-weight:400;
font-style:normal;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'si';
src: asset_url('socicon.svg') format(svg);
}
}
А затем style.css.scss:
.soc
overflow: hidden
margin: 0
padding: 0
list-style: none
text-align: right
margin-right: 100px
.soc li
display: inline-block
*display: inline
zoom: 1
.soc li a
font-family: si !important
font-style: normal
font-weight: 400
-webkit-font-smoothing: antialiased
-moz-osx-font-smoothing: grayscale
-webkit-box-sizing: border-box
-moz-box-sizing: border-box
-ms-box-sizing: border-box
-o-box-sizing: border-box
box-sizing: border-box
text-decoration: none
text-align: center
display: block
position: relative
z-index: 1
width: 35px
height: 35px
line-height: 35px
font-size: 19px
@include border-radius(50px)
color: #c9c8c8
background-color: #383838
opacity: .8
.soc-icon-last
margin: 0 !important
.soc-twitter:before
content: 'a'
.soc-facebook:before
content: 'b'
.soc-google:before
content: 'c'
Комментарии:
1. Можете ли вы предоставить ссылку на сайт? Это поможет дать ответ.
2. Я вижу значки социальных сетей в моем Firefox.
3. Я попробовал это без Rails, просто HTML-файл в браузере. То же самое… это работало для Chrome и Safari, но не для Firefox. На всякий случай, для FF он по-прежнему показывает буквы / цифры с цветами, но не фактические значки.
4. Когда я перехожу к URL-адресу в Firefox, я вижу фактические значки. Вы используете самую последнюю версию Firefox? Попробуйте также очистить кеш. Возможно, он кэшировал неверный файл.
5. Я использую FF 30. Очищен кэш… но не повезло.
Ответ №1:
Спецификаторы формата должны быть в кавычках, как показано ниже:
@font-face {
font-family: 'si';
src: asset_url('socicon.eot');
src: asset_url('socicon.eot?#iefix') format('embedded-opentype'),
asset_url('socicon.woff') format('woff'),
asset_url('socicon.ttf') format('truetype'),
asset_url('socicon.svg') format('svg');
font-weight:400;
font-style:normal;
}
Комментарии:
1. Еще раз спасибо за ваше время в чате!
2. Это произошло … разница в кавычках вокруг объявления формата. Похоже, проблема с FF.
Ответ №2:
Просто замените этот код своим кодом:
@font-face {
font-family: 'si';
src: url('<%= asset_path('socicon.eot') %>');
src: url('<%= asset_path('socicon.eot) '?#iefix' %>') format('embedded-opentype'),
url('<%= asset_path('socicon.woff') %>') format('woff'),
url('<%= asset_path('socicon.ttf') %>') format('truetype'),
url('<%= asset_path('socicon.svg') %>') format('svg');
font-weight:400;
font-style:normal;
}
Измените расширение файла css на .css.scss.erb