IE9 字段集圆角

Posted

技术标签:

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

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

【问题讨论】:

重复:***.com/questions/635851/… @digitalFresh:你读过这个问题吗?这是关于 IE9 - IE9 支持边界半径(如您的链接中所述) @digitalFresh:这和这有什么关系? 嗯,圆角也不会出现在 Opera 11 上。 你应该在connect.microsoft.com/ie报告IE9错误 【参考方案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; ***.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 渲染总是充满渲染问题,尤其是打印问题。它不起作用也就不足为奇了。

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

【讨论】:

以上是关于IE9 字段集圆角的主要内容,如果未能解决你的问题,请参考以下文章

围绕图例的厚字段集圆角边框

CSS3 PIE:圆角减慢 IE9,即使它本机支持它们

关于easyui 圆角按钮在ie9不能隐藏

css圆角矩形的制作

如何使 CSS3 圆角在 Chrome/Opera 中隐藏溢出

UIAlertViewController 中具有圆角矩形边框样式的文本字段。 (迅速)