使用注释来解决关于inline-block元素换行问题
昨天群里有人问个问题:为什么button加了文字后,产生了对齐不一致的问题。


原因在于baseline的对齐问题。
然后就有人推荐了一篇文章:关于Vertical-Align你需要知道的事情
其中里面最后一个例子讲到了如何解决inline元素换行的问题。
里面说用注释可以解决换行问题,我测试了下发现和注释完全没有关系。
换行的原因在于div与div换行制表符产生的空隙,所以要避免换行的话,那就让div和div挨着一起不要换行,或者设置容器font-size为0,因为制表符的大小受font-size影响。
测试
首先是按照它说的来,是这样的。
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#container{
width:800px;
height: 300px;
border: 1px solid #ccc;
}
.box{
width: 400px;
height: 100px;
margin: 10px 20px;
border: 1px solid #ccc;
}
.half {
height:40px;
display: inline-block;
width: 50%;
vertical-align: bottom;
}
.left{
background-color: #8ab3bf;
}
.right{
background-color: #C1CD89;
}
</style>
</head>
<body>
<div id="container">
<div id="test1" class="box">
<div class="half left">50% wide</div>
<div class="half right">50% wide... and in next line</div>
</div>
<div id="test2" class="box">
<div class="half left">50% wide</div>
<!---->
<div class="half right">50% wide</div>
</div>
</div>
</body>
</html>
结果是这样的:

可以看到,有没有注释都会换行,那么我们测试下div与div挨着一起
<div id="container">
<div id="test1" class="box">
<div class="half left">50% wide</div><div class="half right">50% wide... and in next line</div>
</div>
<div id="test2" class="box">
<div class="half left">50% wide</div><!----><div class="half right">50% wide</div>
</div>
</div>
结果为

可以看到当div与div挨着一起的时候,也就是没有了换行的制表符,因此没有了空隙,就可以并排一行了。
此外,也可以设置父容器font-size为0也可以达到这种效果。
.box{
width: 400px;
height: 100px;
margin: 10px 20px;
border: 1px solid #ccc;
font-size: 0;
}
<div id="container">
<div id="test1" class="box">
<div class="half left">50% wide</div>
<div class="half right">50% wide... and in next line</div>
</div>
<div id="test2" class="box">
<div class="half left">50% wide</div>
<!---->
<div class="half right">50% wide</div>
</div>
</div>
结果为



使用注释来解决关于inline-block元素换行问题的更多相关文章
- CSS3如何去除 inline block 元素之间多出的空格
display: inline-block 属性很好的避免了元素的浮动问题,但是会有点小问题,就是 inline-block 元素间的回车会被显示为一个空格.然而,我们写代码时,都是用回车来格式化的. ...
- 使用(Unicode字符)让inline水平元素换行
为了实现上面效果: <dl> <dt>提问:</dt><dd>为什么没有男朋友?</dd> </dl> <dl ...
- 多个inline元素、block元素、inline-block元素在父容器中的换行情况
1.首先看inine元素的换行情况 <style> *{padding:0;margin:0} div.wrap{width:200px;height:200px;border:1px s ...
- 当inline元素包裹block元素时会发生什么
经常有图片链接写法如下: <a href="www.baidu.com"><img src="baidu.jpg" /></a&g ...
- inline元素、block元素、inline-block元素
inline 内联元素:是不可以控制宽和高.margin等:并且在同一行显示,不换行,直到该行排满. block 块级元素:是可以控制宽和高.margin等,并且会换行.块级对象元素会单独占一行显示, ...
- block元素和inline元素的特点
一.block元素的特点 1.处于常规流中时,如果width没有设置,会自动填充满父容器 2.可以设置height/width及margin/padding 3.处于常规流中时,布局在前后元素位置之间 ...
- 关于block元素和inline元素
呃...这个会不会太基础了.最近在复习,所以基础知识也不能够忽略. 根据HTML 4.01 规范,其描述如下(http://www.w3.org/TR/html401/struct/global.ht ...
- inline元素、block元素
inline元素 不会独占一行,相邻的行内元素会排列在同一行内,直到一行排不下才会换行 高.行高.以及外边距和内边距不可改变 宽度就是它的文字或图片的宽度,不可改变,随元素内容变化而变化 内联元素只能 ...
- inline,block,inline-block的区别
display:block block元素会独占一行,多个block元素会各自新起一行.默认情况下,block元素宽度自动填满其父元素宽度. block元素可以设置width,height属性.块级元 ...
随机推荐
- 延期版本webstorm(解决许可证过期,注册,激活,破解,码,支持正版,最新可用)
很多人都发现 http://idea.lanyus.com/ 不能激活了 很多帖子说的 http://15.idea.lanyus.com/ 之类都用不了了 选择 License server (20 ...
- UGUI之Slider使用,制作血条
用Slider来控制Cube旋转 Slider是滑动条.
- 第二章:Opencv核心類Mat
Opecv就是做計算機視覺,就是讲图片转换成计算机所能识别的数据 Mat类中由大量的内联函数,主要就是用于提高速度. 一般类型都用rgb,存的时候用CV_8UC3.create函数一般会把原来的空间释 ...
- 003-SqlHelper.cs/Web.config
<?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访 ...
- LeetCode107.二叉树的层次遍历II
给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 ...
- linux编写脚本检测本机链接指定IP段是否畅通
linux编写脚本检测本机链接指定IP段是否畅通,通过ping命令检测指定IP,检测命令执行结果,若为0表示畅通,若为1表示不通,以此判断网络是否畅通,但是指定机器禁用ping命令除外.代码如下: # ...
- Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
严重: Exception sending context initialized event to listener instance of class org.springframework.we ...
- 第一章 HTML基本标签
1.HTML:HTML:超文本标签语言(标签又称标记.元素).浏览器:“解释和执行”HTML源码的工具 (运行网页的工具APP).客户端:享受服务的计算机服务器:提供服务的计算机 2.基本框架(网页最 ...
- 关于 LD_LIBRARY_PATH 这个环境变量
这个变量中可以保存linux寻找库时搜索的路径,按照一篇文章中的介绍,不应该设置这个变量.文章的重点如下: 1. 不要设置这个变量. 2. Solaris中,在编译时,使用 -L 选项指定编译时库的搜 ...
- Chrome 扩展
http://www.cnblogs.com/coco1s/p/8004510.html