font-style - 字体样式 - css 字体属性
font-style
设置或检索对象中的文本字体样式
示例
font-style: normal; font-style: italic; font-style: oblique; font-style: oblique 10deg; /* global values */ font-style: inherit; font-style: initial; font-style: unset;
浏览器支持
浏览器都支持font-style |
语法:
font-style:normal| italic| oblique| inherit设置或检索对象中的文本字体样式。
默认值 | normal |
适用于 | 所有元素 |
继承性 | 有 |
动画性 | 否 |
计算值 | 指定值 |
取值:
- normal:指定文本字体样式为正常的字体
- italic:指定文本字体样式为斜体。对于没有设计斜体的特殊字体,如果要使用斜体外观将应用oblique
- oblique:指定文本字体样式为倾斜的字体。人为的使文字倾斜,而不是去选取字体中的斜体字
- inherit:规定应该从父元素继承字体样式
font-style
CSS 属性允许你选择font-family
字体下的italic或oblique样式。
italic与oblique区别
- italic 样式一般是指书写体,相比无样式的字体,通常会占用较少的高度,而 oblique 字形一般只是常规字形的倾斜版本。斜体(italic)和倾斜体(oblique)都是通过人工倾斜常规字体的字形来模拟的(使用 font-synthesis 对此进行控制)。
- 斜体在本质上通常是草书,通常比未样式的对等体使用更少的水平空间,而斜体通常只是常规面的倾斜版本。如果指定的样式不可用,则通过人为地倾斜常规面部的字形(用于font-synthesis控制此行为)来模拟斜体和斜面部。
font-synthesis
font-synthesis CSS 属性控制浏览器可以合成(synthesize)哪些缺失的字体,粗体或斜体。
font-synthesis: weight style; font-synthesis: none; font-synthesis: weight; font-synthesis: style;
大多数标准西方字体包含斜体和粗体变体,但许多新颖(novelty)的字体不包括这些。用于中文、日文、韩文和其他语标文字(logographic script)的字体往往不含这些变体,同时,从默认字体中生成、合成这些变体可能会妨碍文本的易读性。在这些情况下,可能最好关闭浏览器默认的 font-synthesis 字体合成特性。
可变字体
可变字体(Variable font)可以精确控制 oblique 字体的倾斜程度。你可以选择使用angle
属性(角度)来设置。对于TrueType或OpenType可变字体,"slnt"变体用于实现倾斜的倾斜角度,而"ital"值1 的变体用于实现斜体值。请参阅font-variation-settings。为了使以下示例正常工作,您需要一个支持CSS Fonts Level 4语法的浏览器,该语法font-style: oblique可以接受angle
。
实例
//html slant...it would not be wonderful to meet a megalosaurus, forty feet long or so, waddling like an elephantine lizard up holborn hill.
//CSS /*amstelvaralpha-vf 由 david berlow 制作:https://github.com/typenetwork/amstelvar 在此使用时,遵循此开源协议:https://github.com/typenetwork/amstelvar/blob/master/ofl.txt */ @font-face { src: url('https://mdn.mozillademos.org/files/16044/amstelvaralpha-vf.ttf'); font-family:'amstelvaralpha'; font-style: normal; } label { font: 1rem monospace; } .container { max-height: 150px; overflow: scroll; } .sample { font: 2rem 'amstelvaralpha', sans-serif; }
html, body { max-height: 100vh; max-width: 100vw; overflow: hidden; } body { display: flex; flex-direction: column; } header { margin-bottom: 1.5rem; } .container { flex-grow: 1; } .container > p { margin-top: 0; margin-bottom: 0; }
JavaScript
let slantlabel = document.queryselector('label[for="slant"]'); let slantinput = document.queryselector('#slant'); let sampletext = document.queryselector('.sample'); function update() { let slant = `oblique ${slantinput.value}deg`; slantlabel.textcontent = `font-style: ${slant};`; sampletext.style.fontstyle = slant; } slantinput.addeventlistener('input', update); update();
this paragraph is normal.
this paragraph is italic.
this paragraph is oblique.
//CSS .normal {font-style: normal;} .italic { font-style: italic;} .oblique { font-style: oblique;}
请注意,不是所有的字体都有确切的oblique和italic字形,即便如此,浏览器也会通过使用现有的字形来模拟所缺少的字形。下面是一个使用这两种字形渲染字体的示例:
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!