来自css的奇怪颜色污点

Posted

技术标签:

【中文标题】来自css的奇怪颜色污点【英文标题】:weird color stain from css 【发布时间】:2021-04-28 01:01:15 【问题描述】:

我已经在 CSS 中对其进行了编码,如果您将鼠标悬停在一个 div 上,它会展开并显示有关该 div 的更多详细信息,问题是每当我移开鼠标时,某些颜色仍会保留为线条,我会附上一张照片。

这是css代码,其中movie card是详细信息,movie是要悬停的div

.movie-card
  transition: 500ms ease-in-out;
  background-color: #a851ff;
  opacity: 0;
  visibility: hidden;
  border: 1px solid #a851ff;


.movie-box-content:hover .movie-card
  transition-delay: 250ms;
  transition-duration: 500ms;
  visibility: visible;
  opacity: 1;

这是悬停的结果:

这是在将鼠标移开之后:

值得注意的是,在我滚动一次之后,所有的行都会被删除。

【问题讨论】:

您能否提供一个显示问题的最小工作 sn-p。 好的,我上传到code pen:codepen.io/marwantukhta/pen/QWKRomj 【参考方案1】:

从电影卡类中删除 transition: 500ms ease-in-out; 可以消除虚假的“阴影”。

  .movie-box 
    position: relative;
    display: block;
    width: 300px;
    height: 168.75px;
    
  

  .movie-box-content 
    transform: scale(1);
    transition: 500ms ease-in-out;
    background-image: url('https://wallpaperaccess.com/full/1508305.jpg');
    background-repeat: no-repeat;
    background-size: 300px 168.75px;
    width: 100%;
    height: 100%;
    rborder-radius: 2%;
  

  .movie-box-content:hover 
    transition-delay: 250ms;
    transition-duration: 500ms;
    transform: scale(1.3);
    border: 1px solid #a851ff;
    box-shadow: #a851ff;

  

  .movie-card 
    /* transition: 500ms ease-in-out;*/
    background-color: #a851ff;
    opacity: 0;
    visibility: hidden;
    
  

  .movie-box-content:hover .movie-card 
    transition-delay: 250ms;
    transition-duration: 500ms;
    visibility: visible;
    opacity: 1;
    
  
<div class="movie-box">
  <div class="movie-box-content">

    <div style="width: 100%; height: 100%;"></div>

    <div class="movie-card hidden">

      <div class="text-center">
        <strong>Drama, psycho, crime</strong>
      </div>
    </div>
  </div>

</div>

问题在于这是否会在视觉上改变其他任何东西。

顺便说一句,将 scale(1.2) 更改为 scale(i) 其中 i 是一个整数似乎也消除了可能表明映射 CSS 像素(每个可能占用多个显示像素)的问题,以便 div 缩放向下它“留下”部分 CSS 像素。如果有人能解释这种现象就好了。

【讨论】:

你是对的,删除过渡确实解决了问题,但没有达到相同的效果,我认为你对像素映射绝对正确,似乎达到预期效果会导致 CSS 出现问题,所以我可能会使用 jquery 而不是感觉我正在使用引导程序,谢谢。【参考方案2】:

我认为没有必要同时更改可见性和不透明度,因为它们本质上实现了相同的目标。由于您在班级上设置了一般转换,因此这两者可能会相互干扰。

【讨论】:

这个答案***.com/a/34529598/7659075 也可能有助于确定是否使用“显示”、“可见性”或“不透明度” 我添加了可见性,因为图标电影卡是可点击的,所以添加了可见性:隐藏处理了这一点,另一方面,不透明度存在,因为我想要一个平滑的过渡,但我无法做到这一点单独的可见性属性和不透明度是不够的,因为可点击的图标仍然存在并且可以点击。话虽如此,我删除了可见性属性只是为了对其进行测试,但问题仍然存在。 看到您的 codepen 后,我想知道缩放转换是否也引起了问题。我找到了这个答案,想知道它是否对你有帮助:***.com/questions/25799480/… 我试过 backface-visibility: hidden 和 -webkit-transform: translateZ(0) 都没有解决问题。

以上是关于来自css的奇怪颜色污点的主要内容,如果未能解决你的问题,请参考以下文章

如何修复由 CSS 动画引起的奇怪色带?

终端模拟器中的颜色主题奇怪/不正确

在 iPad/iPhone 上的 CSS 提交按钮奇怪的渲染

字体真棒CSS中的奇怪下划线

页面右侧有奇怪的小白间距

UITableView 奇怪的分隔线颜色