热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

display:inline-block的几个应用及bug

和大家一样经常使用display:inline和display:block来进行块元素(blockelement)和内联元素(inlineelement,也叫行内元素)之间的转换。

和大家一样经常使用display:inline和display:block来进行块元素(block element)和内联元素(inline element,也叫行内元素)之间的转换。

块元素和内联元素的主要区别:

1.块元素会自动在末尾加一个换行,而内联元素不会,多个内联元素会自动排成一行,比如img标签或span标签插到一行文字中,他会和这行文字自动排成一行,而如果你在这行文字中插入一个块元素标签,比如div标签,那么这个div标签会自己独占一行。查看demo:http://www.css88.com/demo/inline-block/inline-and-block.html
2.块元素可以定义自身的高度(width)和宽度(height),而内联元素不可以。
3.块对象定义的自身垂直边距可以改变行高,而内联元素虽然可以定义但改变不了行高。

更多关于块元素和内联元素可以看看这里http://www.css88.com/archives/646;

display:inline-block是什么呢?

将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。这就是display:inline-block的作用,再讲的通俗一点就是,Display值为inline-block的元素内部形成一个块状盒模型,而本身形成类似一个内联的被替代元素”。即display为inline-block的元素既可以像块状元素一样定义高度宽度,又可以和内联元素(比如文字)排列在一行。

( ⊙o⊙ )哇,好强大的属性啊!我以前怎么没发现啊?是的很强大,但是以前的FF2,IE6,IE7不支持改属性(目前支持的浏览器:FF3,Opera,Safari,Chrome,ie8),FF2可以使用FF的私有属性display:-moz-inline-box;而且FF2绝大多数已经升级到FF3了,所以不成什么大的问题了,IE6和IE7拥有这个display:inline-block就会触发layout,就相当于zoom:1(关于ie的layout看以查看:http://www.css88.com/archives/tag/haslayout),我们可以用该特性在IE6和IE7下模拟display:inline-block;也可以直接让块元素设置为内联对象呈递然后触发块元素的layout,即display:inline; zoom:1;

display:inline-block的几个应用

1.先看效果图:

2009-06-21_165043

2.html代码:



3.CSS代码:

body{ font-size:12px;}

ol,ul{list-style:none; margin:0; padding:0}

a:link,a:visited{color:#555555;text-decoration:none;}

a:hover{color:#1A7CBC;text-decoration:underline;}

.selector{width:400px;border:1px solid #CDCDCD; padding:0px 2px 2px; margin:0 auto;zoom:1; overflow:hidden;}

.selector ol.tokenList li{float:left; margin-right:2px; margin-top:2px;height: 20px;color:#FFFFFF;}

.selector ol.tokenList li a{display:inline-block;padding-left:5px; height:20px;  background-image:url(bg.png); background-repeat:no-repeat;background-position:0 0;}

.selector ol.tokenList li a span{ display:inline-block;color:#FFFFFF; height:16px; line-height:1;padding-top:4px; line-height\**\:22px\9; background-image:url(bg.png); background-repeat:no-repeat; background-position:right 0; padding-right:5px; white-space:nowrap;}

.selector ol.tokenList li a:hover {color:#FFFFFF;text-decoration:none;}

.selector ol.tokenList li a span .x{display:inline-block;_display:inline; width:7px;height:7px;vertical-align:middle;cursor:pointer; margin-left:5px;font-size:1px; line-height:1px;background:url(col.png); zoom:1;}

.selector ol.tokenList li input{width:20px;height:16px;margin:0;padding:0;border:0;outline:0;}



查看demo:http://www.css88.com/demo/inline-block/inline-block.html

大家可以再看看:

秦歌的display:inline-block的应用两例和CSS{display:inline-block};

怿飞的display:inline-block的深入理解和模拟兼容性的 inline-block 属性;

乌龙茶的inline-block从入门到精通

前端观察的臭番茄的:跨浏览器的inline-block

IE6的bug:

按上述方法display:inline-block或者_display:inline;zoom:1后line-height就失效了,暂时没有好的解决方案,我是通过padding-top来做的,不知道大家有没有什么好的方案,欢迎留言补充。

声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发
转载请注明转自《display:inline-block的几个应用及bug》




推荐阅读
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
author-avatar
huangpeishan49
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有