ChatGPT解决这个技术问题 Extra ChatGPT

为什么 CSS 中的“光标:指针”效果不起作用

我为 .about > span 设置了 cursor: pointer,但是当我的鼠标悬停在 <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;
}
#firstdiv 中删除 z-index:-2 并查看 why you shouldn't just paste a link to your demo page
奇怪地和我一起工作,会是 z-index,这个故障发生在哪个浏览器中? +1 @MarcelGwerder
下面的答案为我解决了这个问题,但关闭并重新打开了 chrome。

T
ThinkingInBits

我把我的 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 有帮助!
我现在所有的浏览器都遇到了同样的问题,而 Photoshop 是罪魁祸首!来自 Adobe 的糟糕编码!感谢您提交此答案,因为它正在驱使我转弯!
在我所有多年的编码中,这是我遇到过的最奇怪的错误。感谢您的修复!
T
TylerH

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


击球手是 ==> :指针事件:无; <=== 不需要 Z-index
@lalitbhakuni 这是不正确的,实际上阻止了光标完全改变......
S
Shadow The Kid Wizard

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

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

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

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

或者直接在元素中:

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

指针事件:自动修复光标指针,但它不再触发点击时的预期动作
0
0xcaff

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

https://i.stack.imgur.com/yNpBf.png


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

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


或者基于 IE5 的混合浏览器......就像在一些大公司中使用的那样。我真的为此被否决了3次!?真的没有留下深刻的印象,对 Stack Overflow 感到羞耻。
T
Thomas
position: relative;
z-index: 2;
cursor: pointer

为我工作。


M
MD KAMRUL HASAN SHAHED

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

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

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

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

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


B
Brad Peabody

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


J
JuZDePeche

我在使用 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;
}

f
franiis

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


R
Rijo

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


L
Lan

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

而不是反斜杠:

光标: url("C:\Users\Ken\projects\JavascriptGames\images\bird.png"), auto;

我将其更改为正斜杠:

cursor: url("C:/Users/Ken/projects/JavascriptGames/images/bird.png"), auto;

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


S
Saber

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


z
zMan

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

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

删除它后,cursor: pointer 按预期工作。


d
dealwap

删除父 z-index 值为我解决了这个问题。


M
Mostafa

无论你做什么,光标都不会改变,除非你将样式设置为 :hover

除了您已经拥有的元素类之外,这还需要如下所示。

.about > span:hover {
    cursor:pointer;
}

W
Wouter Vandevelde

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


c
chandrapal3000

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

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

M
Machavity

将元素定位为相对,然后使用 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; 
}