5种方法去掉HTML中Inline-Block元素之间的空白

摘要:
然而,存在一个问题。当使用内联块时,HTML元素之间的空格将显示在页面上,这使得我们很难控制样式。这里有五种杀死它的方法。方法2:在父元素上设置字体大小:0以解决空白问题。最好的解决方案是在这些内联块元素的父元素上设置字体大小:0。方法3:负边距内联块列表{margin-left:-4px;}这种方法是最不推荐的,因为你必须考虑各种情况,有时会有一些意想不到的差距或覆盖范围。

园子开通有2个月了,一直没有下来写文,这两个月来我经历了多个项目的摧残以及………………

好吧~我承认是我自己懒。

作为园子的第一篇文章怎么也要上点干货,就算不是干货怎么也得放点有用的东西。不过,考虑到鄙人那点有限的水平,也淘不出什么干货来。于是我就找到了当年收藏的一篇文章,添加了一些自己的理解后发了出来,希望能给大家有借鉴的地方。

下面进入正题:

display: inline-block 是个很好用的样式,当你需要多个块状元素在同一行时你的第一反应就是它。有了它,你不在需要让这些元素去“block”和“float”,然后再去处理由于“float”引起的布局问题。但有一个问题,当使用inline-block时,HTML元素之间的空白会显示在页面上,这让我们控制样式的时候很难处理,下面我就介绍5个方法来干掉他。

方法1:各元素间不留任何空白

一个100%能解决这个问题的方法是在你的HTML代码里元素间不留任何空白:

<ul><li>Item content</li><li>Item content</li><li>Item content</li></ul>

当然,这样看起来很乱,让代码不好维护,但很实用,很直观,更重要的……很可靠。

这里提一下,我们在手写HTML的时候添加换行以及缩进是为了让它们看起来更清晰,当后台的小伙伴们通过动态模板输出的时候,它们是就是上面那个鬼样子,这就是为什么有些时候真实的项目中和我们自己的静态文件效果有出入的原因。

方法2:在父元素上设置font-size: 0

解决这个空白问题最好的方案是在这些inline-block元素的父元素上设置font-size: 0。如果你的<UL>里有inline-block的<LI>,那你可以这样做:

.inline-block-list { 
    font-size: 0; /* ul or ol with this class */
}

.inline-block-list li {
    font-size: 14px;  /* put the font-size back */
}

为了不让父元素的字体大小影响子元素,你需要重新在子元素上设置font-size值,这通常很简单。唯一可能遇到麻烦的情况是你用相对大小设置字体。但大多数时候,这样的方法能解决你的问题,如何你的子元素内没有任何文字,那么这种方法更是你的上上之选。

方法3:负边距

.inline-block-list li {
    margin-left: -4px;
}

这种方法最不推荐,因为你必须考虑到各种情况,有时候会出现一些无法预料的空白或覆盖。这里只是单纯的陈述一种解决方案,最好不用这招。

方法4:首尾接龙

<ul>
    <li>Item content</li
 ><li>Item content</li
 ><li>Item content</li>
</ul>

方法5:HTML注释

<ul>
    <li>Item content</li><!--
 --><li>Item content</li><!--
 --><li>Item content</li>
</ul>

后面这2种方法原理其实和第一种方法类似,本人尊重原作者,就一并引用过来了,这里就不再做讨论了。

总结

基于第一种方法,如果元素是动态的数据,那么我们可以完全无视该影响,当然我们自己在调试静态HTML的时候看起来会别扭一些;若是非静态的数据推荐使用第二种方法。

好了园子的处子文算是结束了,就我自己看来都是惨不忍睹,不过相信以后会好的,就这样吧

对了原文内容引自web骇客

免责声明:文章转载自《5种方法去掉HTML中Inline-Block元素之间的空白》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python基础之读取xmlDELPHI事务下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue cli 3

介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 通过 @vue/cli 搭建交互式的项目脚手架。 通过 @vue/cli + @vue/cli-service-global 快速开始零配置原型开发。 一个运行时依赖 (@vue/cli-service) 一个开发环境依赖,局部安装在每个 @vue/cli 创建的项目中。 可升...

使用 js 测试 websocket 连接

参考:https://blog.csdn.net/linysuccess/article/details/109223712 配合上篇文章,代码如下: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <m...

el-select数据超出展示样式

.selectBox{ /deep/.el-select_tags{   span:first-child{     max-100%;     text-align:left;     .el-tag--light:first-child{       display:inline-block;       max-100%;       .el-sel...

vue.js-详解三大流行框架VUE_快速进阶前端大咖-Vue基础

作者 | Jeskson 来源 | 达达前端小酒馆 Vue概述: MVX模式简介,Vue框架简介,Vue.js的安装与使用。 Vue基础语法: 实例对象,生命周期,模板语法,计算属性,methods方法 Vue渲染: 列表渲染,条件渲染 Vue事件与表单: 事件处理,事件对象,事件委派,表单处理 MVX模式简介:MVX框架模式:MVC+M...

python3 爬去QQ音乐

1 import requests 2 import re 3 import json 4 import os 5 6 7 8 def get_name(singer): 9 url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp' 10...

网页在pc端与移动端的兼容问题

一、浏览器的默认font-size 火狐,谷歌,IE默认16px 二、根元素的font-size设置 1、许多方法测试所得(网上)兼容电脑浏览器缩放的html {    font-size: 62.5%;}@media only screen and (min- 481px){    html {        font-size: 94%!importa...