css中小型大写,css3 – OpenType小型大写的CSS回退
上次更新時間2016/02/28.
我花了相當多的時間研究這個并與之搏斗.
在盡可能地挖掘之后,現在的頂級解決方案是:
@supports
利用瀏覽器中的@supports規則.這是我最初的
選擇在這個項目上做.[1]您以這種方式使用規則:
.some-class {
font-variant: small-caps;
}
@supports(font-feature-settings: 'smcp') {
.some-class {
font-variant: normal;
font-feature-settings: 'smcp';
}
}
我通過省略前綴版本簡化了;你需要添加
-webkit-和-moz-前綴使這個實際工作.更新,
2012/02/28:您不再需要-moz-前綴,這將有效
下一版本中的Safari(iOS 9.3和OS X Safari 9.1).
這有利于支持真正的小型股和
對@supports規則的支持非常相似:
> @supports:Can I Use Feature Queries?:Chrome 31,Firefox
29,Opera 23,Android 4.4,Safari 9,Edge 12,Chrome for Android
更新,2016/02/28:正如上面鏈接的圖表將清楚地表明所有
常青瀏覽器現在支持@supports.
> font-feature-settings:Using Small Caps & Text Figures on the Web:
Chrome,Firefox,IE10
這并不完美:因為IE10 / 11沒有實現@supports,所以你錯過了一個
瀏覽器. (編輯,2015/09/31:IE本身沒有@supports,但是Edge 12
是的,這應該越來越多地覆蓋該網站的所有消費者用戶.)
盡管如此,這會讓你大部分時間都在那里,它應該是面向未來的:這個
應該逐步改善網站.正常(壞,但功能)
同時顯示小型大寫字母,當瀏覽器最終獲得時
對于font-variant,默認使用OpenType小型大寫:small-caps,
這將繼續工作得很好.這是“漸進式增強”而且它會
適合大多數目的.[2]
字體子集
如問題所述,可以創建字體的子集
僅包括小型首都.這就是我在my
own website上為小型股做的事情;看到第一行的第一行
以this post中的一段為例.
要實現此目的,您需要從字體的子集開始.你可以做
這可以用字體工具手動,或者(更簡單的方法)你可以使用FontSquirrel
webfont generator中的自定義子集工具.(注意:你
必須檢查許可證并確認有問題的字體允許這樣做
一種修改.請參閱下文.)在Web字體生成器中,首先上傳
您要修改的文件.然后選擇專家單選按鈕.大部分的
您可以保持原樣的設置;他們是理智的默認.中途下來
頁面你會看到OpenType Flattening選項.在這里,只選擇“Small Caps”.
運行發電機.結果將完全取代正常
帶小帽的小寫字母.[3]
在這種情況下,您只需將樣式應用于您想要的元素即可
小資本,例如:
.divine-name {
font-family: 'my_typeface_smcp','my_typeface',serif;
}
這種方法的主要優點是一致性:字體是這樣的
顯示在每個瀏覽器上,返回到IE5.5,只要你提供它
正確使用@ font-face所需的各種鉤子.
但是,這種方法有一些缺點:
>這意味著提供另一個字體文件.就我而言,這將是一個
可接受的低尺寸(因為我實際上只需要四個字符),但它是
仍然需要考慮一下.它無論如何都是另一種HTTP
請求,這將進一步減慢頁面加載時間或至少給予
當你重新加載時,你會看到一些沒有樣式的文本.
>它可能違反有關字體的許可證.至少一個
我在這個項目中使用的字體,它確實:許可證明確
禁止使用FontSquirrel等工具重建字體. (FontSquirrel是
之前我用過這種方法的工具,它運行得很好.)這是
使用字體子集來實現的一個成敗問題
目標.話雖這么說,如果你有充分的理由去做,你也許能夠
獲得供應商的支持(特別是如果他們是一家小商店).為了
提出這個問題的項目,我能夠做到這一點很好
電子郵件 – 設計師是個好人.
不這樣做的另一個主要原因是它具有顯著性
維護成本更高.如果您在任何時候需要更改或更新
字體,你必須重新經歷子集化過程.通過
相比之下,第一種選擇只會起作用,但不可否認
一個人可能希望的愉快,不僅會繼續工作,而且會工作
隨著瀏覽器增加CSS3的實現,實際上會隨著時間的推移而改進
標準.
筆記
>由于各種原因(特別參見下面的注釋2),我實際上選擇了
這里概述的第二種方法,這與我試圖采用的方法相同
避免.唉.
>問題仍然存在:即使在最新的Chrome中(截至當時的38個)
編輯),使用font-feature-settings:’smcp’方法有一些
的問題.例如,如果你打開字母間距(一個相當常見的
recommendation小帽子,小帽子將恢復
正常的小寫字母. Fixed in Chrome 48. HT回答者
below.
>從介紹該功能的FontSquirrel博客文章中:
If you have a font with OpenType features,you can now flatten some of them into your webfont. For instance,some fonts have small caps built in,but they are completely inaccessible in a web browser. By selecting the “Small Cap” option,the Generator will replace all the lowercase glyphs with the small cap variants,giving you a small cap font. Please note that not all OpenType features are supported and if the font lacks OpenType features,using these options won’t create them.
總結
以上是生活随笔為你收集整理的css中小型大写,css3 – OpenType小型大写的CSS回退的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ros消息服务器,ROS服务和消息
- 下一篇: CSS 基本样式