::before 伪类影响 react-slick 中的箭头

Posted

技术标签:

【中文标题】::before 伪类影响 react-slick 中的箭头【英文标题】:::before pseudo class impacting arrows in react-slick 【发布时间】:2020-06-15 19:21:23 【问题描述】:

当我使用具有最少设置的 Slider 组件时,上一个和下一个箭头是白色的。这是因为 slick-theme.css 有一个 .slick-prev:before.slick-next:before 将颜色设置为白色,所以箭头是不可见的!

由于我无法控制这些箭头,我想我会创建自定义箭头。我遵循了文档并在 style 属性中简单地设置了color: green。这没有任何作用,因为 .slick-next:before 确实是正在显示的内容。

如何摆脱.slick-next:before 样式?

见my codesandbox here。

【问题讨论】:

【参考方案1】:

这是有关如何使用自定义箭头的文档的link。

我不想使用确切的例子,而只是作为参考。

更新:

在查看了您的代码框后,我看到您确实尝试过此操作,但原因是您通过在自定义箭头组件中传播 ...style 来应用默认值,您可以像这样创建一个完整的自定义箭头。

function SampleNextArrow(props) 
    const  className, style, onClick  = props;
    return (
        <div
            className=className
            style=
                height: "20px",
                width: "20px",
                border: "2px solid black",
                transform: "rotate(-45deg)",
                borderWidth: "0px 2px 2px 0px"
            
            onClick=onClick
        />
    );

我用最简单的方法来创建一个带有 css 边框的箭头,但显然你也可以使用背景图片。

【讨论】:

我遵循了自定义箭头的文档。它不起作用,因为 slick-next:before 是显示的内容,而不是我的自定义箭头。我尝试了自定义箭头的其他变体,并且能够显示我的箭头,但 slick-next:before 仍在屏幕上! 感谢更新!但是,您的更新会添加内容,但不会删除原始的 slick-next:before 元素。它还在那里。你看不到它,因为它是白色背景上的白色。我用您的更改更新了我的沙箱。 ::before 元素位于自定义箭头内。我需要将其完全删除。

以上是关于::before 伪类影响 react-slick 中的箭头的主要内容,如果未能解决你的问题,请参考以下文章

伪类 ::before - 创建 css 圆

与样式组件一起使用的 Before 和 After 伪类

IMG标签与before,after伪类

js修改伪类before边框颜色

使用伪类before和after

伪类元素before与after