如何給 legend 標籤設定寬度

 如何給 legend 標籤設定寬度

作者:懌飛

我們在做表單的時候經常會使用到這樣的結構:

<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 的兼容其實並不難,多嘗試多實踐就可以解決,最重要的是自己要去動手,只有動手了纔會有更多的收穫,纔會有更深的印象。

 


 

發佈了5 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章