首先做出来的效果图如图所示:

每次做一个页面,我们首先要搞懂的就是它一共分为几个部分,可以由哪几个盒子来组成,如下图:

 相关的 html 部分如下所示:

<body>
    <div class="big-box">
        <div class="small-box">
            <div class="box-1"></div>   <!--左边的图片部分-->
            <div class="box-2">         <!--右边的表单部分-->
                <div class="box-text1">
                    <h3>Sign in Here</h3>
                </div>
                <div class="box-text2">
                    <div class="box-text">
                         <form>
                            <input type="text" placeholder="用户名">
                        </form>
                    </div>
                    <div class="box-password">
                        <form>
                            <input type="password" placeholder="密码">
                        </form>
                    </div>
                    <div class="box-button">
                        <label for="1">
                              <input type="checkbox" id="1" class="ma">
                              <span class="one"></span>
                               记住密码
                        </label>
                        <label for="2">
                              <input type="checkbox" id="2" class="ma">
                              <span class="two"></span>
                              自动登录
                        </label>
                    </div>
                    <div class="button">
                        <form>
                              <button>Sign in</button>
                        </form>
</body>

相关的 css 样式如下:

*{
    margin: 0;
    padding: 0;
}
body,html{
    width: 100%;
    height:100%;
    background-image: url(../images/18.jpg);
    background-size: 100% 100%;
    background-repeat: no-repeat;
}
.big-box{
    width:850px;
    height: 500px;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 5px;
    background: rgba(0,0,0,.5);
}
.small-box{
    width:830px;
    height: 480px;
    margin-top: 10px;
    margin-left: 10px;
    margin-bottom: 10px;
    margin-right: 10px;
}
.box-1{
    width: 490px;
    height: 480px;
    background-image: url(../images/14.jpg);
    background-size: cover;
    float: left;
}
.box-2{
    width: 340px;
    height: 480px;
    background:rgba(255,255,255,.8);
    float: left;
}
.box-text1{
    width: 340px;
    height: 60px;
    margin-top: 85px;
    margin-left: 30px;
}
.box-text2{
    width:340px;
    height:420px;
    margin-top: 10px;
}
.box-text{
    display:block;
    width: 340px;
    height: 20px;
    margin-left: 30px;
}
.box-password{
    display:block;
    width: 340px;
    height: 20px;
    margin-top: 20px;
    margin-bottom: 20px;
    margin-left: 30px;
}
.box-checkbox{
    display: block;
    width: 340px;
    height: 30px;
    margin-bottom:20px;
}
.box-button{
    display: block;
    width:340px;
    height:40px;
    font-size: 18px;
}
input[type=text]:focus{
    outline: 0px;
}
/* 移除选中时会出现的框*/
input[type=text] {
    font-size: 15px;
    width: 250px; /*文本框的长度,即下划线的长度*/
    border-bottom: 2px solid black; /*下划线*/
    border-top: none; 
    border-left: none;
    border-right: none;
    background-color:rgba(255,255,255,0)
}
input[type=password]:focus{
    outline: 0px;
}
input[type=password] {
    font-size: 15px;
    width: 250px;
    border-bottom: 2px solid black; 
    border-top: none; 
    border-left: none;
    border-right: none;
    background-color:rgba(255,255,255,0)
}
/*input[type=password]::-ms-reveal{
    display:none;
}*/
/*去掉右边的眼睛图标*/
.ma {
    margin: 0px 30px 0px 5px;
    width: 25px;
    height: 25px;
    cursor: pointer;
    opacity: 0;
}
.ma[type=checkbox]+span{
    display: inline-block;
    margin-left: -30px;
    width: 25px;
    height: 25px;
    border: .02rem solid #0D1529;
    background-color: transparent;
    position: absolute;
    cursor: pointer;
}
.ma[type=checkbox]:checked+span::after{
    content:'\2714' ;
    color: black;
    position: absolute;
    font-size: 25px;
    left: 2px;
    bottom: -2px;
}

button{
    outline: 0px;
}
button{
    font-size: 18px;
    width:250px;
    height:35px;
    border-radius: 30px;
    border: none;
    background-color:rgba(41, 113, 139, 0.61);
    -webkit-text-fill-color:white;
    margin-left: 47px;
    margin-top: 40px;
}
/*响应式*/
@media screen and (max-width: 749px){
.big-box{
    width: 510px;
    height:270px ;
}
.small-box{
    width:490px;
    height: 250px;
}
.box-1{
    width: 250px;
    height: 250px;
}
.box-2{
    width: 240px;
    height: 250px;
}
.box-text1{
    margin-top: 25px;
    margin-left: 20px;
}
.box-text2{
    margin-top: -15px;
}
.box-text{
    margin-left: 20px;
}
.box-password{
    margin-left: 20px;
}
input[type=text]{
    width: 180px;
}
input[type=password]{
    width: 180px;
}
.ma{
    margin:0px 25px 0px 5px; ;
    width: 10px;
    height: 10px;
}
.ma[type=checkbox]+span{  /*被遮住小方格的尺寸*/
    width: 15px;
    height: 15px;
    font-size: 10px;
}
.ma[type=checkbox]:checked+span::after{  /*上面小方格的尺寸*/
    width: 15px;
    height: 15px;
    font-size: 15px;
    bottom: 2px;
}
.box-button{
    font-size: 15px;
}
button{
    font-size: 15px;
    width:160px;
    height:25px;
    border-radius: 30px;
    border: none;
    background-color:rgba(41, 113, 139, 0.61);
    -webkit-text-fill-color:white;
    margin-left: 38px;
    margin-top: 10px;
}
}

注释:

  • background-size: 100% 100%;  background-repeat: no-repeat; 可以让背景图片全部铺展;

  • margin: auto;   position: absolute;    top: 0;    left: 0;    right: 0;    bottom: 0;  可以让该盒子在屏幕的最中央显示(其中的 left、right、top、bottom 值可以不是0,但必须相等);

  • background: rgba(0,0,0,.5);  可以给 div 块设置半透明效果,其中第四个数字是半透明度,必须满足:(1≤ 半透明度 ≥0),写 .5 和 0.5 是一个意思;

  • input[type=text]:focus{    outline: 0px;     }  这里用到了伪元素,focus 表明被点击时的伪元素,这句代码可以去除这个表单在被点击时的外边框;

  • input[type=password]::-ms-reveal{    display:none;    }  用于去除 password 右边的眼睛图标;

  • content:'\2714' ;   这是复选框被选中时对勾的另一个样式;

  • @media screen and (max-width: 749px){ ... } 这里面再对不同屏幕尺寸的页面设置新的样式,则完成了响应式的制作。

到这里一个登录页面就基本完成了,其实这个很多时候就是一直试一直试,然后试出来的,所以就是一定要有耐心,希望我们都能取得进步!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐