recherche
Maisoninterface Webtutoriel CSSCréez une interface de connexion rose avec CSS3

Cette fois, je vais vous apporter CSS3 pour créer une interface de connexion rose. Quelles sont les précautions pour créer une interface de connexion rose avec CSS3. Voici un cas pratique, jetons un oeil.

Sur un coup de tête, j'ai voulu apprendre le style de conception du matériel, alors j'ai essayé de remplir une page de connexion

C'est l'effet global

Ça fait du bien, et le code sera joint à la fin

Pendant le processus d'écriture, aucune image ni icône de police n'a été utilisée, et tout a été complété en utilisant CSS3 que j'ai encore rencontré. quelques difficultés et bugs, j'ai donc voulu les noter Il est facile de s'y référer plus tard.

Responsive design

Dans cette page, utilisez les 3 suivants. points pour compléter la conception réactive

1. Largeur maximale de max-width est définie pour la compatibilité sur les grands écrans

2. tout le temps

3. Les composants utilisent des pixels

Il y a beaucoup d'autres points importants concernant le design réactif.

Mise en page générale

nbsp;html>


    <meta>
    <title>Document</title>
    <meta>
    <meta>
    <link>


    <p>
        </p><p>
            </p><p>
            </p>
            <p>
            </p>
        
        <h4 id="用户登录">用户登录</h4>
        <p>
            </p><p>
                <input>
                <label>用户名</label>
            </p>
            <p>
                <input>
                <label>密 码</label>
            </p>
            <p>
                </p><p><a>忘记密码</a></p>
                <p>
                    <span></span>
                    <label>记住密码</label>
                </p>
            
        
        <button>
            <span></span>
        </button>
    

<script></script>

Démarrer CSS

Ajouter des styles au corps

html {
    font-family: "Microsoft YaHei", å®‹ä½“, "Segoe UI", "Lucida Grande", Helvetica, Arial, sans-serif, FreeSans, Arimo;
    background-color: #FF4081;
    color: #777;
}
Centre

.container{
    position: relative;
    max-width: 360px;
    margin: 0 auto;
    margin-top: 30px;
    padding: 45px 20px;
    border-radius: 4px;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    background-color: #fff;
    box-sizing: border-box;
}
Notez que le remplissage est utilisé ici pour ajuster la marge interne au lieu de la marge pour les éléments enfants, car si vous souhaitez utiliser la marge, pour l'effet BFC, vous devez ajouter un débordement : caché . De cette façon, cela aura un impact sur le débordement du bouton de queue

Logo de la tête

.container>.logo {
    height: 150px;
    width: 150px;
    position: relative;
    background-color: #EFEFEF;
    border-radius: 75px;
    margin: 0 auto;
}
Réglez le rayon de bordure sur la largeur et la hauteur, ce qui sera le cas. faites-en un Le cercle

a besoin d'un demi-cercle plus sombre en dessous

Comment dessiner un demi-cercle

.container>.logo::after {
    content: ' ';
    height: 150px;
    width: 75px;
    position: absolute;
    background-color: #E1E1E1;
    border-radius: 0 75px 75px 0;
    left: 75px;
    top: 0;
}
Réglez la largeur sur ? la hauteur. Ensuite, définissez les coins supérieur et inférieur gauche sur 0, et le droit sur 75px >

Définissez de la même manière les coins arrondis

Définissez le centre de la clé. , qui est également divisé en deux parties, le trou rond supérieur et l'ellipse inférieure
.container>.logo>.logo-block-top {
    box-sizing: border-box;
    height: 45px;
    width: 54px;
    border: 10px solid #F57C00;
    border-bottom: 0;
    position: absolute;
    border-radius: 27px 27px 0 0;
    left: 48px;
    z-index: 1001;
    top: 20px;
}

Peut juste être placé sur les pseudo-éléments avant et après du fond de verrouillage

.container>.logo>.logo-block-bottom {
    position: absolute;
    height: 60px;
    width: 80px;
    box-sizing: border-box;
    background-color: #FFA000;
    z-index: 1001;
    top: 65px;
    left: 35px;
    border-radius: 7px;
}

Le logo est complété ici

Ce qui suit est le titre « Connexion utilisateur ».

.container>.logo>.logo-block-bottom::before {
    content: " ";
    position: absolute;
    height: 12px;
    width: 12px;
    background-color: #EFEFEF;
    border-radius: 5px;
    top: 22px;
    left: 34px;
    box-sizing: border-box;
}
.container>.logo>.logo-block-bottom::after {
    content: " ";
    position: absolute;
    height: 12px;
    width: 6px;
    background-color: #EFEFEF;
    border-radius: 2px;
    top: 30px;
    left: 37px;
    box-sizing: border-box;
}
Remarque, il est préférable d'utiliser la marge au lieu du remplissage ici, ne détruisez pas le balise h4 originale.

Ajouter un conteneur pour le contenu

Ajouter un groupe de formulaires, y compris les balises d'étiquette et d'entrée, et définir la disposition relative

Ce qui suit est la partie principale, définissant le style de l'entrée (un bug se produira ici, qui sera introduit à la fin)
.container>.login-header {
    text-align: center;
    font-size: 23px;
    color: #FF4081;
    font-weight: 400;
    margin: 15px 0 18px 0;
}

balise labe, utilisez
.container>.content {
    width: 90%;
    margin: 0 auto;
}
positionnement absolu

pour le placer au-dessus de l'entrée.

.container>.content>.form-group {
    position: relative;
}

Définissez une certaine distance entre les deux groupes de formulaires, sinon le bas sera bloqué. La boîte-ombre définie au-dessus

.container>.content>.form-group>.form-control {
    z-index: 3;
    position: relative;
    height: 58px;
    width: 100%;
    border: 0px;
    border-bottom: 1px solid #777;
    padding-top: 22px;
    color: #FF4081;
    font-size: 12px;
    background: none;
    box-sizing: border-box;
    outline: none;
    display: inline-block;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

ajoute des effets dynamiques

Vient ensuite l'option du bas, qui est également divisée en deux parties, option-gauche et option-droite
.container>.content>.form-group>.form-label {
    z-index: 1;
    position: absolute;
    bottom: 10px;
    left: 0;
    font-size: 15px;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

Dans l'option-droite, veuillez noter que cette case à cocher n'est pas une entrée native, mais est pivotée à l'aide de p, car la case à cocher native ne peut pas changer le style.
.container>.content>.form-group>:first-child {
    margin-bottom: 5px;
}

Utilisée ici Rotation en CSS3, imitant un effet de sélection
.container>.content>.form-group>.form-control:focus,
.container>.content>.form-group>.form-control:valid {
    box-shadow: 0 1px #FF4081;
    border-color: #FF4081;
}
.container>.content>.form-group>.form-control:focus+.form-label,
.container>.content>.form-group>.form-control:valid+.form-label {
    font-size: 12px;
    -ms-transform: translateY(-20px);
    -webkit-transform: translateY(-20px);
    transform: translateY(-25px);
}

Remarque : Bien que p ne puisse pas être directement sélectionné, vous pouvez toujours y ajouter un attribut checkd. Cet attribut est un effet d'événement CSS spécial qui peut être contrôlé via js

.container>.content>.option {
    width: 100%;
    height: 14px;
    margin-top: 24px;
    font-size: 16px;
}
.container>.content>.option>.option-left {
    width: 50%;
    float: left;
}
.container>.content>.option>.option-left>a,
.container>.content>.option>.option-left>a:hover {
    color: #FF4081;
    text-decoration: none;
}
Enfin, le bouton de connexion

. Ici, le positionnement absolu doit également être utilisé, les points de référence sont en bas et à droite
.container>.content>.option>.option-right {
    width: 50%;
    float: right;
    text-align: right;
    position: relative;
}
.container>.content>.option>.option-right>.md-checkbox {
    height: 18px;
    width: 18px;
    display: inline-block;
    box-sizing: border-box;
    position: absolute;
    background-color: #FF4081;
    cursor: pointer;
    position: absolute;
    top: 3px;
    right: 68px;
}
.container>.content>.option>.option-right>.md-checkbox[checked]:after {
    content: " ";
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    height: 8px;
    width: 15px;
    box-sizing: border-box;
    position: absolute;
    transform: rotate(-45deg);
    top: 3px;
    left: 2px;
}

Par box-shadow : 2px 0 0 rgba( 0, 0, 0, 0.3) inset ; effet en ligne.

中间的按钮在不适用字体图标的情况下也必须要用p 旋转来模仿了

.container>.login-button >.icon-login {
    box-sizing: border-box;
    position: relative;
    width: 18px;
    height: 3px;
    background-color: #fff;
    transition: 0.3s;
    display: block;
    margin: auto;
}
.container>.login-button >.icon-login::after {
    content: ' ';
    box-sizing: border-box;
    position: absolute;
    left: 8px;
    height: 12px;
    width: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: rotate(45deg);
    top: -4px;
}

最后是鼠标hover上的放大和阴影效果

.container>.login-button:hover {
    box-shadow: 0 0 0 rgba(0, 0, 0, 0.3) inset, 0 3px 6px rgba(0, 0, 0, 0.16), 0 5px 11px rgba(0, 0, 0, 0.23)
}
.container>.login-button:hover>.icon-login {
    -ms-transform: scale(1.2);
    =webkit-transform: scale(1.2);
    transform: scale(1.2);
}

至此,所有的css已经结束了,查看效果

transition bug修复

当我刷新页面或者点击忘记密码的时候,input框就会抖动一下,这个问题只会出现在chrome 浏览器上,firefox 或者edge都不会重现,所以我才这应该是兼容性的问题。 在不断尝试中,我发现,只有取消 transition属性,就不会产生抖动。

这个问题困扰了我3天,真实百思不得其姐。

在某度中查询半天,未果 。

后来终于在 StackOverFlow 中,搜索chrome input transition 时,终于一个回到让我貌似顿开。

this bug has been reported, adding an script tag somewhere can advoid it.

之后,我在页面尾部添加一个下面节点,终于顺利解决。

<script></script>

在阅读过一些文章之后,总结为

当chrome 的input 默认属性向自定义过度时,因为存在transition,所以会产生抖动。 而基本上所有的页面都有script标签,所以这个bug 几乎很难被重现。而我遇到,算是运气好吧。。

至此,这个页面全部内容已经完成。

material-design 很赞,angular-material 是使用 AngularJS 封装了 material-design 的UI 库,很漂亮。不同于 bootstrap的完全扁平化风格,它采用的是盒子堆砌效果,动画效果也比较赞。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

CSS3实现扇形动画菜单流程详解

单选、复选样式美化的图文详解

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Faire un graphique? Essayez d'utiliser Mobx State Tree pour alimenter les donnéesFaire un graphique? Essayez d'utiliser Mobx State Tree pour alimenter les donnéesApr 15, 2025 am 09:49 AM

Qui aime les graphiques? Tout le monde, non? Il existe de nombreuses façons de les créer, y compris un certain nombre de bibliothèques. Il y a d3.js, chart.js, amcharts, highcharts et

Bloquant les mains tierces du pot à biscuitsBloquant les mains tierces du pot à biscuitsApr 15, 2025 am 09:48 AM

Les cookies tiers sont définis sur votre ordinateur à partir de domaines autres que celui que vous êtes en fait en ce moment. Par exemple, si je me connecte à CSS-Tricks.com,

Widgets de dix tonnesWidgets de dix tonnesApr 15, 2025 am 09:43 AM

Lors d'une récente conférence (désolé, j'oublie lequel), il y avait un petit exemple de mauvaise performance Web sous la forme d'un widget tiers. L'exemple

Recettes pour tests de performances Applications de page unique dans WebPageTestRecettes pour tests de performances Applications de page unique dans WebPageTestApr 15, 2025 am 09:42 AM

WebPageTest est un outil en ligne et un projet open source pour aider les développeurs à auditer les performances de leurs sites Web. En tant qu'évangéliste de performance Web à

Arrêter les animations pendant le redimensionnement des fenêtresArrêter les animations pendant le redimensionnement des fenêtresApr 15, 2025 am 09:40 AM

Disons que vous avez une page qui a un tas de transitions et d'animations sur toutes sortes d'éléments. Certains d'entre eux sont déclenchés lorsque la fenêtre est redimensionnée parce qu'ils

Tissant un élément sur et sous un autre élémentTissant un élément sur et sous un autre élémentApr 15, 2025 am 09:38 AM

Dans cet article, nous allons utiliser les superpuissances CSS pour créer un effet visuel où deux éléments se chevauchent et tissent ensemble. L'épiphanie de cette conception est venue

Y a-t-il des nombres aléatoires dans CSS?Y a-t-il des nombres aléatoires dans CSS?Apr 15, 2025 am 09:37 AM

CSS vous permet de créer des dispositions et des interfaces dynamiques sur le Web, mais en tant que langue, elle est statique: une fois qu'une valeur est définie, elle ne peut pas être modifiée. L'idée de

Élément flottant au milieu d'un paragrapheÉlément flottant au milieu d'un paragrapheApr 15, 2025 am 09:36 AM

Dites que vous voulez avoir une image (ou tout autre élément) à gauche visuellement à gauche dans un paragraphe de texte. Mais comme ... au milieu du paragraphe, pas juste à

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles