Как подвинуть только правую сторону border
У меня есть border, который при изменении width меняет размер справа и слева.
Мне нужно что бы текст с border плавно выплывал из IMG, для этого надо как то его разширить только вправо, что что бы левая сторона оставалась на месте, border-right-width не работает
сейчас код показывает img и сзади него идет border в нем текст с номером телефона, это готовый вариант, нужно что бы такой был при наведении, а изначально был только img без border'а сзади
Надеюсь понятно
body {
margin: 0;
padding: 0;
background-color: #121212;
}
.Header {
display: flex;
border: 3px solid #292929;
height: 85px;
background: #292929;
color: white;
overflow: hidden;
clear: both;
justify-content: center;
align-items: center;
border-bottom-left-radius: 1.5em;
border-bottom-right-radius: 1.5em;
}
.logot {
display: inherit;
margin-right: 1%;
}
.headH1 {
display: inherit;
margin-right: 25%;
}
.buttonHeader {
margin-left: 25%;
padding: 0.5em 2em;
font-size: 1.25em;
background-color: white;
color: black;
border: none;
transition: 0.2s;
border-radius: 10px;
margin-bottom: 0px;
}
.imgPhone1 {
border: 2px solid #00fbff;
border-radius: 100%;
background: #00fbff;
border-width: 1px;
z-index: 1000;
}
.numberOfPhone {
position: absolute;
margin-left: 10%;
border: 0px solid #00696b;
color: white;
border-top-right-radius: 20px;
border-bottom-right-radius: 20px;
width: 145px;
overflow: hidden;
white-space: nowrap;
background: #00696b;
border-width: 12.9px;
}
.buttonHeader:hover {
padding: 0.5em 2em;
font-size: 1.25em;
background-color: #00fbff;
color: rgb(255, 255, 255);
border: none;
border-radius: 10px;
margin-bottom: 10px;
}
<div class="Header">
<img src="Img/logo.png" height="50px" class="logot">
<h1 class="headH1">My-Giro</h1>
<img src="Img/phone__1.svg" height="40px" class="imgPhone1">
<span class="numberOfPhone"> +7 (999) 999 99-99</span>
<button class="buttonHeader">Заказать звонок</button>
</div>
Нужно двигать бордер у span
Ответы (2 шт):
Автор решения: LureRed
→ Ссылка
у меня получилось следующее, переделал верстку немного и css но смысл должен быть понятен
header {
width:100%;
height:5rem;
background-color: black;
display: flex;
flex-direction: row;
justify-content: space-between;
color: white;
}
.logo {
display: flex;
flex-direction: row;
align-items: center;
}
.phone {
display: flex;
flex-direction: row;
align-items: center;
width: 30rem;
position: relative;
}
.buttonHeader {position: absolute; right: 1rem;}
.phone img, .numberOfPhone {position: absolute;}
.phone img {z-index: 2;}
.numberOfPhone {z-index: 1; opacity: 0; left: -5rem;}
.buttonHeader:hover ~ .numberOfPhone {opacity: 1; transform: translateX(5rem);}
<header>
<div class="logo">
<img src="Img/logo.png" height="50px" class="logot">
<h1 class="headH1">My-Giro</h1>
</div>
<div class="phone">
<img src="Img/phone__1.svg" height="40px" class="imgPhone1">
<div class="buttonHeader">Заказать звонок</div>
<span class="numberOfPhone"> +7 (999) 999 99-99</span>
</div>
</header>
Автор решения: LureRed
→ Ссылка
все тоже самое за исключением нескольких моментов
header {
width:100%;
height:5rem;
background-color: black;
display: flex;
flex-direction: row;
justify-content: space-between;
color: white;
}
.logo {
display: flex;
flex-direction: row;
align-items: center;
}
.phone {
display: flex;
flex-direction: row;
align-items: center;
width: 30rem;
position: relative;
}
.buttonHeader {position: absolute; right: 1rem;}
.phone img, .numberOfPhone {position: absolute;}
.phone img {z-index: 2;}
.numberOfPhone {z-index: 1; width: 0; left: 0; opacity: 0; border:1px solid red;}
.buttonHeader:hover ~ .numberOfPhone {overflow: hidden; white-space: nowrap; animation: scale 1s linear; animation-fill-mode: forwards;}
@keyframes scale {
0% {width: 0px; left: 0; opacity: 0;}
100% {opacity: 1; width:200px; opacity: 1; overflow: hidden; }
}
<body>
<header>
<div class="logo">
<img src="Img/logo.png" height="50px" class="logot">
<h1 class="headH1">My-Giro</h1>
</div>
<div class="phone">
<img src="Img/phone__1.svg" height="40px" class="imgPhone1">
<div class="buttonHeader">Заказать звонок</div>
<span class="numberOfPhone"> +7 (999) 999 99-99</span>
</div>
</header>
</body>