【问题标题】:Slick.js remove blue highlight around imageSlick.js 删除图像周围的蓝色突出显示
【发布时间】:2015-12-04 18:23:21
【问题描述】:

我正在使用 Slick.js 在模态框内构建轮播。在我单击图像之前,一切都运行良好。出现蓝色边框,不幸的是我无法弄清楚如何让它停止这样做。我已经尝试过 outline: none 和 border: none 并且没有成功。这是我的代码

HTML:

<div id="openModal" class="modalDialog">
    <div id ="background">
        <a href="#close" title="Close" class="close">X</a>
            <div id="logo">
                <img src="/media/{{ gallery.logo }}" alt="Smiley face" height="100" width="150">
            </div>
            <div class="multiple-items">
                        <div><img src="/media/{{ gallery.image1 }}" height="200" width="300"></div>
                        <div><img src="/media/{{ gallery.image2 }}" height="200" width="300"></div>
                        <div><img src="/media/{{ gallery.image3 }}" height="200" width="300"></div>
                        <div><img src="/media/{{ gallery.image4 }}" height="200" width="300"></div>
                        <div><img src="/media/{{ gallery.image5 }}" height="200" width="300"></div>
                        <div><img src="/media/{{ gallery.image6 }}" height="200" width="300"></div>
            </div>
        </div>
</div>

CSS:

/* Slider */
 .slick-slider {
    margin: 110px 35px 0 0;
    position: relative;
    display: block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    -khtml-user-select: none;
    -ms-touch-action: pan-y;
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
}
.slick-list {
    position: relative;
    display: block;
    overflow: hidden;
    margin: 0;
    padding: 0;
}
.slick-list:focus {
    outline: none;
}
.slick-list.dragging {
    cursor: pointer;
    cursor: hand;
}
.slick-slider .slick-track, .slick-slider .slick-list {
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}
.slick-track {
    position: relative;
    top: 0;
    left: 0;
    display: block;
}
.slick-track:before, .slick-track:after {
    display: table;
    content:'';
}
.slick-track:after {
    clear: both;
}
.slick-loading .slick-track {
    visibility: hidden;
}
.slick-slide {
    display: none;
    float: left;
    height: 100%;
    min-height: 1px;
}
[dir='rtl'] .slick-slide {
    float: right;
}
.slick-slide img {
    display: block;
}
.slick-slide.slick-loading img {
    display: none;
}
.slick-slide.dragging img {
    pointer-events: none;
}
.slick-initialized .slick-slide {
    display: block;
    background-color: green;
    border: none;
}
.slick-loading .slick-slide {
    visibility: hidden;
}
.slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
    display: none;
}
.slider {
    width: 80%;
    margin: 40px 0 0 100px;
}
.lower {
    margin-top: 100px;
}
.slick-slide {
    color: white;
    padding: 30px;
    font-size: 30px;
    font-family:"Arial";
    margin: 0 -50px 0 0;
}
.slick-prev:before, .slick-next:before {
    color: black;
}
.slick-slide:nth-child(1), .slick-slide:nth-child(3), .slick-slide:nth-child(5), .slick-slide:nth-child(7), .slick-slide:nth-child(9), .slick-slide:nth-child(11) {
}
.slick-slide slick-current slick-active {
    display: none;
    color: red;
}
.slick-slide slick-active {
    display: none;
}
.slick-active img {
    outline: 0 !important;
    border:0 none !important;
}
.multiple-items img {
    outline: 0 !important;
    border:0 none !important;
}

jQuery:

$(document).ready(function(){
    $('.multiple-items').slick({
      infinite: false,
      arrows: false,
      slidesToShow: 3,
      slidesToScroll: 1,

});
  });

编辑:

这是JSFiddle 的链接。当您打开模态框时,您将看到里面的图像。单击图像后,图像周围会出现一个蓝色框。这就是我要删除的内容。

【问题讨论】:

  • 无法重现您的代码的问题,您能否更清楚地了解图像周围出现的边框?
  • @Shehary 我添加了一个 JSFiddle 来指出我的问题。感谢任何帮助。
  • @Kevin Jantzer 解决方案是正确的,您忘记提及蓝色边框仅出现在 chrome 中,如果我在 Firefox 中检查您的小提琴,则选择图像时没有蓝色边框

标签: javascript jquery css slick.js


【解决方案1】:

对于 Div 上的反应光滑,导致轮廓的解决方案是:

.slick-slide div {
  outline: none;
 }

【讨论】:

    【解决方案2】:

    如果你将一个 react 组件传递到你的光滑轮播中,即

    <Slider {...settings}>
     <CarouselItem/>
    </Slider>
    

    我发现我必须将outline: none; 样式应用于&lt;CarouselItem/&gt; 组件,而不是针对任何本机slick-* 类。

    【讨论】:

      【解决方案3】:

      我使用以下方法消除了它:

      .slick-slide, .slick-slide *{ outline: none !important; }

      【讨论】:

      • 每个人都想摆脱看起来的轮廓!荣誉
      【解决方案4】:

      试试这个它对我有用。您需要为光滑的滑块添加outline: none; a 标签

      .slick-slide {
        &:focus, a {
          outline: none;
        }
      }
      

      【讨论】:

        【解决方案5】:

        如果您使用的是引导程序,请注意该代码中的 a:focus 设置也会导致出现蓝色边框。如果您将 slick-slide 设置为 !important 或将引导代码更改为 a:focus : none; ,这将解决它。

        【讨论】:

        • 在提供的小提琴中似乎没有使用引导程序,所以也许这应该是评论而不是答案。
        【解决方案6】:

        你需要使用outline: none;

        把它放在.slick-slide

        .slick-slide {
            outline: none
        }
        

        Demo

        【讨论】:

        • 正是我所需要的
        • 我刚刚在最后一张图片的右侧有一个突出显示。这清除了它。
        • 没用,我必须将此属性添加到我自己的幻灯片组件(位于 slick-slide 内),react-slick: 0.26.1
        【解决方案7】:

        您是否尝试将其添加到您的 img 标签中?: 样式=“边框样式:无”/ 试试看它是否有效。

        【讨论】:

        • 我试过你的建议,但没有奏效。您可以在我的编辑中看到我添加了一个 JSFiddle。它准确地显示了我的问题。
        猜你喜欢
        • 1970-01-01
        • 2011-05-30
        • 1970-01-01
        • 2011-07-10
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        • 1970-01-01
        • 2014-05-09
        相关资源
        最近更新 更多