CSS(層疊樣式表)是用于描述HTML或XML(包括如SVG、XHTML等XML子集)文檔呈現的樣式表語言。CSS描述了在屏幕、紙質、音頻等媒體上元素應該如何被渲染。字體樣式是CSS中非常重要的一部分,它允許開發者控制文本的外觀,包括字體類型、大小、粗細、顏色、行高、字間距等。本文將詳細介紹CSS中可用的字體樣式屬性及其用法。
font-family
屬性用于指定元素的字體類型??梢灾付ㄒ粋€或多個字體名稱作為后備字體,以確保在首選字體不可用時,瀏覽器可以使用其他字體。
body {
font-family: "Times New Roman", Times, serif;
}
在上面的例子中,瀏覽器會首先嘗試使用”Times New Roman”字體,如果該字體不可用,則會嘗試使用”Times”字體,最后如果這兩個字體都不可用,則會使用默認的serif字體。
font-size
屬性用于設置文本的大小??梢允褂媒^對大?。ㄈ鏿x、pt)、相對大?。ㄈ鏴m、rem、%)或關鍵字(如small、medium、large)來指定字體大小。
p {
font-size: 16px;
}
h1 {
font-size: 2em;
}
在上面的例子中,p
元素的字體大小被設置為16像素,而h1
元素的字體大小是父元素字體大小的兩倍。
font-weight
屬性用于設置文本的粗細??梢允褂藐P鍵字(如normal、bold)或數值(如100、200、…、900)來指定字體粗細。
strong {
font-weight: bold;
}
.light-text {
font-weight: 300;
}
在上面的例子中,strong
元素的文本被設置為粗體,而.light-text
類的文本被設置為較輕的字體粗細。
font-style
屬性用于設置文本的樣式,如斜體或正常。
em {
font-style: italic;
}
.normal-text {
font-style: normal;
}
在上面的例子中,em
元素的文本被設置為斜體,而.normal-text
類的文本被設置為正常樣式。
font-variant
屬性用于設置文本的小型大寫字母(small-caps)樣式。
.small-caps {
font-variant: small-caps;
}
在上面的例子中,.small-caps
類的文本被設置為小型大寫字母樣式。
color
屬性用于設置文本的顏色??梢允褂妙伾Q、十六進制值、RGB值、HSL值等來指定顏色。
h1 {
color: #333333;
}
p {
color: rgb(0, 0, 255);
}
在上面的例子中,h1
元素的文本顏色被設置為深灰色,而p
元素的文本顏色被設置為藍色。
line-height
屬性用于設置文本行與行之間的距離??梢允褂脽o單位的值(表示相對于字體大小的倍數)、長度值(如px、em)或百分比來指定行高。
p {
line-height: 1.6;
}
h2 {
line-height: 2em;
}
在上面的例子中,p
元素的行高被設置為字體大小的1.6倍,而h2
元素的行高被設置為2em。
letter-spacing
屬性用于設置字符之間的間距??梢允褂瞄L度值(如px、em)或關鍵字(如normal)來指定字間距。
.wide-spacing {
letter-spacing: 2px;
}
.narrow-spacing {
letter-spacing: -1px;
}
在上面的例子中,.wide-spacing
類的字符間距被設置為2像素,而.narrow-spacing
類的字符間距被設置為-1像素。
word-spacing
屬性用于設置單詞之間的間距??梢允褂瞄L度值(如px、em)或關鍵字(如normal)來指定單詞間距。
.wide-word-spacing {
word-spacing: 10px;
}
.narrow-word-spacing {
word-spacing: -5px;
}
在上面的例子中,.wide-word-spacing
類的單詞間距被設置為10像素,而.narrow-word-spacing
類的單詞間距被設置為-5像素。
text-decoration
屬性用于設置文本的裝飾效果,如下劃線、刪除線、上劃線等。
.underline {
text-decoration: underline;
}
.line-through {
text-decoration: line-through;
}
.overline {
text-decoration: overline;
}
在上面的例子中,.underline
類的文本被添加了下劃線,.line-through
類的文本被添加了刪除線,而.overline
類的文本被添加了上劃線。
text-align
屬性用于設置文本的水平對齊方式??梢允褂藐P鍵字(如left、right、center、justify)來指定文本對齊方式。
.center-text {
text-align: center;
}
.right-text {
text-align: right;
}
.justify-text {
text-align: justify;
}
在上面的例子中,.center-text
類的文本被居中對齊,.right-text
類的文本被右對齊,而.justify-text
類的文本被兩端對齊。
text-indent
屬性用于設置文本塊中第一行的縮進??梢允褂瞄L度值(如px、em)或百分比來指定縮進量。
.indent-text {
text-indent: 2em;
}
在上面的例子中,.indent-text
類的文本塊中第一行被縮進了2em。
text-transform
屬性用于控制文本的大小寫轉換??梢允褂藐P鍵字(如uppercase、lowercase、capitalize)來指定文本轉換方式。
.uppercase {
text-transform: uppercase;
}
.lowercase {
text-transform: lowercase;
}
.capitalize {
text-transform: capitalize;
}
在上面的例子中,.uppercase
類的文本被轉換為大寫,.lowercase
類的文本被轉換為小寫,而.capitalize
類的文本被轉換為首字母大寫。
text-shadow
屬性用于為文本添加陰影效果??梢灾付幱暗乃狡?、垂直偏移、模糊半徑和顏色。
.shadow-text {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}
在上面的例子中,.shadow-text
類的文本被添加了一個2像素水平偏移、2像素垂直偏移、4像素模糊半徑的黑色陰影。
font-stretch
屬性用于設置字體的寬度??梢允褂藐P鍵字(如normal、condensed、expanded)或百分比來指定字體寬度。
.condensed-text {
font-stretch: condensed;
}
.expanded-text {
font-stretch: expanded;
}
在上面的例子中,.condensed-text
類的字體被設置為較窄的寬度,而.expanded-text
類的字體被設置為較寬的寬度。
font-synthesis
屬性用于控制瀏覽器是否應該合成粗體或斜體字體??梢允褂藐P鍵字(如none、weight、style)來指定合成方式。
.no-synthesis {
font-synthesis: none;
}
在上面的例子中,.no-synthesis
類的字體合成被禁用,瀏覽器不會合成粗體或斜體字體。
font-rendering
屬性用于控制字體的渲染方式??梢允褂藐P鍵字(如auto、optimizeSpeed、optimizeLegibility、geometricPrecision)來指定渲染方式。
.optimize-legibility {
font-rendering: optimizeLegibility;
}
在上面的例子中,.optimize-legibility
類的字體渲染被設置為優化可讀性。
font-feature-settings
屬性用于控制OpenType字體的高級排版特性??梢允褂锰囟ǖ奶匦詷撕灒ㄈ?rdquo;liga”、”kern”)來啟用或禁用這些特性。
.ligatures {
font-feature-settings: "liga" 1;
}
.kerning {
font-feature-settings: "kern" 1;
}
在上面的例子中,.ligatures
類的字體啟用了連字特性,而.kerning
類的字體啟用了字距調整特性。
font-variant-settings
屬性用于控制OpenType字體的變體特性??梢允褂锰囟ǖ淖凅w標簽(如”smcp”、”onum”)來啟用或禁用這些特性。
.small-caps {
font-variant-settings: "smcp" 1;
}
.oldstyle-numerals {
font-variant-settings: "onum" 1;
}
在上面的例子中,.small-caps
類的字體啟用了小型大寫字母特性,而.oldstyle-numerals
類的字體啟用了舊式數字特性。
font-display
屬性用于控制字體加載期間的顯示行為??梢允褂藐P鍵字(如auto、block、swap、fallback、optional)來指定字體顯示方式。
@font-face {
font-family: 'MyWebFont';
src: url('myfont.woff2') format('woff2');
font-display: swap;
}
在上面的例子中,MyWebFont
字體在加載期間會使用備用字體顯示,直到字體加載完成后再進行替換。
font-smoothing
屬性用于控制字體的抗鋸齒效果??梢允褂藐P鍵字(如auto、antialiased、subpixel-antialiased)來指定字體平滑方式。
.smooth-text {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
在上面的例子中,.smooth-text
類的字體在WebKit和Gecko瀏覽器中被設置為抗鋸齒效果。
font-variant-position
屬性用于控制上標和下標的位置??梢允褂藐P鍵字(如normal、sub、super)來指定變體位置。
.subscript {
font-variant-position: sub;
}
.superscript {
font-variant-position: super;
}
在上面的例子中,.subscript
類的文本被設置為下標,而.superscript
類的文本被設置為上標。
font-variant-numeric
屬性用于控制數字的顯示方式??梢允褂藐P鍵字(如normal、ordinal、slashed-zero)來指定數字變體。
.ordinal-numbers {
font-variant-numeric: ordinal;
}
.slashed-zero {
font-variant-numeric: slashed-zero;
}
在上面的例子中,.ordinal-numbers
類的數字被設置為序數形式,而.slashed-zero
類的數字被設置為帶有斜杠的零。
font-variant-ligatures
屬性用于控制連字的顯示方式??梢允褂藐P鍵字(如normal、common-ligatures、no-common-ligatures)來指定連字變體。
.common-ligatures {
font-variant-ligatures: common-ligatures;
}
.no-ligatures {
font-variant-ligatures: no-common-ligatures;
}
在上面的例子中,.common-ligatures
類的字體啟用了常見連字,而.no-ligatures
類的字體禁用了常見連字。
font-variant-caps
屬性用于控制大寫字母的顯示方式??梢允褂藐P鍵字(如normal、small-caps、all-small-caps)來指定大小寫變體。
.small-caps {
font-variant-caps: small-caps;
}
.all-small-caps {
font-variant-caps: all-small-caps;
}
在上面的例子中,.small-caps
類的字體被設置為小型大寫字母,而.all-small-caps
類的字體被設置為全部小型大寫字母。
font-variant-east-asian
屬性用于控制東亞文字的顯示方式??梢允褂藐P鍵字(如normal、jis78、jis83)來指定東亞文字變體。
.jis78 {
font-variant-east-asian: jis78;
}
.jis83 {
font-variant-east-asian: jis83;
}
在上面的例子中,.jis78
類的字體被設置為JIS78標準,而.jis83
類的字體被設置為JIS83標準。
font-variant-position
屬性用于控制上標和下標的位置??梢允褂藐P鍵字(如normal、sub、super)來指定變體位置。
.subscript {
font-variant-position: sub;
}
.superscript {
font-variant-position: super;
}
在上面的例子中,.subscript
類的文本被設置為下標,而.superscript
類的文本被設置為上標。
font-variant-numeric
屬性用于控制數字的顯示方式??梢允褂藐P鍵字(如normal、ordinal、slashed-zero)來指定數字變體。
.ordinal-numbers {
font-variant-numeric: ordinal;
}
.slashed-zero {
font-variant-numeric: slashed-zero;
}
在上面的例子中,.ordinal-numbers
類的數字被設置為序數形式,而.slashed-zero
類的數字被設置為帶有斜杠的零。
font-variant-ligatures
屬性用于控制連字的顯示方式??梢允褂藐P鍵字(如normal、common-ligatures、no-common-ligatures)來指定連字變體。
.common-ligatures {
font-variant-ligatures: common-ligatures;
}
.no-ligatures {
font-variant-ligatures: no-common-ligatures;
}
在上面的例子中,.common-ligatures
類的字體啟用了常見連字,而.no-ligatures
類的字體禁用了常見連字。
font-variant-caps
屬性用于控制大寫字母的顯示方式??梢允褂藐P鍵字(如normal、small-caps、all-small-caps)來指定大小寫變體。
.small-caps {
font-variant-caps: small-caps;
}
.all-small-caps {
font-variant-caps: all-small-caps;
}
在上面的例子中,.small-caps
類的字體被設置為小型大寫字母,而.all-small-caps
類的字體被設置為全部小型大寫字母。
font-variant-east-asian
屬性用于控制東亞文字的顯示方式??梢允褂藐P鍵字(如normal、jis78、jis83)來指定東亞文字變體。
.jis78 {
font-variant-east-asian: jis78;
}
.jis83 {
font-variant-east-asian: jis83;
}
在上面的例子中,.jis78
類的字體被設置為JIS78標準,而.jis83
類的字體被設置為JIS83標準。
font-variant-position
屬性用于控制上標和下標的位置??梢允褂藐P鍵字(如normal、sub、super)來指定變體位置。
.subscript {
font-variant-position: sub;
}
.superscript {
font-variant-position: super;
}
在上面的例子中,.subscript
類的文本被設置為下標,而.superscript
類的文本被設置為上標。
font-variant-numeric
屬性用于控制數字的顯示方式??梢允褂藐P鍵字(如normal、ordinal、slashed-zero)來指定數字變體。
.ordinal-numbers {
font-variant-numeric: ordinal;
}
.slashed-zero {
font-variant-numeric: slashed-zero;
}
在上面的例子中,.ordinal-numbers
類的數字被設置為序數形式,而.slashed-zero
類的數字被設置為帶有斜杠的零。
font-variant-ligatures
屬性用于控制連字的顯示方式??梢允褂藐P鍵字(如normal、common-ligatures、no-common-ligatures)來指定連字變體。
.common-ligatures {
font-variant-ligatures: common-ligatures;
}
.no-ligatures {
font-variant-ligatures: no-common-ligatures;
}
在上面的例子中,.common-ligatures
類的字體啟用了常見連字,而.no-ligatures
類的字體禁用了常見連字。
font-variant-caps
屬性用于控制大寫字母的顯示方式??梢允褂藐P鍵字(如normal、small-caps、all-small-caps)來指定大小寫變體。
.small-caps {
font-variant-caps: small-caps;
}
.all-small-caps {
font-variant-caps: all-small-caps;
}
在上面的例子中,.small-caps
類的字體被設置為小型大寫字母,而.all-small-caps
類的字體被設置為全部小型大寫字母。
font-variant-east-asian
屬性用于控制東亞文字的顯示方式??梢允褂藐P鍵字(如normal、jis78、jis83)來指定東亞文字變體。
”`css .jis78 { font-variant-east-asian: jis78; }
.jis83 { font-variant-east-asian
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。