CSS 颜色 属性 在 Safari OSX 和 iOS 中与指针事件 属性 一起使用时不起作用,每当 DOM 更新时
CSS color property doesn't work when used along side with pointer-events property in Safari OSX and iOS, whenever DOM gets updated
我遇到这个问题,在 Safari OSX 和 [=50] 中与指针事件 属性 一起使用时 css 颜色 属性 不起作用=],每当 DOM 更新时。
考虑下面这些简单的代码:
HTML:
<div class="test">
Click Me!
</div>
<div class="ux-capacity-variant v-normal-bottom v-normal-right disabled" >
<div class="show-for-medium-up section-header text-center capacity">128GB</div>
</div>
<div class="ux-capacity-variant v-normal-bottom v-normal-right " >
<div class="show-for-medium-up section-header text-center capacity">258GB</div>
</div>
<div class="ux-capacity-variant v-normal-bottom v-normal-right " >
<div class="show-for-medium-up section-header text-center capacity">512GB</div>
</div>
Javascript (jQuery):
$(document).ready(function(){
$('.test').click(function() {
$('.ux-capacity-variant').toggleClass('disabled');
});
});
CSS:
.ux-capacity-variant.disabled {
cursor: default;
pointer-events: none;
color: grey
}
.ux-capacity-variant{
color: red
}
Codepen 代码也可在此处获得:https://codepen.io/ardnet5/pen/ZEKLXvM
在 Safari OSX 和 iOS 以及 Chrome iOS 中打开它,然后单击“点击我!”演示。
在 Safari 浏览器中,css 颜色 属性 未正确应用 - 当与指针事件 属性 一起使用时,每当 DOM 更新时(通过 Javascript事件)。
我们在 Safari 开发工具中的 Computed css 中看到了正确的颜色。屏幕上仍然显示错误的颜色(它应该在 NON 上显示红色。禁用 class,但它仍然显示灰色)。
顺便说一句,这在 Chrome 和其他浏览器中有效,在其他 OS(即:Win)中有效。
是否有任何解决方法可以使 css 颜色 属性 起作用?或者这是 Safari 中的真正错误?
提前致谢!
注释掉pointer-events: none;
这行代码验证一下,我亲测没问题
我们只是浪费了一点时间才发现这个问题,显然,这是真的我们在 Vue.js 和 DOM 上遇到了问题,当我们想禁用按钮时没有正确更新.
我们的最终解决方案是将 :disabled="$props.disabled"
添加到组件中并添加 class (您应该评估使用正确的 html 语法而不是 div
使用适当的 button
),您也可以使用纯 JS 或 Jquery 来实现,然后设置样式
&--disabled {
color: $color-button-disable;
&:hover {
background-color: unset;
cursor: unset;
}
}
最终结果是一样的,并且适用于所有浏览器。
我遇到这个问题,在 Safari OSX 和 [=50] 中与指针事件 属性 一起使用时 css 颜色 属性 不起作用=],每当 DOM 更新时。
考虑下面这些简单的代码:
HTML:
<div class="test">
Click Me!
</div>
<div class="ux-capacity-variant v-normal-bottom v-normal-right disabled" >
<div class="show-for-medium-up section-header text-center capacity">128GB</div>
</div>
<div class="ux-capacity-variant v-normal-bottom v-normal-right " >
<div class="show-for-medium-up section-header text-center capacity">258GB</div>
</div>
<div class="ux-capacity-variant v-normal-bottom v-normal-right " >
<div class="show-for-medium-up section-header text-center capacity">512GB</div>
</div>
Javascript (jQuery):
$(document).ready(function(){
$('.test').click(function() {
$('.ux-capacity-variant').toggleClass('disabled');
});
});
CSS:
.ux-capacity-variant.disabled {
cursor: default;
pointer-events: none;
color: grey
}
.ux-capacity-variant{
color: red
}
Codepen 代码也可在此处获得:https://codepen.io/ardnet5/pen/ZEKLXvM
在 Safari OSX 和 iOS 以及 Chrome iOS 中打开它,然后单击“点击我!”演示。
在 Safari 浏览器中,css 颜色 属性 未正确应用 - 当与指针事件 属性 一起使用时,每当 DOM 更新时(通过 Javascript事件)。
我们在 Safari 开发工具中的 Computed css 中看到了正确的颜色。屏幕上仍然显示错误的颜色(它应该在 NON 上显示红色。禁用 class,但它仍然显示灰色)。
顺便说一句,这在 Chrome 和其他浏览器中有效,在其他 OS(即:Win)中有效。
是否有任何解决方法可以使 css 颜色 属性 起作用?或者这是 Safari 中的真正错误?
提前致谢!
注释掉pointer-events: none;
这行代码验证一下,我亲测没问题
我们只是浪费了一点时间才发现这个问题,显然,这是真的我们在 Vue.js 和 DOM 上遇到了问题,当我们想禁用按钮时没有正确更新.
我们的最终解决方案是将 :disabled="$props.disabled"
添加到组件中并添加 class (您应该评估使用正确的 html 语法而不是 div
使用适当的 button
),您也可以使用纯 JS 或 Jquery 来实现,然后设置样式
&--disabled {
color: $color-button-disable;
&:hover {
background-color: unset;
cursor: unset;
}
}
最终结果是一样的,并且适用于所有浏览器。