要理解display:inline、block、inline-block的区别,需要先了解HTML中的块级(block)元素和行级(inline)元素的特点,行内元素也叫内联元素。

  • 块级元素

总是另起一行开始;
高度,行高以及顶、底边距都可以控制;
宽度缺省是它所在容器的100%,除非设定一个宽度。
块级元素通常作为其他元素的容器,可以容纳内联元素和其他块元素。block element的HTML标签如下:
address-地址
blockquote-块引用
center-居中对齐块
div-常用块级元素
dl-定义列表
form-交互表单
fieldset-form控制组
hr-水平分隔线
ol-排序表单
ul-非排序列表
dir-目录列表
p-段落
pre-格式化文本
isindex-input prompt
menu-菜单列表
table-表格
h1...h6-标题
noframes-frames可选内容(对于不支持frame的浏览器显示此区块内容)
noscript-可选脚本内容(对于不支持script的浏览器显示此内容)

  • 行级元素

和其他元素都在一行上;
高度,行高以及顶、底边距不可改变;
高度就是它所容纳的文字或图片的宽度,不可改变。
一般都是基于语义级(semantic)的基本元素,只能容纳文本或者其他内联元素,内联元素的HTML标签分类如下:

a-锚点
abbr-缩写
acronym-首字
font-字体设定(不推荐)
b-粗体(不推荐)
big-bidi override
em-强调
br-换行
small-小字体文本
strong-粗体强调
i-斜体
img-图片
input-输入框
label-表格标签
select-项目选择
textarea-多行文本输入框
u-下划线
var-定义变量
cite-引用
code-计算机代码(在引用源码的时候需要)
dfn-定义字段
kbd-定义键盘文本
q-短引用
s-中划线(不推荐)
strike-中划线
sub-下标
sup-上标
tt-电传文本

HTML中有些元素是可变元素,可根据上下文语境决定该元素为块元素或者内联元素。

applet-java applet
button-按钮
del-删除文本
iframe-inline frame
ins-插入的文本
map-图片区块(map)
object-object对象
script-客户端脚本

display:block就是将元素显示为块级元素,display:inline则将元素显示为行内元素。

display:inline-block将元素显示为行内元素,但是元素的内容作为块元素处理。旁边的内联元素和该对象显示在同一行,并且允许空格,但是该元素具有块元素的特性,可以设置其高度,宽度等属性。在同一行内有不同高度内容的元素时,通常要设置对齐方式如vertical-align: top;来使元素顶部对齐。

  • 兼容性

CSS中使用display:inline-block;来样式化,在Firefox, Safari, Google Chrome 和 IE 8及以上是有效的。但是在早期的IE,比如IE 7,对行内元素设置inline-block无法实现inline-block的效果。只是触发了块元素的layout,而行内元素本身就是行布局,所以触发后,依然是行布局。

对IE8以下的版本,可以采用以下两种方法来实现inline-block的效果:

  1. 先用display:inline-block属性触发块元素,然后再定义display:inline,让块元素呈递为内联对象(原理:这是IE的一个经典bug,如果先定义了display:inline-block,然后再设置display回inline或block,layout不会消失),代码如下:
     div {display:inline-block;}
    div {display:inline;}
  2. 将块元素设置为内联对象(display:inline),然后通过zoom:1触发块元素的layout,代码如下:
    div {
    display:inline;
    zoom:;
    }

    参考了http://www.cnblogs.com/jdonson/archive/2011/06/10/2077932.html,和一些网上的资料,算是平时一点平时的学习总结吧!

理解display:inline、block、inline-block的更多相关文章

  1. DIV CSS display(block,inline,none)的属性教程

    display:inline.block.inline-block的区别 display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都 ...

  2. CSS中的display属性(none,block,inline,inline-block,inherit)

    css中的display属性(none,block,inline,inline-block,inherit) display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有: none bl ...

  3. 2016/2/25 1, margin auto 垂直方向测试 无效 2,margin重叠 3,哪些是块状哪些是内联 4,display:block inline 导航栏把内联转块状最常见+ 扩展

    1.利用margin auto完成首页居中,并自行研究,竖直方向用margin auto,是什么效果#container{width:1002px;margin: 0px auto;}    竖直方向 ...

  4. block, inline和inline-block的区别

    display:block元素的特点是:总是在新行上开始:高度,行高以及顶和底边距都可控制:宽度缺省是它的容器的100%,除非设定一个宽度<div>, <p>, <h1& ...

  5. div横排放置对齐问题;block,inline,inline-block区别

    1.左右两个div都设置为float:left,如果右边div没有设置宽度,右边div的宽度会根据div里的内容自动调整. 缺点:不易控制 2.只有左侧div设置为float:left,右侧div设置 ...

  6. dispay属性的block,inline,inline-block

    转自下面的几位大神: http://www.cnblogs.com/KeithWang/p/3139517.html 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 bl ...

  7. block与inline,inline和inline-block,块级和行内元素,行内替换和行内非替换元素

    block:块级元素默认display属性为block:无论块内内容有多少,总是占满一行: inline:行内元素默认display属性为inline:只占据块内的内容的大小,不会占满一整行: inl ...

  8. margin -------总结(block inline 可置换元素)

    margin在块元素.内联元素中的区别 block元素(块元素)大致有:P|H1|H2|H3|H4|H5|H6|UL|OL|PRE| DL | DIV | NOSCRIPT | BLOCKQUOTE ...

  9. 浅谈block, inline和inline-block的区别

    block 块元素    inline 内联元素 常见的块元素有:div, p, h1~h6, table, form, ol, ul等 常见的内联元素有:span, a, strong, em, l ...

随机推荐

  1. c# 浏览器区别

    c#   浏览器区别 思路:浏览器本身独有的属性来区别: 1.window对象的属性来区别: window.attachEvent               IEwindow.addEventLis ...

  2. django-based blog- mezzanine

    django-based blog- mezzanine zinnia 博客 hydra  暴力破解

  3. poj-2236 Wireless Network &&poj-1611 The Suspects && poj-2524 Ubiquitous Religions (基础并查集)

    http://poj.org/problem?id=2236 由于发生了地震,有关组织组把一圈电脑一个无线网,但是由于余震的破坏,所有的电脑都被损坏,随着电脑一个个被修好,无线网也逐步恢复工作,但是由 ...

  4. itnesse实现api接口自动化测试学习

    上午在园子里乱逛,看了不少小伙伴们分享的接口测试方面的知识,大家所叙述到的一些经验或多或少,我也曾遇到过,突然意识到知识的点滴积累是多么的重要,我记得我最早接触接口测试的时候,就是只在浏览器里人工测试 ...

  5. debian系统安装Thinkpad T410s的无线网卡驱动:centrino Advanced-N 6200 2x2 AGN

    前几天搞到手一台小黑:T410s.自带系统是win7.由于想学习debian,所以就搞成了双系统,安装了一套debian 6.0. 可是让我困惑的是在debian下,无法使用T410s的网卡,因为默认 ...

  6. .net类库中和数据库相关的

    System.Data.SqlTypes SqlDbType 枚举类型 Specifies SQL Server-specific data type of a field, property, fo ...

  7. Centos 6.5LAMP服务器(Apache+PHP+MySQL)的搭建

    1.首先看下你的防火墙是否处于开启状态,如果是开启状态,按照如下方法来配置你的防火墙(如果你在安装虚拟机时就没有开启过防火墙,那么这一步就省略了): 1.配置防火墙,开启80端口.3306端口 vi ...

  8. android 单词

    inflate: 胀, 膨, 通货膨胀, 膨胀系数

  9. UVa 11825 (状压DP) Hackers' Crackdown

    这是我做状压DP的第一道题,状压里面都是用位运算来完成的,只要耐下心来弄明白每次位运算的含义,还是容易理解的. 题意: 有编号为0~n-1的n台服务器,每台都运行着n中服务,每台服务器还和若干台其他服 ...

  10. HDU 3790 最短路径问题【Dijkstra】

    题意:给出n个点,m条边,每条边的长度d和花费p,给出起点和终点的最短距离和花费,求最短距离,如果有多个最短距离,输出花费最少的 在用dijkstra求最短距离的时候,再用一个f[]数组保存下最少花费 ...