如何调试悬停等伪元素?

Posted

技术标签:

【中文标题】如何调试悬停等伪元素?【英文标题】:How to debug pseudo-elements such as hover? 【发布时间】:2020-05-17 17:31:25 【问题描述】:

我一直在尝试一切我能在 SO 上找到的东西。没有任何工作。我想做的非常简单易行。我只想在光标悬停但鼠标悬停效果不起作用时突出显示/更改按钮的背景颜色,无论我尝试什么。我将尝试通过提供自定义 CSS 和 html 来重现环境。我还在本地(不是 CDN)托管 Bootstrap 和 jQuery,它们都包含在 index.html 中。

index.html

    <section class="sectionscreen" id="splash">
    <div class="col-md-12">
    <div class="row">
    <div class="form">
    <div class="center-text-screen">
    <a id="loginBtnHover" href="login.html" class="btn-link-screen btn" data-translate="log_in">Login</a>
    </div>
    </div>
    </div>
</div>
</section>

css

html,
body 
    margin: 0;
    font-size: 100%;
    font-family: 'Lato', sans-serif;
    background: #fff;
    width:100%;
    height:100%;


body a 
    text-decoration: none;
    transition: 0.5s all;
    -webkit-transition: 0.5s all;
    -moz-transition: 0.5s all;
    -o-transition: 0.5s all;
    -ms-transition: 0.5s all;
    font-family: 'Lato', sans-serif;

body 
    font: 1.3rem/1 "Avenir LT W02 45 Book",sans-serif;
    color: #5c5c5f;

body img 
    max-width: 100%;


a
    text-decoration: none;
    color: inherit !important;

a:hover
    text-decoration: none !important;

    #splash
          background-image: url("../images/splash.png"); /* The image used */
          background-color: whitesmoke; /* Used if the image is unavailable */
          height: 100%; /* You must set a specified height */
          -webkit-background-size: cover;
          -moz-background-size: cover;
          -o-background-size: cover;
          background-size: cover;
          background-size: cover; /* Resize the background image to cover the entire container */
          text-align: center;
          padding: 2.5%;
    
    .center-text-screen
      display:grid;
      position: fixed; 
      left: 0; 
      right: 0; 
      margin-left: auto; 
      margin-right: auto; 
      width: 100%; /* Need a specific value to work */
      /*height:200px !important;*/
      bottom:8% !important;
      color: #302b70;
    
    .btn-link-screen
      background:#d9d9d9;
      margin-bottom:1.5% !important;
      width: 170px;
      left: 0; 
      right: 0; 
      margin-left: auto; 
      margin-right: auto; 
      border-radius:50px !important;
      color:#a6a6a6 !important;
    

这不起作用:

.btn-link-screen:hover
 background-color:gold !important

仅在电脑未联网时有效,否则无效

.center-text-screen .btn-link-screen:hover
     background-color:gold !important;//works when not connected to internet

.center-text-screen a:hover
     background-color:gold !important;//works when not connected to internet

不工作

#splash .center-text-screen .btn-link-screen:hover

没用

#splash .btn-link-screen:hover

没用

#splash a:hover

我做错了什么,我该如何调试?

【问题讨论】:

【参考方案1】:

嗯,不知何故,您的样式在级联中被其他人覆盖,这意味着您的 CSS 在您尝试重写的规则之前被读取。这就是正在发生的一切。

首先要检查:确保您的样式表在 HTML 中位于 Bootstrap 之后。

如果不是这样,您使用的是哪个版本的 Bootstrap?

另外,我注意到你有一个 id - loginBtnHover - 你试过吗?该 ID 为您提供了很多针对该元素的特异性。 ID 将取代类规则。

每个现代浏览器都可以调试悬停状态。我可以尝试描述按钮在哪里执行此操作,但我认为在其上为您选择的浏览器找到 YouTube 会更快/更容易。但你可以做到——在这个菜单中有切换 :hover、:focus、:active 等的选项,非常有用。

【讨论】:

老兄!你解决了我的地狱。 bootstrap.css 在自定义 css 之后。在引导程序和繁荣解决之后,我放置了我的自定义样式表!感谢您的输入! 太棒了!我已经做过几次了。如果您发现自己需要 !important,请仔细检查您的 CSS 文件顺序。

以上是关于如何调试悬停等伪元素?的主要内容,如果未能解决你的问题,请参考以下文章

伪元素和伪类

CSS:如果 Last-Child <li> 悬停,如何影响:伪元素之后?

在悬停一个伪元素时,让另一个伪元素出现?

防止伪元素触发悬停?

如何为伪元素制作悬停效果?

css 闪亮的动画悬停伪元素