inline-block从入门到精通
首先先对行内元素(inline elements,比如span,a,b等。)和块元素(block elements,比如div,h1,p等)进行一下知识回顾.简而言之,它们的区别可以分为下几点
- 块元素会自动在末尾加一个换行,而行内元素不会。
- 块元素可以定义自身的高度(width)和宽度(height),而行内元素不可以。
- 块对象定义的自身垂直边距可以改变行高,而行内元素虽然可以定义但改变不了行高。
在前端开发中,我们遵循结构,表现,行为相分离。所以将修饰型图片利用css的background把它写在表现层中。那最常见的就是icon的应用。如:
去我的flickr相册。这是利用行内元素的左侧内间距(padding-left)实现的icon+文字的组合。
但有时候,我们还需要另外一种表现形式,只是单独的icon而不需要文字或者链接,并且是图文混排。也许你想只要把span里面的文字删除不就可以了么,实际上并非如你所愿。
。如果你现在在ie下,肯定什么也看不到。
原因是行内元素在内容为空的情况下,ie认为它的width为0。
,现在在ie下可以看到了。
根据行内元素的特性,并不能为其设置一个宽度来解决,所以只能在里面加一个毫无意义的空格用来占位,来生成一个高度值,但在无css的条件下(在spider的眼里),无法得知它为何物。如下:
<a class="icon-flickr"> </a>
所以这样的解决方案让人无法接受。
使用inline-block就可以解决这个问题
通过将外包元素设置为inline-block,利用有inline的行级特性和block的指定高度和宽度的特性。再通过将内嵌标签中的解释文字隐藏来实现该效果。
你会在这里看到两个并排的icon,它们是“~这里飘过无尽的解释性文字啊!~~这里飘过无尽的解释性文字啊!~”,flick的icon,它和文字在一起。
代码如下:
.icon{ display:inline-block; /* ie8,firefox3,safari,opera */ display:-moz-inline-stack; /* firefox2,-moz-inline-box其实也可以,但在某些情况下会有些异常-_-b */ *display:inline; zoom:1; /* ie6,7,在ie中,如果该class应用在行内元素中的时候, display:inline-block 会触发layout. 从而使该元素拥有inline-block的特性,但为了考虑到通用性, 使其能在块元素中应用,所以使用zoom:1来触发layout */ width:20px; height:20px; vertical-align:middle; /* 这个用来对opera的hack,使其垂直居中 */ overflow:hidden; /* 针对ie,防止内容溺出,造成的高度及宽度改变 */ background:url("http://l.yimg.com/a/i/ww/sp/trough_1.8.gif") -400px -680px; } .icon i{ visibility:hidden; /* 将解释性文字隐藏 */ }
<a href="#" class="icon"><i>~这里飘过无尽的解释性文字啊!~</i></a>
在最后,还要多说几句-moz-inline-stack,在firefox2中它还存在一下小bug.当它所应用的外包装器(wrapper)的display为inline的时候,它所包含的a或button将无法点击或者无法选取。我们需要通过position:relative来hack掉这个bug。Sigh~。
- 在firefox2里面我终于可点了
- 我也是a可为什么我却不能点??—_—|||
关于inline-block的详细分析可以参考学鹍的CSS{display:inline-block}或者圆心的display:inline-block的深入理解
相关阅读:
Cross Browser Support for inline-block Styling
display:inline-block的应用两例
Inline formatting context
www.hedgerwow.com
inline-block从入门到精通相关推荐
- CUDA从入门到精通(四):加深对设备的认识
CUDA从入门到精通(四):加深对设备的认识 2013-07-23 13:17 4211人阅读 评论(2) 收藏 举报 分类: GPU(29) 版权声明:本文为卜居原创文章,未经博主允许不得转载. ...
- 《Autosar从入门到精通-实战篇》总目录_培训教程持续更新中...
目录 一.Autosar入门篇: 1.1 DBC专题(共9篇) 1.2 ARXML专题(共35篇) 1.2.1 CAN Matrix Arxml(共28篇) 1.2.2 ASWC Arxml(共7篇) ...
- 2020-10-21CUDA从入门到精通
CUDA从入门到精通(零):写在前面 在老板的要求下,本博主从2012年上高性能计算课程开始接触CUDA编程,随后将该技术应用到了实际项目中,使处理程序加速超过1K,可见基于图形显示器的并行计算对于追 ...
- 编程大讲坛、坛坛是佳酿--编程大讲坛:C#核心开发技术从入门到精通
[书名]编程大讲坛:C#核心开发技术从入门到精通 [作者]管西京 [ISBN] 978-7-121-09043-1 [出版社]电子工业出版社 [出版日期]2009年9月 [定 价]79.80元(含光 ...
- GPU 编程入门到精通(五)之 GPU 程序优化进阶
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GP ...
- GPU 编程入门到精通(四)之 GPU 程序优化
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GP ...
- GPU 编程入门到精通(三)之 第一个 GPU 程序
博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...
- python写cadance skill_《Cadence 16.6电路设计与仿真从入门到精通》——2.4 Design Entry CIS原理图图形界面...
本节书摘来自异步社区<Cadence 16.6电路设计与仿真从入门到精通>一书中的第2章,第2.4节,作者: 王超 , 胡仁喜等 更多章节内容可以访问云栖社区"异步社区" ...
- Kali Linux 从入门到精通(八)-主动信息收集
Kali Linux 从入门到精通(八)-主动信息收集 基本介绍 直接与目标系统交互通信 无法避免留下访问的痕迹 使用受控的第三方电脑进行探测 使用代理或已经被控制的主机 做好被封杀的准本 使用噪声迷 ...
- 《Python入门到精通》Python基础语法
「作者主页」:士别三日wyx 此文章已录入专栏<Python入门到精通> 2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习 Python基础语法 1. Hel ...
最新文章
- java某市出租车_智慧职教mooc的APPJavaEE企业级网站开发章节测验答案
- 斩获“卡脖子”领域世界冠军!这支华科战队全网刷屏,平均年龄24岁
- 杀毒软件引起的WinCE编译出错问题
- 【Linux】一步一步学Linux——sort命令(53)
- excel loc() python_总结:像Excel一样使用python进行数据分析
- alert获取输入框内容_获取由 AlertDialog 生成的对话框中EditText的文本内容
- 浅谈android4.0开发之GridLayout布局
- python利用什么写模板_利用python自动生成verilog模块例化模板
- 2021年,某云盘最新版不限速下载工具教程,亲测有效!
- 【科普视频】信号在时域和频域上的区别
- selenium 获取最新页面源代码_Selenium获取网页源码
- 阳台做成榻榻米 阳台做成书房
- cad指示箭头快捷键命令_CAD箭头引注快捷键是什么?
- cad怎么将图层后置_CAD图层遮挡,如何将CAD图形进行前置或者后置?
- HTML图片不能上下铺满屏幕_这应该是最最最简单的,职场PPT图片排版方法了!...
- 【找出耗电大户进行消灭 电池持久有绝招】
- ERP中的MPS与APS间的关系
- 学习模式上的记录之统计篇三 置换检验 Permutation Test
- word2013删除下载的模板
- 怎么利用git管理/备份文件
热门文章
- 【语音处理】基于matlab GUI声音信号频谱分析仪【含Matlab源码 325期】
- 如何将java项目部署到Linux服务器上
- java将一个字符串数组复制到一个字符串_C语言 | 将元音字母复制到另一个字符串中...
- Web服务器用户权限设置,Windows系统下WEB服务器权限的设置详解(四)
- python怎么提取百度首页链接_python如何获取百度搜索结果的真实URL
- linux hdfs授予文件夹权限,修修改hdfs上的文件所属用户、所属组等读写执行控制权限...
- c51语言中 位取反指令,C51的几种位操作运算说明
- matlab 隶属度计算,基于MATLAB实现的云模型计算隶属度
- angular2-swiper的使用
- Spring Cloud 与 Dubbo 对比整理(2)