效果图
二维码区域放上有过渡效果
源码
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>哔哩哔哩弹幕视频网 - ( ゜- ゜)つロ 乾杯~ - bilibili</title>
<link rel="stylesheet" href="style.css">
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
</head>
<body>
<div class="login-app">
<div class="bottom-filling">
<div class="whole">
<div class="top-banner">
<img src="images/top-image.png" alt="">
</div>
<div class="title-line">
<span class="tit">
登录
</span>
</div>
<div class="login-box">
<div class="login-left">
<div class="qrcode-login">
<div class="qrcode-con">
<i class="tv-icon"></i>
<div class="qrcode-box">
<div class="qrcode-img">
<img src="images/qr-code.png" alt="">
</div>
<div class="qrcode-tips"></div>
</div>
</div>
<div class="qrcode-footer">
<p class="status-txt">
扫描二维码登录
</p>
<p class="app-link">
请使用
<a href="##">
哔哩哔哩客户端
</a>
<br>
扫码登陆
<br>
或扫码下载APP
</p>
</div>
</div>
</div>
<div class="line"></div>
<div class="login-right">
<div class="form-login">
<div class="input-box">
<div>
<div class="type-tab">
<span>密码登录</span>
<span class="active">短信登录</span>
</div>
<div>
<div class="form-group">
<div class="input-with-select">
<div class="el-input-group__prepend">
<div class="el-select">
<div class="el-input">
<select name="" class="el-input__inner">
<option value="">中国大陆</option>
<option value="">中国香港特别行政区</option>
<option value="">中国澳门特别行政区</option>
<option value="">中国台湾</option>
<option value="">美国</option>
<option value="">比利时</option>
<option value="">澳大利亚</option>
<option value="">法国</option>
<option value="">加拿大</option>
<option value="">日本</option>
<option value="">新加坡</option>
<option value="">韩国</option>
<option value="">马来西亚</option>
<option value="">英国</option>
<option value="">意大利</option>
<option value="">德国</option>
</select>
</div>
</div>
</div>
<div class="inputbox">
<input type="text" class="el-input__inner" placeholder="填写常用手机号">
</div>
</div>
</div>
<div class="message">
<div class="inputbox2">
<input type="text" class="el-input__inner" placeholder="请输入短信验证码">
</div>
<button class="code-button">
<span>获取验证码</span>
</button>
</div>
<div class="remember">
<div class="remember-tool">
<label>
<label class="remember-check">
</label>
记住我
<span>不是自己的电脑上不要勾选此项</span>
</label>
<div>
<a href="##" class="forget-password">
忘记密码?
</a>
<a href="##" class="not-checkout">
无法验证?
</a>
</div>
</div>
</div>
<div class="btn-box">
<a href="##" class="btn-login">
登录
</a>
<a href="##" class="btn-reg">
注册
</a>
</div>
<div class="sns">
<a href="##" class="weixin">
微信账号登录
</a>
<a href="##" class="QQ">
QQ账号登录
</a>
<a href="##" class="weibo">
微博账号登录
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="banner-foot">
登录即代表你同意
<a href="##">
用户协议
</a>
和
<a href="##">
隐私政策
</a>
</p>
</div>
</div>
<div class="international-footer">
<div class="link-box">
<div class="footer_left">
<div class="link-a">
<span class="bt">bilibili</span>
<ul>
<a href="##">关于我们</a>
<a href="##">联系我们</a>
<a href="##">用户协议</a>
<a href="##" class="spe">加入我们</a>
<a href="##">友情链接</a>
<a href="##">隐私政策</a>
<a href="##">bilibili认证</a>
<a href="##" class="spe">Investor Relations</a>
</ul>
</div>
<div class="link-b">
<span class="bt">传送门</span>
<ul>
<a href="##">协议汇总</a>
<a href="##">活动中心</a>
<a href="##">活动专题页</a>
<a href="##" class="spe">侵权申诉</a>
<a href="##">帮助中心</a>
<a href="##">社区中心</a>
<a href="##">壁纸站</a>
<a href="##" class="spe">广告合作</a>
<a href="##">名人堂</a>
<a href="##">MCN管理中心</a>
<a href="##">高级弹幕</a>
<a href="##" class="spe">品牌号官网</a>
</ul>
</div>
</div>
<div class="footer_right">
<div class="link-item">
<div class="a-wraper">
<a href="##" class="biliapp">
<i class="bili-footer-font"></i>
<p>下载APP</p>
</a>
</div>
</div>
<div class="link-item">
<div class="a-wraper">
<a href="##" class="biliapp">
<i class="bili-footer-font"></i>
<p>公益</p>
</a>
</div>
</div>
<div class="link-item">
<div class="a-wraper">
<a href="##" class="biliapp">
<i class="bili-footer-font"></i>
<p>新浪微博</p>
</a>
</div>
</div>
<div class="link-item">
<div class="a-wraper">
<a href="##" class="biliapp">
<i class="bili-footer-font"></i>
<p>官方微信</p>
</a>
</div>
</div>
</div>
</div>
<div class="partner">
<div class="pic-box">
<img src="images/partner-1.png" alt="" class="pic">
<img src="images/partner-2.png" alt="" class="pic-2">
</div>
<div class="text-con">
<p>
<span>
<a href="##">
营业执照
</a>
</span>
<span>信息网络传播视听节目许可证:0910417</span>
<span>网络文化经营许可证 沪网文【2019】3804-274号</span>
<span>广播电视节目制作经营许可证:(沪)字第01248号</span>
<span>增值电信业务经营许可证 沪B2-20100043</span>
<span>
互联网ICP备案:
<a href="##">
沪ICP备13002172号-3
</a>
</span>
<span>出版物经营许可证 沪批字第U6699 号</span>
<span>互联网药品信息服务资格证 沪-非经营性-2016-0143</span>
<span>营业性演出许可证 沪市文演(经)00-2253</span>
</p>
<p>
不良信息举报邮箱:help@bilibili.com | 涉未成年举报邮箱:teenprotect@bilibili.com | 不良信息举报电话:4006262233转1
</p>
<p>
<i class="sprite"></i>
<a href="##">上海互联网举报中心</a>
|
<a href="##">12345政务服务便民热线</a>
|
<i class="sprite-bg2"></i>
<a href="##">
沪公网安备31011002002436号
</a>
|
<a href="##">
儿童色情信息举报专区
</a>
|
<a href="##">
扫黄打非举报
</a>
</p>
<p>
<p>
亲爱的市民朋友,上海警方反诈劝阻电话“96110”系专门针对避免您财产被骗受损而设,请您一旦收到来电,立即接听。
</p>
<p>
公司名称:上海宽娱数码科技有限公司|公司地址:上海市杨浦区政立路485号|电话:021-25099888
</p>
</p>
</div>
</div>
</div>
</div>
</body>
</html>
css
* {
margin: 0;
padding: 0;
}
a {
text-decoration: none;
}
.login-app {
width: 100%;
height: auto;
margin: 0 auto;
}
.top-banner {
background: #00a0d8;
height: 86px;
text-align: center;
margin-bottom: 20px;
}
.title-line {
width: 980px;
height: 28px;
margin: 0 auto;
border-bottom: 1px solid #ddd;
margin-bottom: 28px;
text-align: center;
}
.title-line .tit {
height: 38px;
line-height: 56px;
margin: 0 auto;
padding: 0 20px;
font-size: 40px;
background: #fff;
text-align: center;
}
.login-box {
display: flex;
position: relative;
width: 980px;
margin: 0 auto;
}
.login-box::after {
content: "";
display: block;
clear: both;
}
.login-box .login-left {
width: 489px;
}
.qrcode-login {
position: relative;
width: 480px;
}
.qrcode-login .qrcode-con {
padding-top: 72px;
}
.tv-icon {
/*图片第一个就是需要的图标,不需要设置背景图片位置*/
background: url(images/index-com.png) no-repeat;
position: absolute;
width: 70px;
height: 70px;
left: 160px;
top: 10px;
}
.qrcode-login .qrcode-con .qrcode-box {
width: 140px;
height: 140px;
margin: 0 auto;
background: #ddd;
position: relative;
}
.qrcode-img {
width: 140px;
height: 140px;
}
.qrcode-img>img {
display: block;
}
.qrcode-tips {
position: absolute;
width: 480px;
height: 192px;
top: -50px;
left: 50%;
margin-left: -240px;
background: url(images/bc.png) no-repeat;
/*规定把背景图片拓展至足够大,完全覆盖背景区域*/
background-size: cover;
background-color: #fff;
opacity: 0;
-webkit-transition: opacity .5s;
transition: opacity .5s;
}
.qrcode-tips:hover {
opacity: 1.0;
}
.qrcode-login .qrcode-footer {
width: 480px;
height: 155px;
background: url(images/2233login.png) 0 -7px no-repeat;
}
.qrcode-login .qrcode-footer .status-txt {
padding-top: 20px;
text-align: center;
color: #222;
font-size: 18px;
letter-spacing: 3px;
margin-bottom: 5px;
}
.app-link {
text-align: center;
color: #717171;
font-size: 14px;
}
.app-link>a {
color: #00a1d6;
}
.login-box .line {
border-right: 1px solid #ddd;
height: 300px;
margin-top: 28px;
}
.login-box .login-right {
padding-left: 45px;
width: 490px;
box-sizing: border-box;
}
.form-login {
position: relative;
}
.type-tab {
display: flex;
cursor: pointer;
/*均等的分割多余的空间,一半位于子元素之上,一半位于之下*/
-webkit-box-align: center;
/*将弹性项目居中*/
align-items: center;
margin-bottom: 12px;
}
.form-login .input-box {
margin-top: 50px;
width: 414px;
}
.login-box .type-tab>span {
font-size: 14px;
color: #555;
letter-spacing: 0;
margin-right: 20px;
}
.active {
color: #02a7de !important;
}
.form-grounp {
position: relative;
}
.input-with-select {
/*内联表格形式,中间没有空隙*/
display: inline-table;
width: 100%;
position: relative;
font-size: 14px;
}
.el-input-group__prepend {
display: table-cell;
border-color: #fff;
color: #909399;
vertical-align: middle;
padding: 0 20px;
width: 1px;
/*文本不会换行,直到遇到br*/
white-space: nowrap;
}
.el-select {
position: relative;
display: inline-block;
margin: -10px -20px;
}
.el-input {
display: block;
position: relative;
width: 130px;
}
.el-input__inner {
display: inline-block;
background-color: #fff;
height: 40px;
font-size: 14px;
border-radius: 4px;
border: 1px solid #dcdfe6;
box-sizing: border-box;
line-height: 40px;
color: rgb(151, 155, 159);
box-sizing: border-box;
}
.el-input__inner:hover {
border-color: #02a7de;
}
.el-input__inner>option {
/* display: block; */
position: relative;
font-size: 14px;
background-color: #fff;
color: #606266;
width: 90px;
height: 34px;
}
.el-input>.el-input__inner {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-right: 0;
transition: 0.5s;
}
.inputbox {
position: relative;
margin-left: 19px;
}
.inputbox>.el-input__inner {
width: 251px;
height: 40px;
padding: 0 15px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
transition: .5s;
}
.el-input__inner:focus {
border-color: #00a0d8;
}
.message {
position: relative;
width: 399px;
height: 40px;
border: 1px solid #dcdfe6;
border-radius: 5px;
margin-top: 32px;
margin-bottom: 32px;
}
.inputbox2 {
width: 267px;
height: 40px;
}
.inputbox2>.el-input__inner {
width: 100%;
border: 0;
color: #c0c4cc;
}
.code-button {
cursor: pointer;
width: 130px;
height: 34px;
position: absolute;
right: 2px;
top: 2px;
padding: 0 4px;
background-color: #00a1d6;
border-radius: 5px;
border: 0;
transition: .2s;
}
.code-button>span {
font-size: 14px;
color: #fff;
}
.code-button:hover {
background: #33b4de;
}
.remember {
margin: 10px 0;
color: #717171;
width: 410px;
font-size: 12px;
}
.remember-tool {
display: flex;
position: relative;
width: 401px;
height: 16px;
}
.remember-tool>label {
display: flex;
cursor: pointer;
margin-right: 45px;
}
.remember-check {
display: inline-block;
width: 14px;
height: 14px;
background: url(images/label-1.svg) no-repeat;
cursor: pointer;
margin-right: 8px;
}
.remember-tool>label span {
color: #bbb;
margin-left: 10px;
}
.forget-password {
float: right;
color: #00a1d6;
}
.not-checkout {
float: right;
margin-right: 10px;
color: #00a1d6;
}
.btn-box {
width: 401px;
height: 38px;
}
.btn-login {
float: left;
width: 184px;
height: 36px;
border: 1px solid #0381aa;
color: #fff;
background-color: #00a7de;
border-radius: 2px;
line-height: 38px;
font-size: 14px;
text-align: center;
transition: all .3s;
}
.btn-reg {
float: right;
width: 184px;
height: 36px;
border: 1px solid #ccc;
border-radius: 2px;
color: #555;
background-color: #fff;
line-height: 38px;
font-size: 14px;
text-align: center;
transition: all .3s;
}
.btn-login:hover {
background: #00bee7;
}
.btn-reg:hover {
background: #f7f7f7;
}
.sns {
padding: 12px 0;
font-size: 12px;
}
.sns a {
color: #717171;
}
.weixin::before {
content: "";
background: url(images/weixin.png) no-repeat;
display: inline-block;
width: 21px;
height: 21px;
vertical-align: middle;
margin-right: 5px;
}
.QQ,
.weibo {
margin-left: 20px;
}
.QQ::before,
.weibo::before {
content: "";
display: inline-block;
background: url(images/weibo-QQ.png) no-repeat;
background-position: 0 -41px;
width: 21px;
height: 21px;
vertical-align: middle;
margin-right: 5px;
}
.weibo::before {
background-position: 0 0;
}
.banner-foot {
margin: 24px auto 0;
width: 980px;
font-size: 12px;
color: #99a2aa;
text-align: center;
line-height: 16px;
}
.banner-foot a {
color: #00a1d6;
border: none;
}
.international-footer {
position: relative;
width: 100%;
min-width: 999px;
margin-top: 30px;
background-color: #f6f9fa;
padding: 30px 0;
}
.link-box {
display: flex;
width: 1160px;
height: 150px;
margin: 0 auto;
font-size: 14px;
}
.footer_left {
display: flex;
flex: 4;
}
.link-a {
flex: 2;
padding-right: 40px;
margin-right: 40px;
border-right: 1px solid #eee;
}
.bt {
font-size: 16px;
color: #999;
display: block;
height: 20px;
margin-bottom: 20px;
}
.link-a ul,
.link-b ul {
width: 287.2px;
height: 110px;
display: flex;
/*规定弹性项目作为列显示*/
flex-direction: column;
/*规定弹性项目必要时拆行或拆列*/
flex-wrap: wrap;
list-style: none;
}
.link-a>ul a,
.link-b>ul a {
display: inline-block;
margin-bottom: 10px;
width: 50%;
height: 20px;
color: #212121;
transition: color 0.3s;
}
.link-a>ul a:hover {
color: #00a1d6;
}
.spe {
margin-bottom: 0 !important;
}
.link-b {
flex: 3;
padding-right: 40px;
margin-right: 40px;
border-right: 1px solid #eee;
}
.link-b>ul a:hover {
color: #00a1d6;
}
.footer_right {
flex: 1;
display: flex;
align-items: center;
}
.link-item {
display: flex;
flex: 2;
justify-content: space-between;
align-items: center;
}
.a-wraper {
flex: 1;
display: flex;
min-width: 70px;
justify-content: center;
align-items: center;
}
.a-wraper a {
position: relative;
display: inline-block;
text-align: center;
color: #212121;
}
.biliapp {
color: #585f69;
}
.bili-footer-font {
font-size: 50px;
}
.a-wraper p {
margin-top: 10px;
color: #212121;
height: 20px;
transition: color 0.2s;
}
.partner {
display: flex;
width: 1160px;
height: 222px;
margin: 0 auto;
padding-top: 30px;
color: #999;
}
.pic-box {
width: 100px;
margin-right: 20px;
}
.partner .pic {
width: 96px;
height: 75px;
}
.partner .pic-2 {
width: 100px;
height: 40px;
margin: 5px 0;
}
.text-con {
width: 1040px;
height: 192px;
}
.text-con p {
line-height: 24px;
font-size: 12px;
}
.text-con span {
margin-right: 15px;
display: inline-block;
font-size: 12px;
}
.partner a {
font-size: 12px;
color: #999;
}
.sprite {
display: inline-block;
background: url(images/foot-icon.png) no-repeat;
width: 16px;
height: 16px;
background-position: 0 -2px;
vertical-align: middle;
}
.sprite-bg2 {
display: inline-block;
background: url(images/foot-icon.png) no-repeat;
width: 18px;
height: 20px;
background-position: -41px 0px;
vertical-align: middle;
}