首页 > 开发 > CSS > 正文

CSS教程:legend标签设定宽度

2024-07-11 08:21:17
字体:
来源:转载
供稿:网友

原文:http://www.planabc.net/2008/07/24/legend_width/

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

<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 的兼容其实并不难,多尝试多实践就可以解决,最重要的是自己要去动手,只有动手了才会有更多的收获,才会有更深的印象。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表