当前位置: 代码迷 >> Web前端 >> span的施用
  详细解决方案

span的施用

热度:39   发布时间:2012-11-03 10:57:42.0
span的使用

??? 为什么给span定义高度和宽度后,它的宽度和高度仍然没有变化,仿佛失效了一样?


??? 其实这个问题很简单――那就是因为span属于内联元素,而内联元素是忽略宽度和高度的,解决的办法也很简单,就是利用css将span变为盒装元素即可。

下面举例说明一下:
???

??? 首先给出包含span标签的Html代码:
??? <div class="spanex">
??????? <span>span标签的宽度高度测试</span>
??? </div>


??? CSS代码:
??? <style type="text/css">
??? .spanex {

??????? background:#000;

??????? color:#FFF;

??????? width:200px;

??????? height:100px;

??????? font-size:12px;

??? }
??? .spanex span {

??????? background:#FFF;

??????? color:#000;

??????? width:180px;

??????? height:30px;

??? }
?? </style>


??? 上面的div中包含了一个span标签,在css中定义了span的宽度为100像素,高度为30像素,但是span的宽度确实随文字的个数而增加的,不受css的宽度控制,如图一所示。

???

??? 原因上面也说到了,目前span还是内联元素,所以不受宽高限制,那么,只有将它定义为盒装元素就可以控制了。将内联元素定义为盒装元素的方法有两种:

??? 1.直接使用显示属性display将其定义为盒装元素;
??? 2.使用浮动属性float将其自动定义为盒装元素;

??? 使用第一种方法只需要将上面的.spanex span稍做改动即可完成,有原来的改为:

??? .spanex span {

??????? background:#FFF;

??????? color:#000;

??????? display:block;

??????? width:180px;

??????? height:30px;

??? }


??? 使用第二种方法则改为:

??? .spanex span {

??????? background:#FFF;

??????? color:#000;

??????? float:left;???

??????? width:180px;

??????? height:30px;

??? }?
??? 效果如图二中所示。

??? 虽然二者在这里的效果相同,但它们却又一点区别,第一种方法写出的span是清除两侧浮动的,也就是如果后面跟了任何元素都会折回到下一行显示;而第二种利用浮动的定义方法,如果span后面跟随了元素则会和它在同一行显示,此处要绝对注意。

  相关解决方案