В то время как чистое решение css потребовало бы, чтобы вы просто добавили один элемент диапазона внутри каждого тега привязки, например:
<span class="icon_title">Github</span>
со следующим css:
.bubble .icon_title{
display:none;
}
.bubble:hover .icon_title{
display:initial;
}
.bubble:hover .icon{
display:none;
}
Но если вы действительно хотите использовать атрибут title для каждого тега привязки, вы также можете go для этого javascript aproach:
var bubbles = document.querySelectorAll('.bubble a'); // Get all anchor tags inside bubbles in an array
for(const bubble of bubbles){ // Loop through each bubble
let newSpan = document.createElement('span'); //create a bew span element
newSpan.innerHTML = bubble.title; // Add the title of each anchor tag to the span element
newSpan.classList.add('icon_title') // Give your new span element a class
bubble.appendChild(newSpan); // Add the new span element to your bubble
}
* Обратите внимание, что вам все равно нужно добавить css, но создание каждого элемента span внутри HTML больше не требуется, так как это делается JS с соответствующим заголовком.
Рабочий фрагмент (значки font awesome не загружаются должным образом, но они должны быть ваш код):
var bubbles = document.querySelectorAll('.bubble a'); // Get all anchor tags inside bubbles in an array
for(const bubble of bubbles){ // Loop through each bubble
let newSpan = document.createElement('span'); //create a bew span element
newSpan.innerHTML = bubble.title; // Add the title of each anchor tag to the span element
newSpan.classList.add('icon_title') // Give your new span element a class
bubble.appendChild(newSpan); // Add the new span element to your bubble
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(48px + 2vmin);
color: white;
}
.bubble {
display: inline-block;
background-color: transparent;
border: 3px solid gray;
margin: 15px;
border-radius: 50%;
}
a {
display: table-cell;
vertical-align: middle;
text-align: center;
height: 100px;
width: 100px;
}
.bubble .icon_title{
display:none;
}
.bubble:hover .icon_title{
display:initial;
}
.bubble:hover .icon{
display:none;
}
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<header className="App-header">
<div>
<span class="bubble">
<a title="GitHub" href="https://github.com/{username}" target="_blank " rel="noopener noreferrer">
<i class="icon fab fa-github fa-2x"></i>
</a>
</span>
<span class="bubble">
<a title="LinkedIn" href="https://www.linkedin.com/in/{username}/" target="_blank " rel="noopener noreferrer">
<i class="icon fab fa-linkedin fa-2x"></i>
</a>
</span>
<span class="bubble">
<a title="Resume" href="resume.pdf" target="_blank " rel="noopener noreferrer">
<i class="icon fab fa-linkedin fa-2x"></i>
</a>
</span>
<span class="bubble">
<a title="Email" href="mailto:{email}" target="_blank " rel="noopener noreferrer">
<i class="icon fas fa-envelope fa-2x"></i>
</a>
</span>
</div>
</header>