在CSS中,块级对象元素会单独占一行显示,多个block元素会各自新起一行。而内联对象元素前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满。

使用 display inline-block 将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。

请大家先看display inline-block 实际应用中的效果

.my-test { width: 100%; height: 50px;}
.my-test ul { }
.my-test ul li { list-style: none; font-size: 12px; text-align: center; width: 20%; height: 100%; line-height: 50px; background: rgba(0,0,0,.4)}
<div class="my-test">
  <ul><li>1</li><li>2</li><li>3</li></ul>
</div>

增加  display inline-block 样式

.my-test ul li { list-style: none; display: inline-block; vertical-align: middle; font-size: 12px; text-align: center; width: 20%; height: 100%; line-height: 50px; background: rgba(0,0,0,.4)}

这里有一个问题 :

li之间出现了外边距

解决这个问题的办法有两种:

1.li元素之间不换行

<div class="my-test"><ul><li>1</li><li>2</li><li>3</li></ul>
</div>

如图,2和3之间未换行,外边距消失。

2.ul设置 font-size:0px;

如图,li之间的外边距都消失了。

继续思考 为什么li之间会出现外边距。

<div class="my-test"><ul id="ulid"><li>1</li><li>2</li><li>3</li></ul>
</div>

获取UL的子节点

可以看到,第一个li和第二个li之间有一个text的节点,而第二个li和第三个li之间并没有节点。

这里延伸出来新的问题 1.为何第一个text节点并没有导致第一个li出现外边距 2.text节点为何会导致出现外边距

关于第一个问题,猜测是因为浏览器自动帮忙处理了第一个节点,有知道原理的兄弟,请留言,拜谢。

第二个问题,text节点其实是一个回车,回车会被解析为一个空白符。空白符浏览器是作为一个半角空格来处理的。

.my-test ul {}<div class="my-test"><ul id="ulid"><li>1</li><li>2</li> <li>3</li></ul></div>

在2和3之间手动加入一个空格

出现了外边距

这也解释了为何设置font-size:0之后,间距会消失的情况。

转载于:https://www.cnblogs.com/tmbm/p/10374633.html

使用display inline-block 布局时,出现的间距问题的解决办法和相关说明相关推荐

  1. [CSS]详解display:inline | block |inline-block的区别

    2019独角兽企业重金招聘Python工程师标准>>> [CSS]详解display:inline | block |inline-block的区别[点评网站][发布新闻][申请专栏 ...

  2. Android应用启动时白色闪屏原因及解决办法

    白色闪屏现象: 如果OnCreate().onStart().onResume()中操作太多,耗时较久.那么就会在主界面显示出来之前出现白色闪屏.为了更清晰的看出白色闪屏,这里在代码中执行50000次 ...

  3. 打开Office时出现“运行时错误91”问题的解决办法

    打开Office时出现"运行时错误91"问题的解决办法 一.将 C:/Documents and Settings/All Users/Application Data/Micro ...

  4. mysql出现1499错误_连接MySQL时出现1449与1045异常解决办法

    连接MySQL时出现1449与1045异常解决办法 mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解 ...

  5. lombok使用中出现继承关系的对象时,出现的问题及解决办法

    lombok使用中出现继承关系的对象时,出现的问题及解决办法 参考文章: (1)lombok使用中出现继承关系的对象时,出现的问题及解决办法 (2)https://www.cnblogs.com/h- ...

  6. python3.8.3下载不了nltk_在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法...

    在ubuntu16.04+python3.5情况下安装nltk,以及gensim时pip3安装不成功的解决办法,我刚开始因为不太会用linux命令,所以一直依赖于python 的pip命令,可是怎么都 ...

  7. Ubuntu连接以太网时显示“设备未托管”的解决办法

    Ubuntu连接以太网时显示"设备未托管"的解决办法 故障分析: 电脑之前可能设置过PPOE(有线宽带虚拟拨号),常见为连接校园拨号宽带. 解决办法: 第一步:打开终端 第二步:切 ...

  8. 12 c for. oracle rac,【案例】Oracle RAC FOR AIX搭建执行root.sh时两次报错的解决办法

    天萃荷净 运维DBA反映在aix 5.3 ml6安装10.2.0.1 rac报错0509-036 Cannot load program crsctl.bin because of the follo ...

  9. Mac cnpm装包时提示Error: EACCES: permission denied解决办法

    Cnpm装包时提示Error: EACCES: permission denied解决办法 2018年03月04日 09:31:51 miniminixu 阅读数:1598 版权声明:本文为博主原创文 ...

最新文章

  1. COSMIC功能规模度量方法
  2. VTK:Rendering之TransformSphere
  3. CentOS7——卡在在启动界面
  4. Linux C中内联汇编的语法格式及使用方法
  5. php 浏览器 打印控件,JavaScript_JavaScript 实现打印,打印预览,打印设置,WebBrowser是IE内置的浏览器控件 - phpStudy...
  6. 服务器重启导致无法启动MySQL
  7. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_2_网络通信协议...
  8. 数值范围_涉及数值范围的答复及撰写建议
  9. macOS开机启动项设置
  10. 泰勒公式矩阵形式_雅可比矩阵、黑森矩阵、泰勒展开式
  11. linux_如何在Linux上配置基于Web的网络流量监控系统
  12. 360政企安全集团率先获得国家级安全运营资质
  13. python 提取骨架
  14. Zabbix实现短信报警
  15. verilog驱动1602液晶屏
  16. 使用matplotlib在图片上画框框
  17. VMware Workstation player16 虚拟机添加usb无线网卡
  18. ubuntu12.04安装puppet foreman
  19. 华为存储S2600V3操作指导书
  20. 笔记本计算机点管理点不开,电脑黑屏只有鼠标箭头任务管理器打不开 怎么解决...

热门文章

  1. How to use SAP CRM price determination in Quotation scenario
  2. SAP透明工厂和弹性制造的原型mockup - SAP 工业 4.0 的一个尝试
  3. 我用ABAP做过的那些无聊的事情
  4. 如何在Chrome development tool里查看C4C前台发送的未经 GZIP 压缩之前的请求细节
  5. 战网服务器修改 win8,如何修改战网客户端?修改战网客户端的方法
  6. logstash接收多台服务器日志_Logstash实践: 分布式系统的日志监控
  7. 我要回家软件_超4成受访网友认可候补购票:抢票软件难了,还是12306靠谱
  8. php万年历上个月下个月,php 万年历
  9. java外围设计_Java 编程(23 种设计模式)
  10. xampp mysql创建表_xampp怎样创建数据表和删除数据表 来学习吧