如何给 legend 标签设定宽度

作者:blank 来源:怿飞的blog 时间:2008-07-26 12:18:00 

我们在做表单的时候经常会使用到这样的结构:

<fieldset>
    <legend>哪些浏览器legend标签设定的宽度有效</legend>
    <input type="checkbox" value="ie6" name="width" id="ie6" checked="checked" /><label for="ie6">IE6</label>
    <input type="checkbox" value="ie7" name="width" id="ie7"checked="checked" /><label for="firefox">IE7</label>
    <input type="checkbox" value="firefox2" name="width" id="firefox2" /><label for="firefox2">Firefox2</label>
    <input type="checkbox" value="firefox3" name="width" id="firefox3" /><label for="firefox3">Firefox3</label>
    <input type="checkbox" value="opera" name="width" id="opera" checked="checked" /><label for="opera">Opera9.0+</label>
    <input type="checkbox" value="safari" name="width" id="safari"checked="checked" /><label for="safari">Safari3.0+</label>
</fieldset>

当我们使用 CSS 给 legend 标签设定固定宽度时:

legend {
    background:red;
    width:500px;
}

在 IE6、IE7、Opera9.0+、Safari3.0+ 都正能常显示,而在 Firefox2 和 Firefox3 中宽度却失效。

在这里我们不去深究为什么,只探讨解决的方法:

我们可以通过在 legend 标签内添加一个标签,并给标签设定所需要的宽度,此宽度的单位不可为百分比(%):

HTML 修改为:

<fieldset>
    <legend><span>哪些浏览器legend标签设定的宽度有效</span></legend>
    <input type="checkbox" value="ie6" name="width" id="ie6" checked="checked" /><label for="ie6">IE6</label>
    <input type="checkbox" value="ie7" name="width" id="ie7"checked="checked" /><label for="firefox">IE7</label>
    <input type="checkbox" value="firefox2" name="width" id="firefox2" /><label for="firefox2">Firefox2</label>
    <input type="checkbox" value="firefox3" name="width" id="firefox3" /><label for="firefox3">Firefox3</label>
    <input type="checkbox" value="opera" name="width" id="opera" checked="checked" /><label for="opera">Opera9.0+</label>
    <input type="checkbox" value="safari" name="width" id="safari"checked="checked" /><label for="safari">Safari3.0+</label>
</fieldset> 

CSS 修改为:

legend span {
    background:red;
    width:500px;
    display:block;
}

可参考:《how to set width of LEGEND tags in FF》

正淳 同时也提供了另外的一种解决方案,无需修改结构,仅修改样式即可:

legend {
    background:red;
    text-indent:-600px;
    padding-left:600px;

    /*IE下还原初始方式,只设定宽度*/
    *width:600px;
    *text-indent:0;
    *padding-left:0;
}

题外话:CSS 的兼容其实并不难,多尝试多实践就可以解决,最重要的是自己要去动手,只有动手了才会有更多的收获,才会有更深的印象。

标签:legend,标签,css
0
投稿

猜你喜欢

  • 谈谈网页设计中的字体应用 (4) 实战应用篇·下

    2009-11-24 13:13:00
  • 如何制作关联的下拉菜单?

    2010-06-29 21:19:00
  • ORACLE 分区表的设计

    2009-08-15 10:56:00
  • 操作设计要素

    2011-03-04 16:23:00
  • 利用sort()和Math.random()实现元素的随机排列

    2010-10-19 12:42:00
  • 原来CSS也可以把IE6弄死

    2007-08-14 09:30:00
  • 网站如何使用黄金分割布局

    2010-11-05 18:34:00
  • 关于AJAX缓存数据

    2008-03-26 12:11:00
  • xmlHTTP技术资料

    2008-01-05 13:39:00
  • Web2.0电子商务网站的交互设计

    2009-05-15 12:08:00
  • css样式表实现首写字母大写

    2007-10-08 12:11:00
  • 分享个asp文件缓存代码,使程序从缓存读数据

    2011-03-09 19:47:00
  • javascript中类的创建和继承

    2008-05-08 12:07:00
  • sql随机记录之如何解决每次RND的结果都一样的问题?

    2007-09-11 13:24:00
  • Oracle也有注入漏洞

    2010-07-23 13:03:00
  • 100%全屏布局设计

    2009-05-15 12:24:00
  • 详解CSS3中的属性选择符

    2008-04-24 14:30:00
  • SQL Server 作业的备份(备份作业非备份数据库)

    2012-07-11 15:58:49
  • 数据库理论:学习基于SQL数据库的算法

    2009-01-13 13:38:00
  • JavaScript中的"类" 序言

    2008-02-18 13:26:00
  • asp之家 网络编程 m.aspxhome.com