HTML и CSS: Текст на кнопке

#html #css #button

Вопрос:

У меня есть кнопка в социальных сетях на домашней странице моего личного веб-сайта. На самом деле это работает довольно хорошо, но когда я пытаюсь добавить текст на кнопку (например, СЛЕДОВАТЬ), текстовый слой делает его недоступным. В моем коде нет задействованной функции JS. Как я могу решить эту проблему?

Заранее спасибо.

Правка: добавлен CSS-код.

Правка №2: Спасибо за все ответы. Однако коды <button> тегов и JS не сработали для меня в этой ситуации. Наконец-то мне удалось уменьшить область текстового слоя, удалив height и width свойства из .social-text класса, и теперь текст не влияет на функциональность кнопок. Он по-прежнему перекрывает кнопку, но на минимальной площади и больше не вызывает проблем. Я добавляю скриншот фиксированной кнопки. Счастливого кодирования!

сс

HTML:

          <div>
       
         <ul id="menu">
        
             <a class="menu-button icon-plus" href="#menu" title="Show navigation"></a>
             <a class="menu-button icon-minus" href="#0" title="Hide navigation"></a>
             
             <li class="menu-item">
                 <a href="https://www.instagram.com" target="_blank">
                     <span class="fa fa-instagram"></span>
                 </a>
             </li>
             <li class="menu-item">
                 <a href="https://www.facebook.com" target="_blank">
                     <span class="fa fa-facebook"></span>
                 </a>
             </li>
             <li class="menu-item">
                 <a href="https://twitter.com" target="_blank">
                     <span class="fa fa-twitter"></span>
                 </a>
             </li>
             <li class="menu-item">
                 <a href="https://linkedin.com/in" target="_blank">
                     <span class="fa fa-linkedin"></span>
                 </a>
             </li>
         </ul>
         <span class="social-text">FOLLOW</span>
         </div>
 

CSS:

     #menu {
     text-align: center;
     width: 11vw;
     height: 11vw;
     position: absolute;
     left: 50%;
     top: 23vw;
     margin-left: 23vw;
     margin-top: 6vw;
     list-style: none;
     font-size: 2.5vw;
   }

    .menu-button {
     opacity: 0;
     z-index: -1;
    }
         
    .menu-button {
      width: 11vw;
      height: 11vw;
      position: absolute;
      left: 50%;
      top: 50%;
      margin: -5.8vw 0 0 -5.8vw;
      border-radius: 50%;
      background: #424242;
      background-size: 100%;
      overflow: hidden;
      text-decoration: none;
     }

     #menu:not(:target)>a:first-of-type,
     #menu:target>a:last-of-type {
      opacity: 1;
      z-index: 1;
     }

     #menu:not(:target)>.icon-plus:before, 
     #menu:target>.icon-minus:before {
       opacity: 1;
     }

     .menu-item {
        width: 5.5vw;
        height: 5.5vw;
        position: absolute;
        left: 55%;
        line-height: 1vw;
        top: 70%;
        margin: -3.9vw 0 0 -3.9vw;
        border-radius: 50%;
        background-color: #424242;
        transform: translate(0vw, 0vw);
        transition: transform 500ms;
        z-index: -2;        
        transition: .5s;
       }

       .menu-item:hover{
         opacity: 0.5;
         box-shadow: 0 0.4vw 0.8vw black; 
        }


      .menu-item a {
         color: #fff;
         position: relative;
         top: 30%;
         left: 0;
         text-decoration: none;
       }

      #menu:target>.menu-item:nth-child(6) {
        transform: rotate(60deg) translateY(-11.7vw) rotate(300deg);
        transition-delay: 0s;
      }

      #menu:target>.menu-item:nth-child(5) {
        transform: rotate(20deg) translateY(-12.1vw) rotate(-20deg);
        transition-delay: 0.1s;
      }

     #menu:target>.menu-item:nth-child(3) {
       transform: rotate(-20deg) translateY(-12.1vw) rotate(20deg);
       transition-delay: 0.2s;
     }

     #menu:target>.menu-item:nth-child(4) {
       transform: rotate(-60deg) translateY(-11.7vw) rotate(60deg);
       transition-delay: 0.3s;
     }

     .social-text {
       text-align: center;
       width: 11vw;
       height: 11vw;
       position: absolute;
       left: 50%;
       top: 23vw;
       margin-left: 23vw;
       margin-top: 6vw;
       z-index: 2;

    } 
 

Комментарии:

1. Вы пробовали использовать a <button> ?

2. Да, завернул HTML-код с помощью <кнопки><кнопки></кнопки>. Не сработало.

3. Вы хотите, чтобы кнопка находилась внутри круга?

4. Да, именно на кнопке.

5. Я обновил свой ответ, это ожидаемый результат?

Ответ №1:

Используйте тег кнопки в вашем промежутке, т. е.,

 <span><button class="social-text">Follow</button></span>
 

или либо напрямую использовать <button> , не нужно добавлять <span> . Вот идет JS:-

     const btn=document.querySelector('.social-text');
btn.addEventListener("click",function(){
    console.log("Followed");
})
 

Ответ №2:

Вы можете попробовать использовать <button>

 const btn = document.getElementById("btn-follow");

btn.addEventListener("click", () => {
  console.log("followed");
}); 
 <button id="btn-follow">FOLLOW</button> 

Или вы можете добавить a role="button" в свой тег span

 const span = document.getElementById("span-follow");

span.addEventListener("click", () => {
  console.log("followed");
}); 
 <span id="span-follow" role="button">FOLLOW</span> 

Если вы хотите создать кнопку «Круг», вы можете создать круг с помощью a <div> и использовать его как <button>

 const btn = document.getElementById("btn-follow");

btn.addEventListener("click", () => {
  console.log("followed");
}); 
 .social-circle {
  text-align: center;
  width: 11vw;
  height: 11vw;
  line-height: 11vw;
  border-radius: 50%;
  background: #F77;
}

.social-text {
  color: #fff;
}

.cursor-pointer {
  cursor: pointer;
} 
 <div class="social-circle cursor-pointer" id="btn-follow" role="button">
  <span class="social-text" role="button">FOLLOW</span>
</div> 

Комментарии:

1. Спасибо. Попробовал ваше второе решение. Завернул часть JS с тегом <script> в <script><head>. Но когда текст перекрывает кнопку, код прерывается.

Ответ №3:

Вы не использовали тег кнопки. Таким образом, отображается только текст «Следовать». Попробуй это.

 <button class="social-text">Follow</button>