html+css如何删除行内元素之间的空白/空隙
时间:2017-10-19
在编写前端HTML和css时,将两个行内元素(display:inline-block)放在同一行,并且元素的margin和padding都为0,但是两元素之间有白色的空格。如何解决这个问题呢?请仔细阅读本文章。
html和css如下:
<p>
<span> Foo </span>
<span> Bar </span>
</p>
span {
display:inline-block;
width:100px;
background-color:palevioletred;
}
效果如下:
SPAN元素之间将会有一个4px宽度的空白。
如何解决呢?
首先我们需要分析出现这种问题的原因在哪里。
因为span是行内元素,这意味着就和一个字符一样,而不管两个字符相距多远,对于浏览器来说只会解析为一个空格, 比如上述代码,换了一行,也算是一个空格,那一段空白就是这么来的.
知道了原因,那么解决的方法就有了。
第一种方法:
将两个span元素放在同一行,不要换行。如:
<p>
<span>Foo</span><span>Bar</span>
</p>
第二种方法:
将p元素的font-size设置为0,然后将span的font-szie设置为指定像素。如:
span {
display:inline-block;
width:100px;
background-color:palevioletred;
font-size:14px;
}
p{
font-size:0px;
}
<p>
<span> Foo </span>
<span> Bar </span>
</p>
第三种方法:
使用display: table;和display: table-cell;属性代替display: inline-block;
p {
display: table;
}
span {
width: 100px;
border: 1px solid silver; /* added for visualization only*/
display: table-cell;
}
<p>
<span> Foo </span>
<span> Bar </span>
</p>
第四种方法:
在p元素上加上display: flex属性
p {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
span {
float: left;
display: inline-block;
width: 100px;
background: blue;
font-size: 30px;
color: white;
text-align: center;
}
<p>
<span> Foo </span>
<span> Bar </span>
</p>
虽然这些方案都不是很理想,但是如果不这样处理,那你的HTML代码结构可能就非常混乱,成为标准的垃圾代码。
因为行内元素非常好用,所以这并不是一个小心避免的雷区,作为开发人员,学会处理这种空白问题也是很重要的 。
- 数据紧急修复之启用错误日志 (r2第12天)
- javascript 模拟按键点击提交
- 微信小程序调用接口返回数据或提交数据
- 巧用shell脚本生成快捷脚本(r2第12天)
- asp.net动态增加服务器端控件并提交表单
- c# asp.net 实现分页(pager)功能
- 一次数据库无法登陆的"问题"及排查(r2第11天)
- popcorn-js视频Video框架简单用法
- 一次数据库响应缓慢的问题排查(r2第9天)
- 通过Ajax方式上传文件(input file),使用FormData进行Ajax请求
- C# 读取指定文件夹下所有文件
- ASP.NET 实现Base64文件流下载PDF
- MVC自定义视图引擎地址
- JS禁止鼠标右键、禁止全选、复制、粘贴的方法(所谓的防盗功能)
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- Android实现扫描二维码功能
- android实现录屏功能
- android自定义手表效果
- Android 测量文字宽度的实例方法
- Android 添加系统服务的方法详解
- android实现录屏小功能
- Android控件CardView实现卡片效果
- 非常好看的android音量旋钮
- Android实现按钮拖拽还原功能
- 百度地图实现小车规划路线后平滑移动功能
- frp内网穿透部署搭建教程,内网端口暴露给了外网
- Android使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信界面
- Linux安装Collabora Online让NextCloud支持Office在线编辑
- 教你在CentOS7安装Vuze(Azureus)
- Pwn-EXP模板