html – IE 11 Bug – 内部标签内的图像

前端之家收集整理的这篇文章主要介绍了html – IE 11 Bug – 内部标签内的图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在IE11中,以下代码将按预期方式检查单选按钮:
  1. <input type="radio" id="myRadio" />
  2.  
  3. <label for="myRadio">
  4. <img src="..." />
  5. </label>

包裹< form>不过,上述将破坏标签功能

This SO post通过使用指针事件对图像进行样式化来提供问题的解决方案:none,标签作为块级元素。

虽然这当然不是必要的,但它也禁用了处理鼠标事件的能力。

如果有人可以为此问题提供纯CSS解决方案,那将是非常感激的。

PS:

值得一提的是,在IE11中,如果将图像设计为块级元素,那么指针事件似乎会消失其影响。

解决方法

正如我在 the referred question年以前回答的那样,有一种纯粹的CSS方式。

如果您的图像显示:阻止修复仍然可以使用,即使你必须增加一些更多的诡计。例如:

CSS:

  1. label img{
  2. display: block; /* requirement */
  3. /* fix */
  4. pointer-events: none;
  5. position: relative;
  6. }
  7.  
  8. /* fix */
  9. label{
  10. display: inline-block;
  11. position: relative;
  12. }
  13. label::before{
  14. content: "";
  15. display: block;
  16. position: absolute;
  17. top: 0;
  18. left: 0;
  19. right: 0;
  20. bottom: 0;
  21. z-index: -1;
  22. }

HTML:

  1. <form>
  2. <label>
  3. <input type="checkBox"> some text
  4. <img src="http://placekitten.com/200/200" alt="kitten!">
  5. </label>
  6. </form>

Fiddle

如果问题是图像上的点击处理程序自身,您可能可以使用图像上的包装元素来解决这个问题(这可能是标签,因此不需要额外的元素)。 (但是我想看到一个更具体的例子,你正在努力。)

猜你在找的HTML相关文章