html 空格-有趣的試驗

来源:http://www.cnblogs.com/beidan/archive/2016/04/04/5353117.html
-Advertisement-
Play Games

首先,先給大家看一組demo 展示效果: 為什麼會出現空格呢?input不是行內元素嗎?改變一下代碼再看看效果 如果2個input之間沒有間隙的話,下麵的空格就消失了 再試驗一組行內元素: 展示效果如下: 為了使這些行內元素之間的間距消失,我們手動刪除行內元素之間產生的額外空隙,代碼如下 效果圖如下 ...


首先,先給大家看一組demo

1 <input />
2 <input type="submit" />

展示效果:

為什麼會出現空格呢?input不是行內元素嗎?改變一下代碼再看看效果

<input /><input type="submit" />

如果2個input之間沒有間隙的話,下麵的空格就消失了

再試驗一組行內元素:

1 <span>行內元素</span>
2 <span>行內元素</span>
3 <span>行內元素</span>
4 <span>行內元素</span>
5 <span>行內元素</span>

展示效果如下:

為了使這些行內元素之間的間距消失,我們手動刪除行內元素之間產生的額外空隙,代碼如下

1 <span>行內元素</span><span>行內元素</span><span>行內元素</span><span>行內元素</span><span>行內元素</span>

效果圖如下:

使用這種方法確實可以去掉行內元素之間的間距,但是代碼堆成了一片,看得起很不舒服,那還可以怎麼解決?

一.使用font-size:0

原理:行內元素的間距是由於換行符、tab(製表符)、空格等字元引起,而字元的大小是定義字體大小來控制,所以去除間隔可以從改變字體的大小入手。即設置當前行內元素的父元素的 font-size: 0;

1 <div>
2     <span>行內元素</span>
3     <span>行內元素</span>
4     <span>行內元素</span>
5     <span>行內元素</span>
6     <span>行內元素</span>
7 </div>
1 div{
2     font-size: 0px;
3 }
4 span{
5     font-size: 14px;
6 }

效果圖如下: 嘿嘿,行內元素之間的間距不見了

這個方法,基本上可以解決大部分瀏覽器下inline,inline-block元素之間的間距(IE7等瀏覽器有時候會有1像素的間距)。不過有個瀏覽器,就是Chrome, 其預設有最小字體大小限制,因為,考慮到相容性,我們還需要添加:

1 div{
2     font-size: 0;
3     -webkit-text-size-adjust:none;  /* 使用webkit的私有屬性,讓字體大小不受設備終端的調整,可定義字體大小小於12px */
4   *word-spacing:-1px;             /* 使用word-spacing 修複 IE6、7中始終存在的 1px 空隙,減少單詞間的空白(即字間隔) */
5 }

 

通常情況下,我們可能會想要通過下麵的代碼實現一些效果

1 <p>行內        元素</p>
2 <p>行內 元素</p>

但是效果圖確實下麵這樣子,這是因為,預設情況,瀏覽器在解析 html 時,HTML 源碼中的空白符均被顯示為空格,並且連續的多個空白符會被視為一個

HTML 中的“空白符”包括:空格 (space)、製表符 (tab)、換行符 (CR/LF) 三種。

這並不能難倒我們,使用空格的替代符號

1 <p>行內&nbsp;&nbsp;&nbsp;元素</p>
2 <p>行內 元素</p>

效果圖:

名稱編號描述
&nbsp; &#160; 不斷行的空白(1個字元寬度)
&ensp; &#94; 半個空白(1個字元寬度)
&emsp; &#8195; 一個空白(2個字元寬度)
&thinsp; &#8201; 窄空白(小於1個字元寬度)

  • 使用方法:可以用名稱或編號作為空格的替代符號,名稱必須小寫,末尾的“;”不能省略。通常情況下我們都是使用&nbsp; (也就是按下space鍵產生的空格。)

 

1.white-space

但是,如果我們想實現下麵這個效果?有一定的縮進?是否要使用margin,padding?之類的屬性?

1 <div style="white-space:pre">
2     function sum(x,y){
3         var sum = x + y;
4         return sum;
5     }
6 </div>

當white-space屬性取值為pre時,瀏覽器會保留文本中的空格和換行,這樣你就可以直接在文本中使用空格和回車了。

 

2.letter-spacing 

設置文本中字元之間的間隔,它的取值可以是一個帶單位的長度值,瀏覽器會在字和字之間設置指定長度的空白。

1 <div style="letter-spacing:20px">歡迎光臨!</div>

 

3.word-spacing 

設置文本中單詞之間的間隔,它的取值可以是一個帶單位的長度值

1 <div style="word-spacing:20px">Happy new year!</div>

 

4.text-indent 

有時候,文章每個段落需要縮進,實現那麼的效果?

使用text-indent 設置首行縮進,它的取值可以是一個帶單位的長度值,

1 <div style="text-indent:2px">歡迎光臨!</div> 

 


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

-Advertisement-
Play Games
更多相關文章
  • dict是字典dictionary的縮寫,他存放的是鍵值對key/value,用花括弧表示,格式為d={'micheal':99,'jack':88} 當我們訪問的時候直接print(d['micheal'])#輸出相應的99; 可以給dict複製並且會覆蓋掉原來的value,但是如果key沒有對應 ...
  • 隨著互聯網信息技術日新月異的發展,一個海量數據爆炸的時代已經到來。如何有效地處理、分析這些海量的數據資源,成為各大技術廠商爭在激烈的競爭中脫穎而出的一個利器。可以說,如果不能很好的快速處理分析這些海量的數據資源,將很快被市場無情地所淘汰。當然,處理分析這些海量數據目前可以借鑒的方案有很多:首先,在分 ...
  • 回顧: 上一節中鄙人通過解析表達式樹生成Sql碎片,其中我也把解析表達式類代碼貼了出來,文章發佈之後我對ExpressionAnalyzer類做了些改動,下麵我還會將代碼貼出來,廢話不多說,直接進入今天的主題。 實體類設計: 首先,我覺得要想直接通過實體類生成Sql語句,那麼你可能要知道這個實體類對 ...
  • 作者:禪樓望月( http://www.cnblogs.com/yaoyinglong ) JavaScript里也可以像Java等面向對象的語言世界里創建自定義的類型,但是由於JavaScript中不支持使用class關鍵字來創建自定義的類型,因此我們只能另闢蹊徑……下麵我們一起來看在JavaSc ...
  • 作用: 給用戶提供一個界面(前臺界面),讓用戶填寫相應的信息,對用戶提交的信息進行收集、分類、與用進行交互。 表單的工作流程: 1、用戶在具有表單的頁面填寫數據 2、將數據提交至後臺(.php) 例如uli.php 3、後臺(.php)接收數據後進行驗證,如果驗證通過,則寫入資料庫或從資料庫將數據讀... ...
  • 文件尾碼名 sass有兩種尾碼名文件:一種尾碼名為sass,不使用大括 號和分號;另一種就是我們這裡使用的scss文件,這種和我們 平時寫的css文件格式差不多,使用大括弧和分號。而本教程中 所說的所有sass文件都指尾碼名為scss的文件。在此也建議使 用尾碼名為scss的文件,以避免sass尾碼 ...
  • 第8章,用jQuery打造個性網站 網站結構 文件結構 images文件夾用於存放將要用到的圖片 styles文件夾用於存放CSS樣式表,個人更傾向於使用CSS文件夾 scripts文件夾用於存放jQuery腳本,個人更傾向於使用JS文件夾存放所有的js及jQuery腳本 編寫CSS樣式 推薦首先編 ...
  • 第6章,jQuery與Ajax的應用 Ajax的優勢和不足 Ajax的優勢 1、不需要插件支持 2、優秀的用戶體驗 3、提高Web程式的性能 4、減輕伺服器和帶寬的負擔 Ajax的不足 1、瀏覽器對XMLHttpRequest對象的支持度不足 2、破壞瀏覽器前進、後退按鈕的正常功能 3、對搜索引擎的 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...