
Implementado um efeito de alternância para a página de login e registro. Quando o usuário clica no botão de login ou registro, uma sobreposição aparecerá contendo um formulário. O usuário pode inserir o nome de usuário e a senha no formulário e, em seguida, clicar no botão enviar para efetuar login. entre ou cadastre-se. Quando o usuário clica no botão Voltar, a sobreposição fica oculta e o formulário de login ou registro é exibido na área principal. Esse efeito pode melhorar a experiência do usuário e facilitar o login ou o registro dos usuários.
<div class="contêiner">
<!-- Cadastre-se -->
<div class="container-form container-signup">
<form action="#" class="form" id="form1">
<h2 class="form-title">Registrar uma conta</h2>
<input type="text" placeholder="Usuário" class="input" />
<input type="email" placeholder="Email" class="input" />
<input type="senha" placeholder="Senha" class="input" />
<button type="button" class="btn">Clique para registrar</button>
</form>
</div>
<!-- Entrar -->
<div class="container-form container-signin">
<form action="#" class="form" id="form2">
<h2 class="form-title">Bem-vindo ao login</h2>
<input type="email" placeholder="Email" class="input" />
<input type="senha" placeholder="Senha" class="input" />
<a href="#" class="link">Esqueceu sua senha?</a>
<button type="button" class="btn">Login</button>
</form>
</div>
<!--Parte de sobreposição-->
<div class="container-overlay">
<div class="sobreposição">
<div class="overlay-panel overlay-left">
<button class="btn" id="signIn">
Já tem uma conta? Faça login diretamente</button>
</div>
<div class="overlay-panel overlay-right">
<button class="btn" id="signUp">
Se você não possui uma conta, clique em Registrar</button>
</div>
</div>
</div>
</div> corpo {
altura: 100vh;
background: #e7e7e7 url("./img/background.jpg") centro sem repetição corrigido;
tamanho do fundo: capa;
filtro de pano de fundo: desfoque (5px);
exibição: flexível;
justificar-conteúdo: centro;
alinhar itens: centro;
}
/* Estilo da div do corpo*/
.contêiner {
cor de fundo: #e7e7e7;
raio da borda: 0,7rem;
sombra da caixa: 0 0,9rem 1,7rem rgba (0, 0, 0, 0,25),
0 0,7rem 0,7rem rgba(0, 0, 0, 0,22);
altura: 420px;
largura máxima: 750px;
estouro: oculto;
posição: relativa;
largura: 100%;
}
/* Parte da caixa de login e registro*/
.container-form {
altura: 100%;
posição: absoluta;
superior: 0;
transição: todos os 0,6s de facilidade de entrada;
}
/* O nível padrão da caixa de login é alto*/
.container-signin {
esquerda: 0;
largura: 50%;
índice z: 2;
}
/* Caixa de registro - o nível padrão é baixo - transparência 0 */
.container-inscrição {
esquerda: 0;
opacidade: 0;
largura: 50%;
índice z: 1;
}
/* estilo do formulário*/
.forma {
cor de fundo: #e7e7e7;
exibição: flexível;
alinhar itens: centro;
justificar-conteúdo: centro;
direção flexível: coluna;
preenchimento: 0 3rem;
altura: 100%;
alinhamento de texto: centro;
}
.form-title {
peso da fonte: 300;
margem: 0;
margem-inferior: 1,25rem;
}
.link {
cor: #333;
tamanho da fonte: 0,9rem;
margem: 1,5rem 0;
decoração de texto: nenhuma;
}
.entrada {
largura: 100%;
cor de fundo: #fff;
preenchimento: 0,9rem 0,9rem;
margem: 0,5rem 0;
fronteira: nenhuma;
esboço: nenhum;
}
.btn{
cor de fundo: #f25d8e;
sombra da caixa: 0 4px 4px rgba (255, 112, 159, 0,3);
raio da borda: 5px;
cor: #e7e7e7;
fronteira: nenhuma;
cursor: ponteiro;
tamanho da fonte: 0,8rem;
peso da fonte: negrito;
espaçamento entre letras: 0,1rem;
preenchimento: 0,9rem 4rem;
transformação de texto: maiúscula;
transição: transformação com facilidade de 80ms;
}
.form>.btn {
margem superior: 1,5rem;
}
.btn:ativo {
transformar: escala(0,95);
}
/* ---------- Estilo da peça de sobreposição ------------- */
.container-overlay {
altura: 100%;
esquerda: 50%;
estouro: oculto;
posição: absoluta;
superior: 0;
transição: transformação 0,6s de facilidade de entrada;
largura: 50%;
índice z: 100;
}
.sobreposição {
largura: 200%;
altura: 100%;
posição: relativa;
esquerda: -100%;
background: url("./img/background.jpg") centro sem repetição corrigido;
tamanho do fundo: capa;
transição: transformação 0,6s de facilidade de entrada;
transformar: traduzirX(0);
}
.painel de sobreposição {
altura: 100%;
largura: 50%;
posição: absoluta;
superior: 0;
exibição: flexível;
justificar-conteúdo: centro;
alinhar itens: centro;
direção flexível: coluna;
transformar: traduzirX(0);
transição: transformação 0,6s de facilidade de entrada;
}
.overlay-esquerda {
transformar: traduzirX(-20%);
}
.overlay-direita {
direita: 0;
transformar: traduzirX(0);
}
/* A posição da sobreposição quando o design é ativado*/
.panel-ativo .overlay-esquerdo {
transformar: traduzirX(0);
}
.panel-ativo .container-overlay {
transformar: traduzirX(-100%);
}
.panel-ativo .overlay {
transformar: traduzirX(50%);
}
/*Define a localização e a transparência da camada de registro de login quando ativada*/
.panel-ativo .container-signin {
transformar: traduzirX(100%);
}
.panel-ativo .container-signup {
opacidade: 1;
índice z: 5;
transformar: traduzirX(100%);
} corpo {
height: 100vh; /* Define a altura da página como a altura da janela de visualização*/
background: #e7e7e7 url("./img/background.jpg") center no-repeat fixa /* Define o fundo da página como cinza e adiciona uma imagem de fundo*/
background-size: cover /* Define o tamanho da imagem de fundo para cobrir toda a página*/
background-filter: blur(5px); /* Define o efeito de desfoque de fundo*/
display: flex /* Define a página como uma caixa flexível*/
justify-content: center /* Define o alinhamento do eixo principal como centralizado */
align-items: center /* Define o alinhamento do eixo cruzado como centralizado */
} Este código define o estilo geral da página, incluindo altura, plano de fundo, borda, sombra, etc. Entre eles, height: 100vh; significa que a altura da página é a altura da janela de visualização, background: #e7e7e7 url("./img/background.jpg") center no-repeat fixed; é adicionado, background-size: cover; indica que a imagem de fundo é dimensionada para cobrir a página inteira backdrop-filter: blur(5px);
.container-form {
height: 100% /* Defina a altura do contêiner como 100% */
position: absoluto /* Define o container a ser posicionado de forma absoluta*/
top: 0 /* Define a distância do topo do container até 0 */
transição: todos os 0,6s de atenuação /* definem o efeito de transição*/
}
.container-signin {
left: 0; /* Define a caixa de login como 0 a partir da esquerda */
width: 50% /* Define a largura da caixa de login como 50% */
z-index: 2; /* Define o nível da caixa de login como 2 */
}
.container-inscrição {
left: 0 /* Define a distância da caixa de registro à esquerda como 0 */
opacity: 0; /* Defina a transparência da caixa de registro como 0 */
width: 50% /* Define a largura da caixa de registro como 50% */
z-index: 1; /* Define o nível da caixa de registro como 1 */
} Este código define o estilo das caixas de login e cadastro, incluindo posição, transparência, nível, etc. Entre eles, height: 100%; significa que a altura do contêiner é 100%, position: absolute; significa que o contêiner está posicionado de forma absoluta, top: 0; significa que a distância do topo do contêiner é 0 transition: all 0.6s ease-in-out; significam o efeito de transição.
.forma {
background-color: #e7e7e7; /* Define o fundo do formulário como cinza*/
display: flex /* Define o formulário como uma caixa flexível*/
align-items: center /* Define o alinhamento do eixo cruzado como centralizado */
justify-content: center /* Define o alinhamento do eixo principal como centralizado */
flex-direction: column; /* Define a direção do eixo principal como a direção vertical*/
padding: 0 3rem /* Define as margens internas do formulário como 3rem à esquerda e à direita */
height: 100% /* Define a altura do formulário para 100% */
text-align: center /* Define o alinhamento do texto do formulário ao centro*/
}
.form-title {
font-weight: 300 /* Defina a espessura da fonte do título como 300 */
margin: 0; /* Define a margem do título como 0 */
margin-bottom: 1,25rem /* Define a margem inferior do título para 1,25rem */ }
.link { color: #333; /* Defina a cor do link como preto/ font-size: 0,9rem / Defina o tamanho da fonte do link como 0,9rem / margin: 1,5rem 0; rem para a parte superior e inferior, esquerda e direita Cada 0 / text-decoration: none / Definir links para remover sublinhados*/ }
.input { width: 100%; /* Define a largura da caixa de entrada como 100% / background-color: #fff; / Define o fundo da caixa de entrada como branco / padding: 0.9rem 0.9rem; superior e inferior 0,9rem, 0,9rem à esquerda e direita / margem: 0,5rem 0 / Defina a margem externa da caixa de entrada como 0,5rem na parte superior e inferior, 0 à esquerda e à direita; / border: none; / Define a caixa de entrada para não ter borda / contorno: none / Define a caixa de entrada para não ter contorno*/ }
.btn { background-color: #f25d8e; /* Defina o fundo do botão como rosa/ box-shadow: 0 4px 4px rgba(255, 112, 159,.3); 5px / Defina o raio do canto do botão como 5px / color: #e7e7e7 / Defina a cor do texto do botão como branco / border: none / Defina o botão como sem borda/cursor: ponteiro / Defina o botão como tipo de ponteiro / tamanho da fonte: 0,8rem / Defina o tamanho da fonte do botão como 0,8rem / peso da fonte: negrito; peso para negrito / espaçamento entre letras: 0,1rem / Defina o espaçamento entre letras do botão para 0,1rem / preenchimento: 0,9rem 4rem; Defina a margem interna do botão como 0,9rem para a parte superior e inferior, e 4rem para a esquerda e a direita / text-transform: uppercase / Defina o texto do botão como letras maiúsculas / transição: transform 80ms easy-in; o efeito de transição do botão*/ }
.form>.btn { margin-top: 1.5rem /* Define a margem superior do botão para 1.5rem */ }
.btn:active { transform: scale(0.95 /* Define o efeito de escala quando o botão é ativado*/}); Este código define o estilo dos formulários de login e registro, incluindo plano de fundo, fontes, caixas de entrada, botões, etc. Entre eles, background-color: #e7e7e7; significa que o fundo do formulário é cinza, display: flex; significa que o formulário é uma caixa flexível, align-items: center; significa que o alinhamento do eixo cruzado está centralizado, justify-content: center; significa que o alinhamento do eixo principal está centralizado, flex-direction: column; significa que a direção do eixo principal é vertical, padding: 0 3rem; significa que a margem interna do formulário é 3rem à esquerda e à direita, height: 100%; significa que a altura do formulário é 100%, text-align: center; significa que o alinhamento do texto do formulário está centralizado.
.container-overlay {
altura: 100%;
/* Definir a altura do container como 100% / left: 50% / Definir a distância do container à esquerda como 50% / overflow: hidden / Definir a parte overflow do container a ser ocultada /posição; : absoluto / Definir o container a ser posicionado de forma absoluta / topo: 0 / Definir a distância do container do topo até 0 / transição: transformar 0,6s de facilidade de entrada / Definir o efeito de transição / largura: 50%; ; /Defina a largura do container para 50% /z-index: 100; Defina o nível do contêiner como 100 */
}
.sobreposição {
largura: 200%;
/* Definir a largura da sobreposição como 200% / altura: 100% / Definir a altura da sobreposição como 100% / posição: relativa / Definir a sobreposição como posicionamento relativo / esquerda: -100%; as -100% / background: url("./img/background.jpg") no-repeat center fixo / Defina o fundo da sobreposição como imagem de fundo e alinhe-o no centro / background-size: cover /; Defina o tamanho do fundo da sobreposição para cobrir toda a página/transição: transforme 0,6s de facilidade de entrada/defina o efeito de transição/transforme: traduzX(0);
}
.painel de sobreposição {
altura: 100%;
/* Define a altura do painel de sobreposição como 100% / largura: 50% / Define a largura do painel de sobreposição como 50% / posição: absoluto / Define o painel de sobreposição para ser posicionado de forma absoluta / superior: 0; / Definir a distância do topo do painel de sobreposição é 0 / display: flex / Definir o painel de sobreposição como uma caixa flexível / justificar-content: center / Definir o alinhamento do eixo principal como centralizado/align-items: center /; Defina o alinhamento do eixo cruzado como centralizado/ flex-direction: coluna / Definir a direção do eixo principal como a direção vertical / transform: translateX(0); efeito de transição*/
}
.overlay-esquerda {
transformar: traduzirX(-20%);
/* Define a posição do painel de sobreposição esquerdo para mover 20% para a esquerda */
}
.overlay-direita {
direita: 0;
/* Defina a distância do painel de sobreposição direito à direita como 0 / transform: translateX(0); / Defina a posição do painel de sobreposição direito como 0 */
}
/* A posição da sobreposição quando o design é ativado/ .panel-active.overlay-left { transform: translateX(0);
}
.panel-ativo.container-overlay {
transformar: traduzirX(-100%);
/* Define a distância do contêiner à esquerda como -100% */
}
.panel-ativo.overlay {
transformar: traduzirX(50%);
/* Define a posição da sobreposição para mover 50% para a direita */
}
/* Definir a posição e transparência da camada de registro de login quando ativada/ .panel-active.container-signin { transform: translateX(100%) / Definir a posição da camada de login para mover 100% para a direita */
}
.panel-active.container-signup {
opacidade: 1;
/* Defina a transparência da camada de registro como 1 / z-index: 5; / Defina o nível da camada de registro como 5 / transform: translateX(100%) / Defina a posição da camada de registro como movendo 100% para a direita */
}Este código define o estilo de sobreposição das páginas de login e registro, incluindo posição, tamanho, transparência, hierarquia, etc. Entre eles, height: 100% significa que a altura do contêiner é 100%, left: 50% significa que o contêiner está 50% do lado esquerdo, overflow: hidden significa que a parte de transbordamento do contêiner está oculta; : absoluto significa que o contêiner está posicionado de forma absoluta, superior: 0 significa que o contêiner está 0 a partir do topo, transição: transformação 0,6s facilidade de entrada significa efeito de transição, largura: 50% significa que a largura do contêiner é 50; %, índice z: 100; Indica que o nível do contêiner é 100.
Alinhado ao centro, tamanho do plano de fundo: capa significa que o tamanho do plano de fundo da sobreposição deve cobrir a página inteira, transição: transformação 0,6s facilidade de entrada significa um efeito de transição, transformação: traduzirX(0); a posição da sobreposição é 0.
O estilo do painel de sobreposição inclui altura, largura, posição, modo de exibição, alinhamento, direção do eixo principal, efeito de transição, posição inicial, etc. Entre eles, altura: 100% significa que a altura do painel de sobreposição é 100%, largura: 50% significa que a largura do painel de sobreposição é 50%, posição: absoluto significa que o painel de sobreposição está absolutamente posicionado; top: 0; significa que o painel de sobreposição está absolutamente posicionado A distância do topo é 0, display: flex significa que o painel de sobreposição é uma caixa flexível, justifique-content: center significa que o alinhamento do eixo principal está centralizado; itens: centro; Indica que o alinhamento do eixo cruzado está centralizado, flex-direction: column indica que a direção do eixo principal é vertical, transform: translateX(0); -in-out; indica efeito de transição.
Os estilos esquerdo e direito do painel de sobreposição são definidos como sobreposição esquerda e sobreposição direita, respectivamente, que representam os estilos dos painéis de sobreposição esquerdo e direito, respectivamente. Entre eles, transform: translateX(-20%); significa que a posição do painel de sobreposição esquerdo é movida 20% para a esquerda, right: 0 significa que o painel de sobreposição direito é 0 da direita, transform: translateX(0); significa direita A posição do painel de sobreposição lateral é 0.
Quando ativado, a posição e a transparência da sobreposição mudarão, incluindo a posição esquerda do painel de sobreposição, a distância do contêiner à esquerda, a posição da sobreposição, a transparência da camada registrada, a posição da camada registrada, etc. Entre eles, .panel-active.overlay-left significa que quando ativado, a posição esquerda do painel de sobreposição é 0, .panel-active.container-overlay significa que quando ativado, a distância do contêiner à esquerda é -100%, .panel -active .overlay significa que quando ativado, a posição da camada de login é movida 50% para a direita. inscrição no contêiner Indica que quando ativado, a transparência da camada de registro é 1, o nível da camada de registro é 5 e a posição da camada de registro é movida 100% para a direita.
Isso conclui este artigo sobre HTML + CSS para obter uma troca de login interessante. Para obter mais conteúdo relacionado à troca de login HTML CSS, pesquise os artigos anteriores em downcodes.com ou continue navegando nos artigos relacionados abaixo. .com!