我們在做表單的時候經常會使用到這樣的結構:
<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 的兼容其實並不難,多嘗試多實踐就可以解決,最重要的是自己要去動手,只有動手了才會有更多的收獲,才會有更深的印象。