• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > 深入解析CSS的display:inline-block属性的使用

深入解析CSS的display:inline-block属性的使用

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含CSS,inline-block等相关知识,佚名 希望在学习及工作中可以帮助到您

display:inline-block感觉与display:table-cell有些相似,例如对内部元素的包裹性。但是,由于display:inline-block最大的不同就是其没有父元素的匿名包裹特性,这使得display:inline-block属性的使用非常自由,可与文字,图片混排,可内嵌block属性元素,可以可以置身于inline水平的元素中。可谓黑白通吃,左右逢源。
inline-block属性的元素适用于inline box模型,所以,当其中的列表元素高度不一时,是不会有错位的。每一行所有的inline元素和inline-block元素会共同形成一个line boxes,这个line box的高度由里面最高的元素决定。所以,即使inline-block属性的列表元素高度异常,撑开的是整个line boxes的高度,因而,不会与下一行的列表元素发生错位。如下面的我自己画得拙劣的示意图所示的:
2015119103615662.png (569×429)

根据一些前辈的说法,IE6/7不支持display:inline-block属性,只是可以让标签有类似于inline-block的属性,起初我也是接受这种说法的,不过后来又表示了怀疑,最近使用text-align:justify;做测试的时候的一些样式表现证实了:确实IE6/7是不支持display:inline-block属性,只是让其表现的跟inline-block一样,尤其对于inline水平的元素,其表现度可以用perfect一词来形容了。
对于IE8+以及现代浏览器,直接使用:

  1. {display:inline-block;}  

就可以了,支持任意水平的元素。
对于不支持的IE6/7浏览器该怎么办呢?如果是inline水平的元素(如a标签,span标签之类)跟上面一样,直接:
{display:inline-block;}
就可以了,对于这两个浏览器,其功效与*zoom:1;是一样的。
如果是block水平的元素,例如li标签。则需要多点代码,目前我知道的方法有两个,如下所示:

  1. li {display:inline-block;...}   
  2. li {display:inline;}  

或者是:

  1. li{display:inline; zoom:1;...}  

block水平的inline-block化的元素与inline水平的在表现层又是有差异的。

inline-block的问题

观察上面的例子,细心的同学肯定会发现,每个li之间有一个小空隙,而我们的代码中并没有设置margin等相关属性,这是为什么呢?

默认的inline元素

首先,我们观察一下默认的inline元素的表现:

HTML代码

  1. <a>首页</a>  
  2. <a>热点</a>  

CSS代码

  1. a { margin: 0; padding: 0; border: 1px solid #000; }  

效果图
2015119103638191.jpg (95×33)

默认情况下,inline元素之间就有空隙出现,所以结合了inline和block属性的inline-block属性自然也有这个特点。
那这些空隙是什么呢,它们是空白符!

消除空白符

在浏览器中,空白符是不会被浏览器忽略的,多个连续的空白符浏览器会自动将其合并成一个。我们编写代码时写的空格,换行都会产生空白符。所以自然而然的两个元素之间会有空白符,如果将上述例子中的a标签写成一行,空白符消失,菜单之间也就紧凑起来了。

空白符虽然是浏览器正常的表现行为,但是通常情况下,设计师同学的设计稿不会出现这些空隙,我们在还原设计稿的时候,怎么去除掉这些空隙呢。

要取出空白符产生的间隙,首先要理解空白符归根结底是个字符,通过设置font-size属性可以控制产生的间隙的大小。
首先我们将font-size设置成50px试试,修改CSS代码如下:

  1. ul, li { padding: 0; margin: 0; list-style-type: none; font-size:50px}   
  2. li { display: inline-block; border: 1px solid #000; width: 100px; text-align: center;font-size:12px }  

我们修改ul的font-size为50px,而li的font-size为12px保持原来的字体大小,效果如下:
2015119103659068.jpg (478×54)

可以看到菜单之间的空隙变大了。

接着我们设置font-site属性为0px,代码如下

  1. ul, li { padding: 0; margin: 0; list-style-type: 

您可能想查找下面的文章:

  • css小技巧
  • 各大网站CSS初始化代码
  • css权重问题
  • CSS实现鼠标上移图标旋转效果
  • 使用CSS3制作一个简单的进度条(demo)
  • 用纯CSS实现饼状Loading等待图效果
  • 利用CSS3伪元素实现逐渐发光的方格边框
  • CSS3实现内凹圆角的实例代码
  • 利用HTML5+CSS3实现3D转换效果实例详解
  • css3+伪元素实现鼠标移入时下划线向两边展开的效果

相关文章

  • 2017-08-06Mozilla建议的css书写顺序
  • 2017-08-06详解一级导航的制作
  • 2017-08-06css3弹性盒模型(Flexbox)详细介绍
  • 2017-08-06关于CSS选择器优先级的判断题附结果截图
  • 2017-08-06css实现div内图片上下左右居中
  • 2017-08-06CSS圆角边框制作指南与实例
  • 2017-08-06css水平居中的各种方法总结(推荐)
  • 2017-08-06规范HTML代码可以节省修改代码的时间
  • 2017-09-05css常用效果总结
  • 2017-08-06CSS控制图片和文字在同一行显示且对齐的3种方法

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • CSS3弹性盒模型flex box快速入门心得(必看篇)
    • CSS line-height行高上下居中垂直居中样式属性
    • 请不要告诉我你懂css margin
    • CSS3中的Opacity多浏览器透明度兼容性问题
    • CSS强制中英文换行与不换行 强制英文换行示例
    • CSS定义Radio单选项和Checkbox复选框样式有效代码
    • css实现li中文本超出行宽自动隐藏
    • 利用CSS3实现平移动画效果示例代码
    • css3.0新属性效果在ie下的解决方案
    • 不简单的启动画面 软件的启动画面介绍(图文)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有