CSS 條件判斷、等寬字體以及ch單位


 1 <!DOCTYPE>
 2 <html lang="en">
 3     <head>
 4         <meta charset="utf-8">
 5         <style>
 6             @supports(display: none){
 7                 dot{
 8                     display: inline-block;
 9                     width:3ch;
10                     text-indent:-1ch;
11                     vertical-align: bottom;
12                     overflow:hidden;
13                     animation: dot 2s infinite step-start both;
14                     font-family: Consolas,Monaco,monospace;
15                 }
16             }
17 
18             @keyframes dot{
19                 33%{text-indent:0;}
20                 66%{text-indent:-2ch;}
21             }
22         </style>
23     </head>
24     <body>
25         <a href="javascript:;" class="grebtn">訂單提交中<dot>...</dot></a>
26     </body>
27 </html>

上述為@supports、等寬字體、ch相對單位的綜合實例。

以下為詳細介紹:

一、CSS3條件判斷

這里主要是@supports的用法起源:根據不同瀏覽器對CSS的支持,定義不同的樣式。即,漸進增強式設計。通俗的說就是,讓用高級瀏覽器的用戶體驗到更好的效果。

實例1:基本用法

@supports (display:flex) {
  section { display: flex }
  ...
}    

這段代碼的意思是:如果瀏覽器支持“display:flex”,則給section設置“display:flex”樣式。

實例2:not邏輯聲明

@supports not (display: flex){
  #container div{float:left;}
}

這段代碼的意思是:如果瀏覽器不支持“display:flex”,則給#container設置“float:left”樣式。

實例3:and邏輯聲明

@supports (column-width: 20rem) and (column-span: all) {
  div { column-width: 20rem }    
  div h2 { column-span: all }
  div h2 + p { margin-top: 0; }
  ...
}    

上面的代碼表示的是,如果瀏覽器同時支持“column-width:20rem”和“column-span:all”兩個條件,瀏覽器將會調用其中的樣式。

實例4:or邏輯聲明

@supports (display: -webkit-flex) or (display: -moz-flex) or (display: flex) {
  section {
    display: -webkit-flex;
    display: -moz-flex;
    display: flex;}           
}    

上面的代碼表示的是,如果瀏覽器支持3個條件中的任意一種,瀏覽器將會調用其中的樣式。

在js中的寫法:

var supportsFlexAndAppearance = window.CSS.supports("(display: flex) and (-webkit-appearance: caret)");    

簡單介紹至此,回到開篇代碼:如果瀏覽器支持“display:none”,則給<dot>(自定義標簽)添加對應樣式,很好理解

二、等寬字體

一般而言,東亞字體都是等寬,但是英文不一定等寬,取決於具體的字體。

為了易讀性,一般顯示源代碼都會用等寬字體。下面舉例說明:

iiiii

MMMMM

胖瘦很明顯有木有(Comic Sans MS)

iiiii

mmmmm

一般寬度,這就是等寬字體,更加規則好看(Courier New)

常見的等寬字體:Consolas,Monaco,monospace

 

三、相對單位ch

這是一個很少見的單位,了解一下也無妨

1ch表示一個0字符的寬度,所以000000所占據的寬度就是6ch


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM