博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css中 Span 元素的 width 属性无效果原因及多种解决方案
阅读量:6899 次
发布时间:2019-06-27

本文共 1716 字,大约阅读时间需要 5 分钟。

先运行下程序看下: <span style='background-color:#336699;width:300px;'>123</span> 

输出:123

可以看到 span会自动根据包含的内容来变化宽度

这是因为:对于内联元素(可以是默认即为内联的比如 span 元素,也可以是 display: inline 的元素) width 和 height 只在 IE5.x 下和 IE6 或更新版本的 quirks 模式下触发 hasLayout 。而对于 IE6,如果浏览器运行于标准兼容模式下,内联元素会忽略 width 或 height 属性,所以设置 width 或 height 不能在此种情况下令该元素具有 layout。 zoom 总是可以触发 hasLayout,但是在 IE5.0 中不支持。

具有“layout” 的元素如果同时也 display: inline ,那么它的行为就和标准中所说的 inline-block 很类似了:在段落中和普通文字一样在水平方向和连续排列,受 vertical-align 影响,并且大小可以根据内容自适应调整。这也可以解释为什么单单在 IE/Win 中内联元素可以包含块级元素而少出问题,因为在别的浏览器中 display: inline 就是内联,不像 IE/Win 一旦内联元素拥有 layout 还会变成 inline-block。

解决方法:

<1>去掉ASP.NET页面的W3C标准声明(不推荐):

去掉:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""> <span style='background-color:#336699;width:300px;'>123</span> 

 

<2>推荐:

如果设置display:block,width属性生效,但是此时的span跟div一样了。 如果设置display:inline-block,则span并列在同行,而且width属性生效。

元素display属性的常见值说明:

block:块对象的默认值。将对象强制作为块对象呈递,为对象之后添加新行。 inline:内联对象的默认值。将对象强制作为内联对象呈递,从对象中删除行。(内联)

《CSS权威指南》中文字显示:任何不是块级元素的可见元素都是内联元素。其表现的特性是“行布局”形式,

这里的“行布局”的意思就是说其表现形式始终以行进行显示。

比如,我们设定一个内联元素border-bottom:1px solid #000;时其表现是以每行进行重复,每一行下方都会有一条黑色的细线。

假如是块级元素那么所显示的的黑线只会在块的下方出现。 inline-block:将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内。 non:隐藏对象。与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间。

内联(display:inline;)元素不能设置宽高,因为内联属于行布局,其特性是在一行里进行布局,所以不能被设定宽高。 <span style='background-color:#336699;width:300px;display:inline-block;'>123</span> 

输出:123

 

<3>如果设置float:left | right,width属性生效.

(浮动)他使得指定元素脱离普通的文档流而产生的非凡的布局特性。并且FLOAT必需应用在块级元素之上,也就是说浮动并不应用于内联标签。或者换句话来说当应用了FLOAT那么这个元素将被指定为块级元素。 <span style='background-color:#336699;width:300px;float:left;'>123</span> 

输出:

本文转自寒意博客园博客,原文链接:http://www.cnblogs.com/hnyei/archive/2012/03/12/2392026.html,如需转载请自行联系原作者

你可能感兴趣的文章
阿里云DMS发布数据库网关服务: 打通网络限制 开启数据库统一管理的万能钥匙...
查看>>
matlab将M文件直接编译为可独立使用的EXE可执行文件
查看>>
将 git 用户名密码保存到本地
查看>>
tomcat中同时部署两个项目的问题
查看>>
Android:Layout_weight的深刻理解
查看>>
通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件
查看>>
Header First设计模式学习笔记——观察者模式
查看>>
使用 Spring Cloud 搭建微服务项目架构
查看>>
20150910信院研究生新生入学教育
查看>>
JAVAEE Velocity配置例子
查看>>
keepalive配置好启动后无法显示vip
查看>>
Java IO学习笔记:字符流
查看>>
PHP中exit()与die()的区别
查看>>
android--------微信 Tinker 热修复 (一)
查看>>
Android 开发之 布局控件的各个属性
查看>>
实现table、列表隔行换色
查看>>
Mysql 1418 - This function has none of DETERMINISTIC
查看>>
JavaScript 03 - 输出
查看>>
RN 高阶组件,有状态组件,无状态组件,以及组件之间的交互
查看>>
QuickText for Notepad++
查看>>