你不知道的空格

来源:https://www.cnblogs.com/-lee/archive/2020/04/09/12665078.html
-Advertisement-
Play Games

本文對瞭解的空格分為幾個Level,看大家能達到哪個level。 Level1: 半形空格 歷史最悠久的空格,在1967年,ASCII 規範中被定義。 空格在 ASCII 中編碼為0x20, 占位符為一個半形字元。在日常英文書寫和代碼編寫中使用。 Level2: 全形空格 中文輸入中的空格(標準說法 ...


本文對瞭解的空格分為幾個Level,看大家能達到哪個level。

Level1: 半形空格

歷史最悠久的空格,在1967年,ASCII 規範中被定義。
空格在 ASCII 中編碼為0x20, 占位符為一個半形字元。在日常英文書寫和代碼編寫中使用。

Level2: 全形空格

中文輸入中的空格(標準說法為中日韓表意字元(CJK)中使用的寬空格)。和其他漢字一樣,作為GBK的一個字元,其對應的unicode碼為\u3000.寬度是2個半形空格的大小。
例如:

  國父 孫中山先生 

Level3: 不間斷空格 ( non-breaking space )

unicode 為 \u00A0, 在代碼中可能會出現的編碼錯誤(utf8 編碼0xC2 0xA0) 就是它了。
在Word中,會遇到一個有多個單片語成的片語被分割在兩行文字中,這樣很容易讓人看不明白。這時候,不間斷空格就可以上場了。
輸入不間斷空格,會將不間斷空格連著的單詞在一行展示。
舉個例子:

上面英文使用了不間斷空格,下麵沒有使用。所以上面的英文自動在一行展示,而下麵沒有。
在word中輸入不間斷空格的方式為: (Ctrl + Shift + Space)

除了在word等文本編輯軟體中使用,其實不間斷空格在html 中大量使用。  是html 中最為常見的空格。由於html頁面中,如果有多個連著的半形空格,則空格只會展示一個。而使用  空格,則會顯示占位半個自寬。

Level4: 零寬度空格 (ZERO WIDTH SPACE)

零寬度空格有兩種

  1. 零寬度空格 unicode 編碼為 \u200B.

不可見非列印字元。有了半形空格,也有了全形空格,其實還有零寬度空格。因為寬度為零,因此該字元是一個不可見字元。
這個編碼雖然是不可見的,但是也是非常有用的。它可以替換html中的標簽(軟換行, html5 新增)。

  1. 零寬度非中斷空格(ZWNBSP) unicode 編碼為 \u2060 (之前使用\ufeff表示,unicode 3.2 開始 \ufeff 標記unicode文檔的位元組序。)
    該空格結合了 non-breaking space 和 零寬度空格的特點。既會自動換行,寬度又是0。

零寬度空格(軟換行)舉例:

一行連續的英文編碼:

<p style="font-size:100px;">PhpIsTheBestProgramingLanguageInTheWorld</p>

chrome 中將顯示不換行:

而如果在每個可以換行的地方加上 <wbr />, 則可以在標記的最近的地方換行。

<p style="font-size:100px;">Php<wbr />Is<wbr />The<wbr />Best<wbr />Programing<wbr />Language<wbr />In<wbr />The<wbr />World</p>

chrome 中將顯示:

Level5: 其他空格字元空格

雖然已經有半形空格、全形空格,但是上面的空格如果字體變化了,不會隨著字體的變化而變化。
因此,又有了可以隨著字體的變化而變化的空格,簡單羅列如下:

在html 的寬度度量中,有一種單位叫em,是按照字體大小定義的,下麵的em也是字體的寬度。
列印字元的空格有很多種,羅列幾個:

名稱 unicode 編碼 html 標記 特征和用途
短空格 \u2002 &ensp; html 中占位半個字
長空格 \u2003 &emsp; html 中占位一個字
1/3em空格 \u2004 &emsp13; 占用1/3個空格
1/4em空格 \u2005 &emsp14; 占用1/4個空格
1/6em空格 \u2006 &emsp14; 占用1/6個空格
數樣間距 (figure space) \u2007 &numsp; 在等寬字體中,寬度是一個字元的寬度。
行首前導空格 (punctuation space) \u2008 &puncsp; 寬度約為 0x20 的寬度。
瘦弱空格 (thin space) \u2009 &thinsp; 寬度是 全形列印空格的 1/5 或者 1/6 (寬度不定,法文設置為1/8), 主要用在列印兩個空的引號之間。
hair space \u200a &hairsp; (瀏覽器目前不支持), 最窄的空格,推薦標準為 (1/10, 1/16)
narrow no-break space \u202f &nnbsp; 和0a 類似,不同語種中不太一樣。
medium mathematical space \u205f &mediumspace; 在格式化數學公式時使用。是 4/18 的 em寬度,例如:"a + b"中,a 和+ 之間應該用 這個空格

相關鏈接:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 百度了下關於力軟敏捷框架 jfGrid的教程,基本沒有,出來的全是jqGrid。好吧看來只能自己上手了 今天來講講列設置屬性里數據格式化事件(formatter)的使用 常規的使用方式如上圖所示。 先來說說各個參數的意思: cellvalue 當前單元格的數據值,也就是你賦的值是什麼就是什麼。 ro ...
  • 目錄 非同步編程樣例 樣例解析 淺談Promise如何實現非同步執行 參考 1.非同步編程樣例 樣例: 執行結果: 2.樣例解析 在樣例代碼中, 非同步函數使用了 和`await Generator Promise async await Generator Promise`實現。 第一步:先將 和`awa ...
  • 高度坍塌:浮動元素佈局導致的問題 高度坍塌的根源:浮動盒子脫離了常規流,因此常規流盒子進行高度計算時,不會考慮浮動盒子的高度。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" c ...
  • 上接 ES6 - 基礎學習(3): 變數的解構賦值 函數參數的解構賦值 1、基本用法 function add([x, y]) { return x + y; } console.log(add([1, 2])); // 3 // 如上面代碼所示,函數add的形參錶面是一個數組,但在實參參數傳入時, ...
  • Web前端開發入行門檻低,是很多人轉行的首選。但依然有一些想轉行學習Web前端的人在徘徊、猶豫,怕學不好前端,更因為是零基礎不知道如何入手。下麵,我就給大家介紹一下學習Web前端開發難嗎?都要學習哪些內容? 根據市面上企業需求和大部分學員的基礎,主要學習一下內容: 1、前端頁面重構。主要內容為PC端 ...
  • 使用float實現文字環繞圖片代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0 ...
  • 需求:有一個圖片列表,我想要在圖片onload成功之後獲取載入成功的圖片列表,圖片資源載入為非同步,我們使用ES7的async await方式實現,多張圖片,是用for迴圈。 註意:圖片載入失敗一定要加監聽,await只有在有返回之後才會繼續向下執行,無論成功與失敗,否則第一張圖載入失敗,下麵的awa ...
  • 一、前端工程化是現代前端的必備技能 Web 前端這幾年進化速度之快讓人咂舌,很多前端工程師都不禁吐槽“學不動了”。 如今已經不是 HTML、CSS、JS 前端三劍客仗劍走天下的時代了。 以親身經歷舉例, 2011 年左右進入前端領域,當時工作的主要內容是,將設計稿切圖轉成靜態頁面,然後用 jQuer ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...