【问题标题】:Why is "cursor:pointer" effect in CSS not working为什么 CSS 中的“光标:指针”效果不起作用
【发布时间】:2013-08-28 09:10:00
【问题描述】:

我将cursor: pointer 设置为.about > span,但是当我的鼠标悬停在<span> 中的这些文本上时,光标不会变为指针模式。我想知道为什么它不起作用。

HTML:

 <div id="firstdiv">
      <div id="intro">
          <h1 id="name">YOU CHIA LAI</h1>
              <ul>
                  <li class="about">I am a Master of <span>Architecture</span>  
                   candidate at Rice University.  
                  </li>
                  <li class="about">I am also interested in <span>photography</span> &        
                  <span>web design</span>.</li>
                  <li class="about">I wish you can know more <span>about</span> me.
                  </li>
             </ul>
      </div>
  </div>

CSS:

#firstdiv {
    position:fixed;
    top:0;
    left:0;
    right:0;
    height:100%;
    width:100%;
    margin:auto;
    background:#E6E6E6;
    text-align:center;
    font-size:0;
    z-index:-2
}
.about > span {
    cursor:pointer;
    font-family:Eurofurence Light;
    padding:0 0 3px 0;
    color:#01DFA5;
}

【问题讨论】:

标签: html css mouse-cursor


【解决方案1】:

您需要更改 z-index,以便将 #firstdiv 视为在其他 div 之上。

【讨论】:

  • batter ans is ==> : pointer-events: none;
  • @lalitbhakuni 这是不正确的,实际上阻止了光标完全改变......
【解决方案2】:

还添加光标:手。有些浏览器需要它。

【讨论】:

【解决方案3】:

如果您从 #firstdiv 中删除 position:fixed,它会起作用 - 但 @Sj 可能也是正确的 - 很可能是 z-index 分层问题。

【讨论】:

    【解决方案4】:

    我把我的 CSS 搞砸了好几个小时,改变了页面上几乎每个元素的位置和 z-index。我从 DOM 中删除了所有其他元素,除了带有光标的元素:指针悬停时,它仍然不起作用。

    对我来说,在 Mac OSX El Captain V 10.11 上,问题与 Photoshop CC 的某种干扰有关。关闭 Photoshop 后,光标又开始工作了。

    我的解决方案:关闭并重新打开 Photoshop

    显然,这可能是由于许多不同的程序,包括 Photoshop、Sketch、DataGrip、Acrobat、Sublime Text 等而发生的。

    【讨论】:

    • 在 OS X 的所有浏览器(chrome、safari、firefox)中都发生了这种情况。开始一个一个地关闭程序,直到我发现是在第二个屏幕上处于全屏模式的 Sublime Text 3 导致了这个问题的发生。但是,这个答案与原始问题无关。
    • 我看到了这个备受赞誉的解决方案,并认为这是某种错误,因为另一个程序与我在浏览器中无法正常工作的 CSS 有什么关系。但是,果然,关闭 Photoshop(在我的例子中是 2022 版本)立即解决了这个问题。很高兴我在进入一个不必要的 CSS 调整兔子洞之前尝试了这个。
    • 非常感谢,这一直困扰着我多年!关闭 Photoshop 有帮助!
    【解决方案5】:

    刚刚发生在我身上,在我的情况下,这是由于在父元素上设置的 CSS 规则 pointer-events: none; 而我忘记了它。

    这导致任何指针事件都被忽略,包括光标。

    要解决此问题,您只需将样式设置为允许指针事件:

    .about>span{
        cursor:pointer;
        pointer-events: auto;
    }
    

    或者直接在元素中:

    <span style="pointer-events: auto;">...</span>
    

    【讨论】:

    • pointer-events:自动修复光标指针,但不再触发点击时的预期动作
    【解决方案6】:

    cursor:pointer 在您使用 Chrome 的移动模拟器时不起作用。

    【讨论】:

    • 我认为这是故意的或至少是预期的行为,因为移动设备上没有光标,可能除了文本选择之外,这取决于操作系统,不确定您是否可以覆盖它。
    • 我曾经在 chrome 中遇到过同样的问题(但在移动模拟器中没有)。所以我打开和关闭“移动模拟器”,chrome回到正确的阶段。 ;-D
    【解决方案7】:

    我在使用 Angular 和 SCSS 时遇到了这个问题。我的所有 CSS 都嵌套了,所以我决定从其中删除 cursor: pointer;。它奏效了。

    例子:

    .container{
      .Approved{
        color:green;
      }
    
      .ApprovedAndVerified{
        color:black;
      }
    
      .lock_button{
        font-size:35px;
        display:block;
        text-align:center;
      }
    }
    
    .lock_button{
      cursor:pointer;
    }
    

    【讨论】:

      【解决方案8】:

      将元素定位为相对,然后使用z-index

      .menu-toggle{ 
          display: block; 
          width: 40px; 
          height: 40px; 
          border:2px solid white; 
          border-radius: 5px; 
          margin: 15px; 
          float: right; 
          cursor: pointer; 
          text-align: center; 
          font-size: 30px; 
          color: var(--light-bg-color); 
          z-index: 10; 
      }
      

      【讨论】:

        【解决方案9】:

        我的问题是:after 阻止了鼠标事件,所以我必须将pointer-events: none; 添加到我的:after 块中。

        【讨论】:

          【解决方案10】:

          我有同样的问题,当我关闭 chrome 窗口弹出浏览器检查器时,它对我来说工作正常。

          【讨论】:

            【解决方案11】:
            position: relative;
            z-index: 2;
            cursor: pointer
            

            为我工作。

            【讨论】:

              【解决方案12】:

              对我有用的解决方案是在从本地目录“呼出”时使用正斜杠而不是反斜杠。

              而不是反斜杠:

              cursor: url("C:\Users\Ken\projects\JavascriptGames\images\bird.png"), auto;
              注意:当我使用反斜杠时,我得到一个 net::ERR_FILE_NOT_FOUND

              我把它改成了正斜杠:

              cursor: url("C:/Users/Ken/projects/JavascriptGames/images/bird.png"), auto;
              注意:当我使用正斜杠时,自定义光标样式执行成功。

              关于反斜杠和正斜杠的这种行为可能可以在 StackOverflow 答案中得到解释:Strange backslash and behavior in CSS

              【讨论】:

                【解决方案13】:

                在过去的几个小时里,我一直在摸索为什么我的 CSS 不起作用!我试图将row-resize 显示为光标,但它显示了默认光标,但s-resize 浏览器显示了正确的光标。我尝试更改z-index,但这也没有解决我的问题。

                因此,在尝试了更多来自互联网的解决方案后,我打电话给我的一位同事并通过 Google meet 分享了我的屏幕,他告诉我,当我看到默认图标时,他看到了行调整大小图标! !他甚至把我的截屏截图发给我。

                所以经过进一步调查,我发现当我使用远程桌面连接连接到我的办公室电脑时,由于某种原因,RDC 没有显示某种类型的光标。

                这是我在远程 PC 上看不到的光标列表,

                none, cell, crosshair, text, vertical-text, alias, copy, col-resize, row-resize,

                【讨论】:

                  【解决方案14】:

                  我的问题是错误地使用了cursor: 'pointer' 而不是cursor: pointer。 因此,请确保您没有在指针周围添加单引号或双引号。

                  【讨论】:

                    【解决方案15】:

                    我找到了解决方案:如果没有其他帮助,请使用 :hovercursor: pointer

                    【讨论】:

                      【解决方案16】:

                      阻止用户选择文本,然后使用curser:pointer 属性-

                      .targeted-span{
                      user-select: none;
                      curser : pointer;}
                      

                      【讨论】:

                        【解决方案17】:

                        对我来说,问题是我在全局范围内设置了这个:

                        ::-webkit-scrollbar {
                          display: none;
                        }
                        

                        删除后,cursor: pointer 可以正常工作。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2013-01-06
                          • 1970-01-01
                          • 1970-01-01
                          • 2014-12-27
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多