 
      
    CSS
    11
    Вклад в тег
    
      
      
    
  
  
* {
margin: 0;
padding: 0;
text-decoration: none;
}.link {
posititon: relative;
}
.link::before {
content: "";
positioan: absolute;
top: -10px;
left: 0;
width: 100%;
height: 2px;
background-color: red;
opacity: 0;
transform: translate-y(-10px);
transition: 0.3s all ease;
}
.link:hover::before {
opacity: 1;
transform: translate-y(0);
}.title {
width: 300px
}.title {
width: 100%;
max-width: 300px;
}function toISODate(milliseconds) {
    var date = new Date(milliseconds)
    var stap = 24 // Прибавляем к дате число смены пасспорта, допустим в 45 лет
    var y = date.getFullYear() + stap
    var m = date.getMonth() + 1
    var d = date.getDate()
    m = m < 10 ? '0' + m : m
    d = d < 10 ? '0' + d : d
    return [y, m, d].join('-')
}
var date1 = new Date()
var date2 = new Date(2001, 11, 30)
var timeSec = Math.abs(date1.getTime() - date2.getTime()) // Выясняем сколько лет парню
var timeSec2 = Math.abs(date2.getTime() + timeSec) // Прибавляем к его возрасту современную дату для вычисления сколько ему лет на сегодня
let divDate = document.createElement('div')
divDate.innerHTML = `Ближайшая смена пасспорта : ${toISODate((milliseconds = timeSec2))}`
document.body.appendChild(divDate)