首页  >  问答  >  正文

在class='btn'的元素之后添加"<",并在元素被:hover:after之后替换原始内容

在 ':hover' 上的输出始终是

“1IPSUM”

如果我决定添加一个 ':before' 元素,内容为 'content:"1"',它只会添加一个 1,使得在 hover 之前的输出为 "11"

我想要的输出是:

在 'hover' 上的输出为 "IPSUM"

小提琴:https://jsfiddle.net/Zxdfvv/u9xgoks3/

.btn:hover:after {
  padding-bottom: 200px;
  content:"IPSUM";
}
<div class='btn'>1</div>

P粉236743689P粉236743689376 天前640

全部回复(2)我来回复

  • P粉275883973

    P粉2758839732023-09-10 10:42:23

    谢谢你,EmSixTeen!我在学校,所以无法登录我的账户。伪元素在不同的浏览器上是否能够正常工作?

    回复
    0
  • P粉715304239

    P粉7153042392023-09-10 09:12:42

    您正在为伪元素设置content:,而不是为元素本身设置。这就是为什么当您向::before添加内容时,它会显示在元素文本之前,然后如果您使用::after,它会显示在元素文本之后。

    您可以使用伪元素来设置初始文本。所以您可以这样做:

    html,
    body {
      margin: 0;
      padding: 0;
      height: 100%;
    }
    
    body {
      background-color: #006400;
      display: grid;
      place-items: center;
    }
    
    main {
      padding: 1em;
      display: flex;
      flex-direction: column;
      gap: 1em;
    }
    
    .btn {
      border: 3px solid black;
      text-align: center;
      border-radius: 20px;
      letter-spacing: 2px;
      padding: 1em 1.5em;
      background-color: #ffd700;
      color: black;
      font-family: monospace;
      display: inline-block;
      margin: 1em;
    }
    
    .btn::after {
      display: inline-block;
    }
    
    .btn--empty::after {
      content: "";
    }
    
    .btn--pseudo::after {
      content: "lorem";
    }
    .btn:hover::after {
      content: "ipsum";
    }
    <html>
    
    <body>
      <main>
      
        <a class="btn btn--empty" href="#"></a>
    
        <a class="btn btn--pseudo" href="#"></a>
    
      </main>
    </body>
    
    </html>

    回复
    0
  • 取消回复