我到处都看,但无济于事.
我有一个< legend>在一个表单中,除了Chrome之外,它在每个浏览器中显示我想要的内容.它就像它位于fieldset之外,或者就像它位于下一个元素之上.这非常烦人.我甚至不能把利润放在上面.
为什么它以这种方式显示?
有解决方法吗?
HTML:
<fieldset class="col-12-Box-bottom add-extras"> <legend class="plus">Add Promotion Code</legend> <ul id="promo-fields"> <li><input class="field-small" type="text" /></li> <li><button class="but-sec" type="submit">Apply</button></li> </ul> </fieldset>
CSS:
.add-extras legend{ width: 260px; height: 0px; border: 1px solid red; display: block; margin-top: 10px; } .add-extras fieldset{ position: relative; } .add-extras ul{ padding: 0 0 20px 0 !important; overflow: hidden; } .add-extras li{ list-style-type: none; float: left; margin: 0 18px 0 0; } .add-extras li:last-child a{ color: #afafaf; display: block; margin: 27px 0px 0 0; } fieldset.add-extras{ margin: 0px 0 23px 0; } .add-extras label{ float: none; display: block; text-align: left; width: 110px; font-weight: bold; margin: 0 0 5px 0; }
解决方法
这是webkit浏览器中图例元素的已知问题.图例元素本身没有干净的变通方法,但您可以将边距添加到图例后面的第一个元素.
此外,您必须明确设置-webkit-margin-collapse:在该元素上分开以使其正常工作.试试这个:
legend + * { -webkit-margin-top-collapse: separate; margin-top: 10px; }
(答案在这里:Cannot add `margin` to `<legend>` element in Safari & Chrome (WebKit))