【问题标题】:IE9 fieldset rounded cornersIE9 字段集圆角
【发布时间】:2011-06-02 20:04:32
【问题描述】:

我似乎无法让 IE9 呈现带有圆角的字段集,而其他浏览器则可以。 有没有人也遇到过这种情况?

【问题讨论】:

标签: css internet-explorer internet-explorer-9


【解决方案1】:

您可以添加以下元标记:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

【讨论】:

    【解决方案2】:

    我只能访问 CSS 文件,因此无法对 HTML 进行任何更改,因此我在 IE 的 CSS 中进行了破解。

    HTML 结构是:

    <form>
      <fieldset>
          ...form content...
      </fieldset>
    </form>
    

    适用于所有浏览器和 IE hack 的整个 CSS:

    fieldset {
        border-radius: 20px;
        border: 1px #3D3D3D solid;
    }
    @media screen and (min-width:0\0) {
        form {
            border: 1px #3D3D3D solid;
            border-radius: 20px;
        }
        fieldset {
            border: 0 none;
            margin-top: 1px;
            margin-bottom: 1px;
        }
    }
    

    当然,如果您的网站有另一个 html 结构,这将不起作用。因此,您可以在 css 中将“表单”应用于您的字段集的父 div。

    【讨论】:

      【解决方案3】:

      IE11下使用legend还是有问题 ,解决方案在这个线程中:

      Rounded corners on a fieldset

       fieldset {
              margin:20px;
              padding:0 10px 10px;
              border:1px solid #666;
              border-radius:8px;
              box-shadow:0 0 10px #666;
              padding-top:10px;
       }  
      
      legend {
              padding:2px 4px;
              background:#fff; 
          }
      
      
          fieldset > legend {
              float:left;
              margin-top:-20px;
          }
          fieldset > legend + * {
              clear:both;
          }
      

      http://www.456bereastreet.com/archive/201302/fieldset_legend_border-radius_and_box-shadow/

      【讨论】:

        【解决方案4】:

        我也曾经使用 fieldset 并不仅仅用于表单,但对兼容性的不断打击和遗漏让我放弃了它们。最好编写自己的模拟字段集的 CSS DIV 类。使用 CSS,您可以获得字段集外观的精确副本,并且具有更大的灵活性和兼容性

        【讨论】:

          【解决方案5】:

          仅当您将 &lt;fieldset&gt;&lt;legend&gt; 一起使用时才会发生这种情况 - 没有它,角落渲染正常。

          您可以通过将 display:inlinedisplay:inline-block 应用于您的 &lt;legend&gt; 元素来修复此错误 - 但您必须通过设置 position:relative 并移动它来重新定位它。

          根据您的图例的样式(有背景看起来相同 - 没有背景,字段集的边框在字母后面仍然可见),您可以使其看起来与其他普通浏览器中的几乎相同.

          【讨论】:

          • 我发现虽然这确实解决了 IE 中的问题,但它在 chrome 中破坏了它。我必须将定位应用于图例以将其移动到正确的位置,但在 chrome 中移动到很远,但在 FF 和 IE 中很好。作为一种解决方法,我将样式固定在 IE 中以仅在 IE 中修复它IE only stylesheet。作为记录,我使用的样式是:display: inline-block; position relative; height: 30px; top: -15px;
          • 显然。这将转到仅限 IE 的样式表 - 问题被标记为 internet-explorer - 这是 IE 的修复 - 您总是希望仅将修复应用于有问题的浏览器。
          • 查看此 SO 答案以获取浮动的替代解决方案 &lt;legend&gt; stackoverflow.com/a/17406564/132599
          【解决方案6】:

          根据我在最新版 IE9 中的经验,我无法让带有图例的字段集具有半径。我在 IE9 中的其他边框没有任何问题,css3 边框半径工作得很好,只是 fieldset/ledgend。我还在为此摸不着头脑。

          【讨论】:

          • 这似乎是 IE9 版本中针对 fieldset + legend 的错误,至少可以说是令人恼火的。
          【解决方案7】:

          要让 IE9 使用圆角(CSS 3),您必须将其添加到 HTML 标头:

          &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge" /&gt;

          然后正常使用 CSS:border-radius-right-bottom:15px;

          我遇到了同样的问题,这解决了它。

          【讨论】:

          • IE9 应该默认支持border-radius。如果你需要使用它,这意味着你的设置中有一些东西使它变成了 IE8 兼容模式。您可能需要检查设置。如果你确实使用了这种技术,那么你应该可以只用IE=Edge;其余的都是无关紧要的,因为无论如何都没有其他浏览器识别X-UA-Compatible,即使他们识别了,你为什么要强制它们使用给定的版本号(你在这里修复了 IE 中的一个怪癖,而不是 Firefox)。跨度>
          【解决方案8】:

          它只能在最新的 rc 版本中工作,不能在 IE9 的 beta 版本中工作 试试

          .class { border-radius-right-bottom: 15px; }

          【讨论】:

          • 重新迭代是个好点——IE9 不是已发布的产品。它处于测试阶段。不要指望一切正常。如果您没有准备好遇到意外中断,请不要将其用作主要浏览器。
          【解决方案9】:

          Fieldset 渲染总是充满渲染问题,尤其是打印问题。它不起作用也就不足为奇了。

          标准的解决方法是添加另一个容器和样式。

          【讨论】:

            猜你喜欢
            • 2010-10-30
            • 2012-02-13
            • 2012-03-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-02
            相关资源
            最近更新 更多