如何使用border-radius htc hack和MSIE v:roundrect仅获得一个圆角?

Posted

技术标签:

【中文标题】如何使用border-radius htc hack和MSIE v:roundrect仅获得一个圆角?【英文标题】:How to get only one rounded corner with border-radius htc hack and MSIE v:roundrect? 【发布时间】:2011-02-28 15:13:53 【问题描述】:

我遇到了部分圆角的问题。请参阅大多数浏览器的第一个工作示例:

.box 
  display: block;
  width: 100px;
  height: 100px;
  border: 1px solid black;
  background-color: yellow;
  -moz-border-radius-bottomright: 10px;
  -webkit-border-bottom-right-radius: 10px;

您可以看到只有右下角应该是圆角的。自然的选择是在条件 IE 语句中添加 border-radius.htc hack:

.box 
  border-bottom-right-radius: 20px;
  behavior:url(border-radius.htc);

这不起作用,因为border-radius.htc 文件仅访问正常的border-radius 值(this.currentStyle['border-radius'])。 hack 使用的 VML 是 roundrect,它只支持 arcsize 的一个百分比值。

所以我想知道是否可以通过使用其他一些 VML 元素来解决这个问题?

另一个问题是 htc-file 不支持边框,但可以通过 VML 的 stroked 属性来解决。例如,漂亮的角落根本不适用于角落。

【问题讨论】:

【参考方案1】:

我能够让它与border-radius: 0 0 10px 10px; 和来自http://css3pie.com/ 的htc 一起工作

【讨论】:

很好的答案,我可能应该自己解决这个问题 有关边界半径的更多信息:css-tricks.com/almanac/properties/b/border-radius 完美!不知道为什么这没有被标记为真正的答案! 角的顺序:top-lefttop-rightbottom-rightbottom -左【参考方案2】:

另一种解决方案:border-bottom-right-radius:10px; 不让 CPU 计算不需要的边框舍入

【讨论】:

谢谢。为我工作。

以上是关于如何使用border-radius htc hack和MSIE v:roundrect仅获得一个圆角?的主要内容,如果未能解决你的问题,请参考以下文章

想要IE6~IE8支持css3的border-radius属性,下了一个ie-css3.htc的文件,放在页引入进去不起作用。

IE8兼容border-radius

关于IE浏览器不支持border-radius,box-shadow,text-shadow的解决方法

border-radius 兼容ie

在 IE8 中使用 CSS3Pie htc 作为边框半径

IE8兼容border-radius