<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          html/css解決inline-block內聯元素間隙的多種方法總匯

          時間:?2017-12-08閱讀:?841標簽:?方法

          display有幾種屬性:
          inline是內聯對象,比如<a/> 、 <span/>標簽等,可以“堆在一起”顯示,寬高由內容決定,不能設置;
          block是塊對象,比如<div/>、<p/>標簽等,要占一整行,但是寬高可以自定義;
          為了彌補inline和block的不足,又擴充了inline-block屬性;inline-blcok可以將對象呈遞為內聯對象,而內容作為塊對象呈遞。

          但是display:inline-block;在IE6/7中不兼容:解決辦法:

          display:inline-block;*dsiplay:inline;*zoom:1;


          為什么會有間隙

          inline元素之間本身就存在間隙,是不是這個間隙引起的呢?最終原因是由于inline元素中間的空白符引起的,解決辦法:就是去掉空白符。


          解決方案

          1、改變書寫結構

          <ul>
              <li>item1</li><li>item2</li><li>item3</li><li>item4</li><li>item5</li>
          </ul>
          <ul>
          	<li>
          		item1</li><li>
          		item2</li><li>
          		item3</li><li>
          		item4</li><li>
          		item5</li>
          </ul>
          <ul>
          	<li>item1</li
          	><li>item2</li
          	><li>item3</li
          	><li>item4</li
          	><li>item5</li>
          </ul>
          <ul>
          	<li>item1</li><!--
            --><li>item2</li><!--
            --><li>item3</li><!--
            --><li>item4</li><!--
            --><li>item5</li>
          </ul>

          以上幾種均可以完美的達到去除間隙的作用。但是,從代碼的可讀性上看,或多或少有一些不足。如果使用到了打包工具或者自寫腳本,在上線前將響應HTML代碼打包成一行,即可。


          2、使用font-size:0

          .space {
              font-size: 0;
             -webkit-text-size-adjust:none;//兼容Chrome
          }
          .space a {
              font-size: 12px;
          }

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


          3、使用margin負值

          @media screen and (-webkit-min-device-pixel-ratio:0) { div { margin-right: -8px; } }/*谷歌 HACK 方法*/

          除谷歌外的其他瀏覽器間隙是4px,使用margin:-4px; 唯獨谷歌是 雙倍的8px,需要給谷歌單獨設置 margin:-8px; 


          4、使用letter-spacing或word-spacing

          .space {
              letter-spacing: -3px;
          }
          .space a {
              letter-spacing: 0;
          }

          該方法基本可以搞定所有瀏覽器 ,不過Opera瀏覽器下有蛋疼的問題:最小間距1像素,然后,letter-spacing再小就還原了。

          .space {
              word-spacing: -6px;
             display: inline-table;/*兼容Chrome*/
          }
          .space a {
              word-spacing: 0;
          }

          word-spacing的負值只要大到一定程度,其兼容性上的差異就可以被忽略。因為,貌似,word-spacing即使負值很大,也不會發生重疊。


          5、丟失結束標簽

          <ul>
          	<li>item1
          	<li>item2
          	<li>item3
          	<li>item4
          	<li>item5
          </ul>

          此方法雖然可以解決此問題,但是在Doctype為xhtml時將報錯,所有方法是否適用須視情況而定。


          6、W3C推薦 導航方法(兼容IE6等)

          <style type="text/css">
                  body,div,h1,ul,li{margin:0; padding:0;}
                  ul,li{list-style:none;}
                  a{text-decoration: none;}
                  .nav a{background: red;color:#fff;padding: 10px 20px;margin-right: -4px;line-height: 40px;*margin-right: -8px;/* ie 下面也是 -8px*/}
                  @media screen and (-webkit-min-device-pixel-ratio:0) { .nav a { margin-right: -8px; } }/*谷歌 HACK 方法*/
                  .nav ul li{display:inline;}
                  .nav a:hover{text-decoration: underline;}
          </style>
          <div class="nav">
                  <ul>
                      <li><a href="#">首頁</a></li>
                      <li><a href="#">服裝城</a></li>
                      <li><a href="#">食品</a></li>
                      <li><a href="#">團購</a></li>
                      <li><a href="#">奪寶島</a></li>
                      <li><a href="#">閃購</a></li>
                      <li><a href="#">金融</a></li>
                  </ul>
          </div>

          不使用hack方法的話,每個li緊挨著即可,不要留空格等間隙。


          7、YUI 3 CSS Grids的處理

          .yui3-g {
              letter-spacing: -0.31em; /* webkit */
              *letter-spacing: normal; /* IE < 8 重置 */
              word-spacing: -0.43em; /* IE < 8 && gecko */
          }
          .yui3-u {
              display: inline-block;
              zoom: 1; *display: inline; /* IE < 8: 偽造 inline-block */
              letter-spacing: normal;
              word-spacing: normal;
              vertical-align: top;
          }
          


          8、其他方法

          li {
              display:inline-block;
              background: orange;
              padding:10px;
              word-spacing:0;
              }
          ul {
              width:100%;
              display:table;  /* 調教webkit*/
              word-spacing:-1em;
          }
          
          .nav li { *display:inline;}


          結語

          其他去除間距的方法肯定還有,歡迎大家通過評論方式進行補充。

          站長推薦

          1.阿里云: 本站目前使用的是阿里云主機,安全/可靠/穩定。點擊領取2000元代金券、了解最新阿里云產品的各種優惠活動點擊進入

          2.騰訊云: 提供云服務器、云數據庫、云存儲、視頻與CDN、域名等服務。騰訊云各類產品的最新活動,優惠券領取點擊進入

          3.廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入

          鏈接: http://www.modern-decoration.com.cn/article/detial/235

          Javascript有重寫嗎?

          JavaScript中有重寫。有時子類并不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱方法覆蓋。

          javascript中的split方法怎么用?

          split()方法可以利用字符串的子字符串的作為分隔符將字符串分割為字符串數組,并返回此數組,本文給大家介紹javascript split 方法。split() 方法用于把一個字符串分割成字符串數組。

          JavaScript中Array.find()方法如何使用?

          find()方法返回通過測試(函數內判斷)的數組的第一個元素的值。當數組中的元素在測試條件時返回 true 時, find()返回符合條件的元素,之后的值不會再調用執行函數。如果沒有符合條件的元素返回undefined。

          自定義Buffer方法

          Buffer類,是用來創建一個專門存放二進制數據的緩存區。每當需要處理二進制數據時,就有可能使用到Buffer類。Buffer存在于全局對象上,是必須要了解和掌握的知識。

          javascript中怎么定義靜態方法?

          JavaScript中直接定義在構造函數上的方法和屬性是靜態的, 定義在構造函數的原型和實例上的方法和屬性是非靜態的。

          什么是javascript的私有方法?

          私有方法是只有父類可以訪問的方法和屬性,他與靜態方法一致,只是表現形式不一樣。構造器中的var變量和參數都是私有方法。私有成員由構造函數生成。構造函數的普通變量和參數成為私有成員。

          node事件驅動events提供哪些方法?

          nodejs是基于事件驅動和非阻塞I/O的方式來設計運行的,那么作為實現事件驅動的核心模塊Events就成了深入學習node.js的關鍵。在node中大部分的模塊的實現都繼承了Events類。 比如,文件操作中的fs事件流,網絡編程所用到的tcp,http模塊等

          Js的string.search()方法怎么用?

          string.search()是JavaScript中的一個內置方法,用于搜索正則表達式和給定字符串對象之間的匹配。返回值:返回正則表達式與給定字符串對象之間的第一個匹配的索引,如果未找到匹配項則返回-1。

          js常用擴展方法

          在日常的開發過程中,經常會碰到javaScript原生對象方法不夠用的情況,所以經常會對javaScript原生方法進行擴展。下面就是在實際工作時,經常使用的一些方法,做一下記錄,有需要的可以拿去。

          js通過方法返回對象的注意點

          s通過方法返回一個字面量對象和返回一個提前已經定義好的字面量對象有區別嗎?我們先來看看第一種情況,fun1方法返回一個提前沒定義的字面量對象,然后通過調用方法返回三個對象

          fly63.com版權所有,內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全運營推廣

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网