发表于: 2019-06-23 21:59:18
1 629
今天完成的事:正在写任务的第二个页面,看伪类的相关资料。
明天的计划:加快任务进度尽快把任务做完。
遇到的问题:投票页面点击头像下面出现四个小图标的那个还没有解决。
收获:
去除inline-block元素间 间距的N种方法
inline-block是一个块状行盒,表现为一个行内元素,它既拥有了块状元素可以设置width和height的特性,又保留了行内元素不换行的特点。
应用了display:line-block
属性的元素会生成一个块状盒,该块状盒随着周围内容流动,如同它是一个单独的行内盒子,其表现更像是一个被替换的元素。
真正意义上inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,上代码:
<input />
<input type="submit" />

使用CSS更改非inline-block水平元素为inline-block水平也会有该问题:
<style>
a { background: pink; display: inline-block; padding: .5em 1em;
}</style><div>
<a href="">链接1</a>
<a href="">链接2</a>
<a href="">链接3</a>
<a href="">链接4</a></div>

以上情况是符合规范的应有表现,但这类间距有时会对我们的布局或兼容性产生影响,所以要想办法去掉它,以下示例几种方法~
1. 移除空格
元素间留白间距的出现原因即标签段间的空格,去掉空格间距自然没有了。
以下是几种写法:
<div>
<a href="">
链接1</a><a href="">
链接2</a><a href="">
链接3</a><a href="">
链接4</a>
</div>
<div>
<a href="">链接1</a
><a href="">链接2</a
><a href="">链接3</a
><a href="">链接4</a>
</div>
<div> <a href="">链接1</a><!--
--><a href="">链接2</a><!--
--><a href="">链接3</a><!--
--><a href="">链接4</a>
</div>
三种写法都能达到去除缝隙的效果:

2. 使用margin负值
margin负值的大小与上下文字体和文字大小有关,由于外部环境的不确定性及最后一个元素多出的父margin值等问题,此方法不适合大规模使用。
<style>
a { background: pink; display: inline-block;
padding: .5em 1em; margin: -3px;
}</style><body>
<div>
<a href="">链接1</a>
<a href="">链接2</a>
<a href="">链接3</a>
<a href="">链接4</a>
</div></body>

3. 删掉闭合标签
HTML5中可以很任性:虽然这样很怪但确实有效。
<div>
<a href="">链接1 <a href="">链接2 <a href="">链接3 <a href="">链接4
</div>

4. 使用font-size:0
<style>
div{ font-size: 0;
} a{ font-size: 16px; background: pink;
}</style><div>
<a href="">链接1</a>
<a href="">链接2</a>
<a href="">链接3</a>
<a href="">链接4</a></div>

5. 使用letter-spacing
<style>
div{ letter-spacing: -6px;
} a{ letter-spacing: 0; background: pink;
}</style><div>
<a href="">链接1</a>
<a href="">链接2</a>
<a href="">链接3</a>
<a href="">链接4</a></div>

6. 使用word-spacing
<style>
div{ word-spacing: -6px;
} a{ word-spacing: 0; background: pink;
}</style><div>
<a href="">链接1</a>
<a href="">链接2</a>
<a href="">链接3</a>
<a href="">链接4</a></div>

评论