我一直试图让一些伪元素在IE上工作,但是它不让我。
它越过CSS,行为就像它不在那里,这有助于我。
有人会知道我在做错什么吗?
HTML:
<div class="starttour"> <div class="newbutton headerbutton"> <span class="iconhead icon-02-arrow-icon"></span> </div> <p>START TOUR</p> </div>
CSS:
.newbutton { border-radius: 50%; width: 74px; height: 74px; position: relative; background-color: black; margin: 60px 0px 25px 17px; overflow: visible; } .newbutton:before { content:"f"; width:80px; height:80px; position: absolute; border-radius:50%; z-index:-1; top:37px; left:37px; -webkit-transform:translate(-50%,-50%); transform:translate(-50%,-50%); -webkit-animation-name: fadecolor; -webkit-animation-duration: 5s; -webkit-animation-iteration-count: infinite; animation-name: fadecolor; animation-duration: 5s; animation-iteration-count: infinite; } .newbutton:after { content:""; width: 80px; height: 80px; position: absolute; border-radius: 50%; z-index: -2; top: -3px; left: -3px; background: -webkit-gradient(linear,0% 0%,0% 100%,from(#01BAE8),to(#0183D5)); }
发生什么的截图:
解决方法
这是一个已知的问题,但实际上应用了样式。开发人员工具认为伪元素样式正在被父元素相应的样式所覆盖。通过检查父元素的计算风格并查看(F12工具认为是什么)竞争样式,这很容易证明:
不过,这些样式实际上应用于正确的元素 – 无论开发人员工具如何相信或建议。 You can confirm this通过遍历父元素和两个伪元素并记录它们的计算高度:
(function () { var el = document.querySelector( ".newbutton" ); [ "","::before","::after" ].forEach(function ( e ) { // Output: 74px,80px,80px console.log( window.getComputedStyle( el,e ).height ); }); }());
我会检查我们是否已经有一个内部问题跟踪这个错误,并添加这个问题。一般来说,我们试图给予这样的问题与现实世界中的问题造成的悲伤程度成比例的关注度。所以把你的问题作为一个新的添加在票上可能会帮助我们向前移动修复:)