我有一个字段集,如何将图例放在带边框的字段集中?我希望边界绕过传说,而不是在它的中间。
fieldset {
border: 0;
padding: 0!important;
margin: 0;
min-width: 0;
border: 1px solid red;
}
legend {
padding: 0!important;
}

<fieldset>
<legend>Title</legend>
</fieldset>
&#13;
答案 0 :(得分:20)
一个选项是将legend
元素浮动到左侧:
fieldset {
border: 2px solid #f00;
}
legend {
float: left;
width: 100%;
padding: 0;
font-weight: bold;
}
<fieldset>
<legend>This is a legend</legend>
<label>Here is an input element: <input type="text" /></label>
</fieldset>
另一种方法是使用outline
而不是border
:
fieldset {
border: none;
outline: 2px solid #f00;
}
legend {
padding: 0.6em 0 0;
font-weight: bold;
}
<fieldset>
<legend>This is a legend</legend>
<label>Here is an input element: <input type="text" /></label>
</fieldset>
另一种方法是将legend
元素 relative 绝对定位到父fieldset
元素。这可能是最不灵活的方法。
fieldset {
border: 2px solid #f00;
position: relative;
padding-top: 2.6em; /* Displace the absolutely positioned legend */
}
legend {
position: absolute;
top: 0; left: 0;
padding: 12px;
font-weight: bold;
}
<fieldset>
<legend>This is a legend</legend>
<label>Here is an input element: <input type="text" /></label>
</fieldset>
答案 1 :(得分:0)
接受答案的变体(使用SASS)应该适用于所有现代浏览器(IE9 +)
fieldset {
> legend {
float: left;
+ * {
clear: both;
}
}
}
这将清除浮动之后的下一个元素,因此您不必担心布局混乱。