在CSS重置</fieldset>后获取<fieldset>边框

时间:2012-07-05 04:31:49

标签: css fieldset css-reset

许多CSS resets消除&lt; fieldset&gt;标签的边框,填充和边距。我想这是为了确保它们在所有浏览器中均匀呈现。但是,重置后,字段集不再在视觉上分隔HTML(表单)元素组。

两个问题:

  1. 浏览器实际渲染&lt; fieldset&gt; sans重置不同?
  2. CSS重置后获取'边界'的最佳方法是什么?简单地重新设置它:

    fieldset {
        border: 1px solid silver;
        margin: 2px;
        padding: 7px;
    }
    
  3. 我所描述的一些图像:

    不重置: enter image description here

    重置: enter image description here

2 个答案:

答案 0 :(得分:2)

简单的答案是:不要使用重置!如果您知道自己在做什么,那么它们是不必要的。

例如,如果使用重置,则会丢失任何本机UI样式,例如,在本例中为fieldsets。例如,在IE中,无样式的字段集将具有略微圆角的边框,就像本机程序中的字段集一样。重置会删除,non-native UI sucks

但是,如果您坚持,只需确保以正确的顺序定义样式。重置应该是绝对的第一件事,然后是“取消重置”。看,这是多余的!

答案 1 :(得分:2)

我有类似的问题 - 我做了什么我复制了Normalize.css的样式在css重置后粘贴这个

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */

legend {
  border: 0; /* 1 */
  padding: 0; /* 2 */
}