【发布时间】:2021-02-04 21:24:48
【问题描述】:
我正在使用 Angular 框架进行编码。选择特定输入 (cvv) 后,我需要旋转元素 (div) (flip-card-inner)。
我不能使用 :focus,因为输入元素不是我需要旋转的元素的兄弟或子元素。
这必须以编程方式完成吗?任何帮助将不胜感激。
<div class="container">
<p-card>
<div class="flip-card">
<div class="flip-card-inner">
<div class="flip-card-front">
<img
src="../../../../../assets/creditCard.svg"
alt="Avatar"
style="width: 50px; height: 50px; align-self: flex-end"
/>
<p>{{ cardNumber }}</p>
</div>
<div class="flip-card-back">
<h1>John Doe</h1>
<p>Architect & Engineer</p>
<p>We love that guy</p>
</div>
</div>
</div>
<div class="input-container">
<label for="cardnumber">card number</label>
<input type="text" pInputText [(ngModel)]="cardNumber" />
</div>
<div class="input-container">
<label for="cardholder">card holder</label>
<input type="text" pInputText [(ngModel)]="cardHolder" />
</div>
<div class="expiry-container">
<div class="input-expiry">
<label for="month">month</label>
<input style="width: 65px" type="text" pInputText [(ngModel)]="month" />
</div>
<div class="input-expiry">
<label for="year">year</label>
<input style="width: 65px" type="text" pInputText [(ngModel)]="year" />
</div>
<div class="input-expiry">
<label for="cvv">cvv</label>
<input
class="cvv"
style="width: 65px"
type="text"
pInputText
[(ngModel)]="cvv"
/>
</div>
</div>
</p-card>
</div>
css
.container{
padding: 50px;
}
/* The flip card container - set the width and height to whatever you want. We have added the border property to demonstrate that the flip itself goes out of the box on hover (remove perspective if you don't want the 3D effect */
.flip-card {
background-color: transparent;
width: 440px;
height: 280px;
border: 1px solid #f1f1f1;
perspective: 1000px; /* Remove this if you don't want the 3D effect */
}
/* This container is needed to position the front and back side */
.flip-card-inner {
position: relative;
width: 100%;
height: 100%;
text-align: center;
transition: transform 0.8s;
transform-style: preserve-3d;
}
/* Do an horizontal flip when you move the mouse over the flip box container */
/* .flip-card:hover .flip-card-inner{
transform: rotateY(180deg);
} */
/* Position the front and back side */
.flip-card-front, .flip-card-back {
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden; /* Safari */
backface-visibility: hidden;
}
/* Style the front side (fallback if image is missing) */
.flip-card-front {
background-color: #bbb;
color: black;
display: flex;
justify-content: flex-end;
}
/* Style the back side */
.flip-card-back {
background-color: dodgerblue;
color: white;
transform: rotateY(180deg);
}
.input-container{
display: flex;
flex-direction: column;
margin-bottom: 20px;
margin-right: 10px;
}
.expiry-container{
display: flex;
flex-direction: row;
margin-bottom: 20px;
}
.input-expiry{
display: flex;
flex-direction: column;
margin-right: 15px;
}
input:focus {
background-color: lightgray;
}
【问题讨论】:
标签: html css angular typescript css-transforms