一直以为 SPAN和DIV的区别仅仅在于拼写和 display属性。困扰我许久的IE内部自适应宽度今天终于被解决了。我只是不小心把DIV换成了span而已。
真不知道div和span还有什么区别。怕了。
顺便问个问题。就算我用了span,如果inline-block里面有元素使用了float-right或者width:100%;IE又不正常了
其他观点:
我的区别就是,DIV用的范围比较广,SPAN只是用于局部。
一般局部用span,整体布局的时候用div
另人的观点:
我同意楼上的~
一般大的用div,嵌套在某些标签里面就用span~
另外的观点:
div是块状元素,span是内联元素
回答:
div是block元素,span是inline元素。
display: inline-block 仅仅给 IE 触发了 layout,IE 其实不认识这个 display 属性,所以尽管设置了,它原来是 inline 还是 inline,
原来是 block 还是 block。
最终的区别就是 inline 元素和 block 元素在 haslayout 下的表现区别。
你的代码里面如果把 display: inline 换成 zoom: 1,对 IE 而言是一样的效果。
至于 float:right 和 width:100% 后出现的问题,那就是 IE 的其他 bug 了。
其他回答:
有两种方法:
1、先使用display:inline-block属性触发块元素,然后再定义display:inline,让块元素呈递为内联对象(两个 display要先后放在两个CSS声明中才有效果,这是IE的一个经典bug,如果先定义了display:inline-block,然后再将 display设回inline或block,layout不会消失)。
代码如下(...为省略的其他属性内容):
代码:
div {display:inline-block;...}
div {display:inline;}
2、直接让块元素设置为内联对象呈递(设置属性display:inline),然后触发块元素的layout(如:zoom:1等)。代码如下
div {display:inline; zoom:1;...}