Css при наведении курсора на изображение с текста - PullRequest
0 голосов
/ 02 января 2019

Обдумывал этот вопрос более часа, мне нужна ваша помощь, ребята, я ничего не мог найти в интернете. Я хочу, чтобы при наведении курсора мыши на изображение изменялось на текст, например, «домой», а при наведении мыши оно снова изменялось на изображение. Но на веб-странице есть несколько ссылок, например, на навигационную панель - Главная / О нас / Контакты ...

nav {
  font-size: 40px;
}

nav:hover {
  content: "home"
}
<!DOCTYPE html>
<html>

  <head>

    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  </head>

  <body>

    <nav>
      <a href="#" class="fa fa-home"></a>
    </nav>


  </body>

</html>

Ответы [ 4 ]

0 голосов
/ 02 января 2019

Как вы, вероятно, можете сказать, CSS - это путь для этого, но, как говорится, если вы хотели сделать это с помощью javascript, вы могли бы использовать что-то вроде этого:

HTML

<html>
<head>
<title>Image/Text Switching</title>
</head>
  <div>
    <h1>
      Image/Text Switching
    </h1>
    <div>    
    <div id="container">
        <img id="imgToReplace" src="https://via.placeholder.com/150"/>
        <div id="textContainer"></div>
    </div>
    </div>    
  </div>
</html>

JS

var replacementText = "Home";

var imgElement =  document.getElementById('imgToReplace');
var textContent = document.createTextNode(replacementText);
var textContainer = document.getElementById('textContainer');
var container = document.getElementById('container');

container.addEventListener("mouseover", function(){
    imgElement.style.display = "none";
  textContainer.appendChild(textContent); 
});
container.addEventListener("mouseout", function(){
    imgElement.style.display = "unset";
    textContainer.innerHTML = "";
});

CSS

#container{
  border: 1px solid black;
  display: inline-block;
  min-height: 150px;
  min-width: 150px;
}

Одна оговорка с этимподход заключается в том, что элемент #textContainer и элемент #imgToReplace должны иметь одинаковую высоту и ширину.Если вы решили пойти по этому пути, возможно, используйте js, чтобы установить высоту и ширину созданного элемента #textContainer.

Скрипку можно найти здесь .

0 голосов
/ 02 января 2019

Вы можете использовать nav:hover::after в качестве селектора для текста (т.е. псевдоэлемента) с position: absolute и белым фоном, чтобы скрыть / скрыть значок (и position: relative на самом элементе nav для сделайте это якорем для абсолютной позиции)

nav {
  font-size: 40px;
  position: relative;
}

nav:hover:after {
  content: "home";
  position: absolute;
  top: 0;
  left: 0;
  background: #fff;
}
<head>

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>

<body>

  <nav>
    <a href="#" class="fa fa-home"></a>
  </nav>


</body>
0 голосов
/ 02 января 2019

кстати ...?

nav { font-size: 40px }
nav span { display: none }
nav:hover span { display:inline }
<head>

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>

<body>

<nav>
  <a href="#" class="fa fa-home"></a>
  <span>HOME</span>
</nav>


</body>
0 голосов
/ 02 января 2019

Это более простой и понятный подход к задаче: он включает показ и скрытие различных элементов вместо того, чтобы редактировать тип и формат элемента во время выполнения:

HTML

<!DOCTYPE html>
<html>

  <head>

    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  </head>

  <body>

    <nav>
      <a href="#" class="fa fa-home"></a>
      <span>text</span>
    </nav>


  </body>

</html>

CSS

nav {
  font-size: 40px;
}

nav span {
  display: none;
}

nav:hover a {
 display: none;
}

nav:hover span {
 display: inline-block;
}

https://jsfiddle.net/b2ycwjtu/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...