inline-block间距解决方案
当我们将元素设为inline-block时,总是会莫名其妙出现一些间距
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
ul {
padding-left: 0;
}
ul li {
width: 20px;
height: 20px;
background: red;
display: inline-block;
}
</style>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
效果如下:
原因在于空白符的存在!</li>与下一行的<li>之间存在空白换行符
解决方法一般是在不破坏dom结构的前提下改变写法以清除换行符
1.结束标签与开始标签拼接
<ul>
<li> </li><li> </li><li> </li><li> </li>
</ul>
2.拆分开始标签
<ul>
<li>
</li><li
></li><li
></li><li
></li>
</ul>
3.拆分结束标签
<ul>
<li></li
><li></li
><li></li
><li></li>
</ul>
4.将换行符注释掉
<ul>
<li></li><!--
--><li></li><!--
--><li></li><!--
--><li></li>
</ul>
5.使用margin负值
即将margin-left设为负值,让其向左偏移,但偏移距离与浏览器、上下文字体及字体大小有关,一说为-0.25em,亲测并不适用,故此方法适用性不佳
6.清除闭合标签(看起来怪怪的。。)
<ul>
<li>
<li>
<li>
<li>
</ul>
注意: 父元素的闭合标签不可省去,否则在低版本浏览器(主要指IE)上会有问题
7.父元素font-size设为0
原理很简单,父元素font-size设为0后空白字符字体大小也为0,自然看不出来,但是在有些浏览器上,最小字体有限制,主要指的是chrome,
这时,可加上-webkit-text-size-adjust: none (-webkit-text-size-adjust 是否根据设备大小调整字体,仅仅在移动设备上有效),但最新的chrome已解决此问题
8.letter-spacing设为负值
将leter-spacing设为负值可减少设置消除间距,不同浏览器数值不一样,一般不会发生叠加,但opera上会有过小还原的现象。
9.word-spacing设为负值
类似于letter-spacing的效果,但过小时会发生叠加,私认为此方法也不算可取。
因此现阶段最好的方法为: 改变dom结构、清除闭合标签及font-size设为0
inline-block间距解决方案的更多相关文章
- inline元素和inline-block元素的4px空白间距解决方案
实在不想写了,要吐了,看到一篇讲的比较全的文章,直接粘链接了 inline元素和inline-block元素的4px空白间距解决方案 出自脚本之家
- inline-block元素的4px空白间距解决方案
http://www.jb51.net/css/68785.html inline-block元素的4px空白间距解决方案
- inline-block,inline,block,table-cell,float
float:left ---------------------------------------------------------------------------------------- ...
- inline,block,inline-block的区别
display:block block元素会独占一行,多个block元素会各自新起一行.默认情况下,block元素宽度自动填满其父元素宽度. block元素可以设置width,height属性.块级元 ...
- 块状元素和内联元素 【inline block】
// 9) { colorRandom += colorArray[randomV - 10]; } else { colorRandom += randomV; } } currentEle.css ...
- IE6双倍margin间距解决方案
问题:在IE6下如果某个标签使用了float属性,同时设置了其外补丁“margin:10px 0 0 10px”可以看出,上边距和左边距同样为10px,但第一个对象距左边有20px. 解决 ...
- inline, block, and inline-block
总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...
- display:inline block inline-block 的区别
原文地址:http://blog.csdn.net/jly036/article/details/5506182 display:block就是将元素显示为块级元素. block元素的特点是: 总是在 ...
- inline,block,inline-block解析
display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div& ...
随机推荐
- ThinkPHP连接主从数据库
config.php文件设置如下: return array( 'URL_MODE'=>0, 'DB_TYPE'=>'mysql', 'DB_HOST'=>'localhos ...
- 了解MVC框架开发
版权声明:本文为博主原创文章,未经博主允许不得转载. 前言:本篇文章我们浅谈下MVC各个部分,模型(model)-视图(view)-控制器(controller), 以及路由. 对于使用MVC的好处大 ...
- 如何从一个1G的文件中找到你所需要的东西
如何从一个1G的文件中找到你所需要的东西,这个问题貌似面试的时候会经常问到.不过不论你用什么语言,肯定逃脱不了按指针读或者按块读. 这里介绍python的用法.本人亲自实验了,速度还可以. 如果你的文 ...
- nginx proxy cache配置和清理
1.nginx需要编译Purge模块 2.nginx.conf 配置cache: proxy_cache_path /home/cache/xxx levels=1:2 keys_zone=cac ...
- 使用Fiddler抓包拦截线上JS
第三方教程:http://www.lcgod.com/atc_74 分六步即可: 1.左侧session列表中选中你想替换的一条请求 2.右侧,切换到AutoResponder,点击Add rules ...
- Atitit.5gl 第五代语言编程语言 PROLOG教程 人工智能语言的标准 与实现
Atitit.5gl 第五代语言编程语言 PROLOG教程 人工智能语言的标准 与实现 1. 第五代语言就是自然语言又被称为知识库语言或人工智能语言,1 2. 人工智能语言特点2 2.1. 试探法2 ...
- web.xml中url-pattern匹配规则
小知识 一般的URL组成 URL = 服务器地址 + RequestURI 例如URI:http://localhost:8080/practice/main [http://localhost:80 ...
- NPOI 计算单元格高度
需求 要导出一个Excel,第一行是不定长字符串,合并单元格(A-G)已知,现要计算第一行的高度. 思路 已知,NPOI的宽度单位是1/256个英文字符,在本例中,A列的宽度是2048,即 2048 ...
- js中的DOM节点
文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法. DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 把上面的代码拆分为Dom节 ...
- 如何开启Apache Rewrite功能
一.Ubuntu默认未开启Rewrite支持 apche模块加载工作已分散到不同的配置文件,这样看起来似乎更为合理,管理起来也非常方便.下面看一下如何开启Rewrite模块,当用户需使用301重定向. ...