设置span的宽度

在默认的情况下,利用css样式对span进行宽度设定是无效,但有时为了某种排版的要求,需要对span进行宽度设定,那么如何在html中利用css样式设定span的宽度?

思路:这看上去是个很简单的问题,似乎用style中的width属性就可以。

然而通过试验以后发现,无论是在Firefox还是IE中都无效。

在css2的标准中,查阅关于width的定义,我们可以发现,原来css中的width属性并不总是有效的,如果对象是inline对象,width属性就会被忽略。Firefox和IE都遵循了这个标准。

1、初步解决span宽度方案

修改span为block类型。在span的css中增加display属性,将span设置为block类型。

span { 
 
display:block; 
width:150px; 
}

这样宽度就可以实现了,不过这样做也把前后文字隔在不同行里面。这样其实span就完全变成了div。

2、进一步解决span宽度方案

然后我们再增加一个css属性float,这样的确在某种条件下能解决问题。

span {

display:block;
float:left;
width:150px;
}

但如果span前面没有文字,那的确是可行的。但是如果有了,前后文字就会连在一起,而span跑到了第二行。

其实,在Html的各种Element中,的确有既是inline,又能够设定宽度的情况存在。例如button对象,就可以很好的在文字中间出现,并且设定宽度。

能不能让span象button那样显示呢?通过css2标准中display的定义和inline对象的解释,发现css2标准的制定者把所有的Element在是否属于inline上做了非此即彼的规定,要么是inline,要么是block,没有制定button那样既是inline,又可以象block那样设置宽度的属性值。

在css2.1标准草案中display的定义中增加了一个叫inline-block的属性值,针对的恰好是我们面对的这种情形。那么再看看各种浏览器的对应情况。

Firefox:通过display的文档了解到,inline-block在未来的Firefox 3中会实现。通过Mozllia扩展属性参考了解到,在Firefox 3以前的版本,例如现在的Firefox 2中,可以用-moz-inline-box达到同样的效果。

IE:通过MSDN中的display文档了解到,inline-block已经实现。实际测试发现IE 6.0以后都没问题。

3、完美的解决span宽度方案

下面代码的css定义完美解决了span的宽度设置问题。由于浏览器通常对不支持的css属性采取忽略处理的态度,所以最好将display:inline-block行写在后面,这样在Firefox里面,如果到了未来的Firefox 3,这一行就能起作用,代码可以同时兼容各种版本。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Test Span</title>
<style type="text/css">
span {

display:-moz-inline-box;
display:inline-block;
width:150px; 
}
</style>
</head>
<body>
HCONLY视觉网站设计<span>width</span>营销策划
</body>
</html>

分享:

 

最新文章

  1. svn检出的时候报 Unable to connect to a repository at URL错误(摘自CSDN)
  2. ASP.NET Core Docker部署
  3. JS中变量名和函数名重名
  4. C#学习笔记---Dispose(),Finalize(),SuppressFinalize
  5. 燕十八MySQL优化学习笔记
  6. iOS 键盘类型
  7. [MySQL Reference Manual] 7 备份和恢复
  8. 【架构】MVP模型
  9. C语言100道经典算法
  10. STL--容器适配器(queue、priority_queue、stack)
  11. [转]Web Services使用out参数
  12. main函数的正确格式
  13. spark 监控--WebUi、Metrics System
  14. SD卡中FAT32文件格式高速入门(图文具体介绍)
  15. Java系列--第二篇 基于Maven的Android开发HelloAndroidWorld
  16. 刚開始学习的人制作VMOS场效应管小功放
  17. python 多线程一(lock)
  18. jquery全选框的实现
  19. 和菜鸟一起学linux之DBUS基础学习记录
  20. IntelliJ IDEA下如何设置JSP模板

热门文章

  1. CodeForces 567C Geometric Progression 类似dp的递推统计方案数
  2. 将当天时间转换为unix时间戳
  3. HDU 5823 color II
  4. POJ 2387 Til the Cows Come Home(dij+邻接矩阵)
  5. 素数槽csuoj
  6. android动态LinearLayout
  7. python3.5 + django1.9.1+mysql
  8. PAC全自动脚本代理
  9. reflow和repaint
  10. uCGUI的文字与数值显示方法