两个行内元素的间隙问题和基线不对准的问题

1.两个input框因为都是行内块元素,所以有间隙问题,和无法对齐;

.html

2.解决办法

给 input 的父级盒子加 font-size:0; 可解决input标签间的间隙问题;

给 input 标签加vertical-align:middle;可解决无法对齐问题;

.css

 

两个span间存在间隙?

原因:span的行内元素,但是项目所需需要设成行内块元素,所以就存在间隙了;

解决:

给两个span包起来的div设置font-size:0;width:100%;

给span标签再设置font-size:16px / 1rem;

 

 

补充

图片居中?

使用text-align:center;

margin:0 auto 居中要配合固定的Width才生效,另外用了position,margin也就不能居中了;

<div id="blog_post_info">
0
0
<div class="clear"></div>
<div id="post_next_prev">

<a href="https://www.cnblogs.com/dxt510/p/7214274.html" class="p_n_p_prefix">« </a> 上一篇:    <a href="https://www.cnblogs.com/dxt510/p/7214274.html" title="发布于 2017-07-20 20:14">vue和angular双向数据绑定原理</a>
<br>
<a href="https://www.cnblogs.com/dxt510/p/7463229.html" class="p_n_p_prefix">» </a> 下一篇:    <a href="https://www.cnblogs.com/dxt510/p/7463229.html" title="发布于 2017-09-01 15:00">点击开关按钮,通过改变类名切换按钮</a>

这个跟基线对齐有关系,如果你给写文字的那个span设置一个vertical-align:top,就可以对齐,具体原因如下:
从CSS2的可视化格式模型文档中可以看到:
inline-block的基线是正常流中最后一个line box的基线,除非这个line box里面既没有line boxes或者本身overflow属性的计算值不是visible,这种情况下基线是margin底边缘。
举例:

<style>
    .dib-baseline{ display: inline-block; width: 150px; height: 150px; border: 1px solid #cad5eb; background-color: #f0f3f9; margin-top: 20px; } </style> <span class="dib-baseline"></span> <span class="dib-baseline">dib-baseline</span>

运行结果:


因为前面的盒子没有任何字符,此时它的基线就是它的底边缘,后面的盒子有文字,所以该盒子的基线就是文字的基线,二者基线对齐,现成如此效果。
如果把第二个盒子line-height:0,此时文字基线的位置,就是文字的垂直中心,所以: 

这就是为什么出现这个问题的原因,通过改变对齐方式可以达到对齐。
具体关于vertical-align的讲解可以看看张鑫旭老师的CSS深入理解之vertical-align

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值