用纯HTML和CSS仿写知乎登录页面

news2025/5/11 21:48:14

这是知乎的官方的登录页面
在这里插入图片描述

这是我的登录页面,使用 HTML + CSS 进行编写。我觉得这是一个供前端新手练手的一个不错的小项目, 在这个系列,我将会用 HTML + CSS 编写各大知名网站的登录界面,欢迎大家交流探讨。
在这里插入图片描述
源码展示:

body{
    background-color: #B8E5F8;
    background-image: url("./static/images/background.png");
    background-repeat: no-repeat;
    background-size: cover;
    box-sizing: border-box;
    margin: 0; 
    display: flex;
    flex-direction: column;
    height: 100vh; 
    overflow: auto;
    width: 100%; 
}

.login-container{
    align-items: center;
    border-radius: 2px;
    display: flex;
    flex: 1 1; 
    flex-direction: column;
    height: calc(100% - 42px);
    min-height: 688px;
    justify-content: center;    
}

.login-logo{
    width: 128px;
    height: 81px;
    margin-bottom: 24px; 
}


.login-form{
    background-color: #fff;
    display: flex;
    margin-bottom: 120px;
}

.login-left-container{
    width: 332px; 
    text-align: center;
    border-right: 1px solid whitesmoke;
}

.login-left-container-text{
    padding-top: 98px;
}

.qrcode-content{
    padding-bottom: 40px;
}

.login-app-title{
    font-size: 16px;
    font-weight: 600;
    line-height: 23px;
    color: #373a40;
}

.login-scan{
    margin-top: 8px; 
    margin-bottom: 24px; 
    color: #373a40; 
    font-size: 14px;
    line-height: 20px; 

}

.login-qrcode{
    border: 1px solid #ebeced; 
    border-radius:  6px;
    padding: 8px;
    height: 120px; 
    width: 120px;
    margin: 0 auto;
}


.other-scans{
    box-sizing: border-box;
    margin-top: 24px; 
    color: #373a40; 
    font-size: 14px; 
    font-weight: 600;
    line-height: 20px;  
}


.login-options {
    display: flex;
    margin: 26px 0 22px;
    gap: 8px; 
    justify-content: center;
}

.login-option-btn {
    padding: 4px 10px;
    border: 1px solid #e4e6eb;
    border-radius: 29px;
    background: #FFFFFF;
    color: #1a1a1a;
    font-size: 12px;
    cursor: pointer;
    transition: background 0.2s, border 0.2s;
}

.login-option-btn:hover {
    background: #F8F8FA;
    border-color: #F8F8FA;
    color: #1a1a1a;
}

.login-right-container{
    width:343px;  
    padding: 0 24px 23px;
}

.login-tabs {
    display: flex;
    justify-content: flex-start;
    margin-top: 16px; 
    text-align: left;
    margin-bottom: 24px;
    font-size: 18px;
    color: #444;
    height: 48px;
}

.login-tab {
    cursor: pointer;
    display: inline-block;
    font-size: 16px;
    height: 49px;
    line-height: 46px;
    margin-right: 24px; 
}


.login-tab.active {
    border-bottom: 4px solid #1772F6;
    background: #fff;
    font-weight: 600; 
}

.login-phone-row, .login-sms-row {
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 6px; 
    border-bottom: 1px solid #ebeced;
}

.country-code {
    width: 100px;
    border: none;
    background: none;
    font-size: 15px;
    padding-left: 8px;
    color: #8491A5;
}

.account-seperator{
    background: #ebeced;
    height: 22px;
    margin: 0 12px; 
    width: 0.5px; 
}

.phone-input {
    border: none;
    font-size: 15px; 
    color: #8491A5;
}

.phone-input:focus {
    outline: none;
}

.sms-input {
    border: none; 
    font-size: 15px; 
    color: #8491A5;
    outline: none;
}

.get-sms-btn {
    height: 36px;
    margin-left: auto; 
    padding: 0 0 0 12px;
    background: transparent;
    border: none; 
    color: #318ef7;
    cursor: pointer;
    font-size: 14px; 
} 


.login-register-button{
    margin-top: 30px;  
    width: 100%;
}

.login-register-button button{
    background: #1772F6;
    border-radius: 3px;
    color: white;
    border: none;
    padding: 10px 20px;
    cursor: pointer;
    width: 100%;
}


.other-login-methods{
    display: flex;
    margin: 0 24px 12px; 
    align-items: center;
    margin-top: 30px;
}

.other-login-line{
    border-top: 1px solid;
    border-color: #ebeced;
    width: 110px;
}

.other-login-font{
    color:#9196a1; 
    font-size: 12px;
    margin-left: 16px;
    margin-right: 16px;
    width: 72px; 
    white-space: nowrap;
}

.social-login{
    margin: 12px 98px; 
    height: 60px;
    display: flex;
    justify-content: center;
}

.social-button-group{
    width: 180px; 
    height: 100%;
    text-align: center;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.social-button-group button {
    width: 24px;
    height: 24px;
    border: none; 
    border-radius: 50%;
}

.login-agreement{
    width: 90%; 
    color: #9196a1; 
    font-size: 12px; 
    padding: 12px 24px 30px;
    
    text-wrap: wrap;
}

.login-footer div {
    text-align: center;
}

.login-footer div a {
    text-decoration: none;
    color: #fff;
    font-size: 12px;
}

.login-footer div span {
    color: #fff;
    font-size: 12px; 
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>知乎 - 有问题,就会有答案</title>
    <link rel="stylesheet" href="./login.css">
</head>
<body>
    <div class="login-container">
        <img src="./static/images/zhihu.png" alt="知乎 LOGO" class="login-logo">
        <div class="login-form">
            <div class="login-left-container">
                <div class="qrcode-content">
                    <div class="login-left-container-text">
                    <div class="login-app-title">打开知乎App</div>
                        <div class="login-scan">在「我的页」右上角打开扫一扫</div>

                        <div class="login-qrcode">
                            <img src="./static/images/qrcode.png" alt="二维码" 
                            style="height: 120px; width: 120px;">
                        </div>  
                    </div>
                    <div class="other-scans">
                        <div>其他登录方式: 微信</div>
                    </div>
                </div>
                
                <div class="login-options">
                    <button class="login-option-btn">下载知乎App</button>
                    <button class="login-option-btn">开启机构号</button>
                    <button class="login-option-btn">无障碍模式</button>
                </div>
            </div>


            <div class="login-right-container" >
                <div class="login-tabs">
                    <div class="login-tab active">验证码登录</div>
                    <div class="login-tab">密码登录</div>
                </div>
                <div class="login-phone-row">
                    <select class="country-code">
                        <option value="+86">中国 +86</option>
                    </select>
                    <input class="phone-input" type="text" placeholder="请输入手机号">
                </div>
                 <div class="login-sms-row">
                    <input class="sms-input" type="text" placeholder="输入 6 位短信验证码">
                    <button class="get-sms-btn">获取短信验证码</button>
                </div>

                <div style="text-align: right; font-size: 14px;">
                    获取语言验证码
                </div>
                <div type="submit" class="login-register-button">
                    <button>登录/注册</button>
                </div>

                 <div class="other-login-methods">
                    <div class="other-login-line"></div>
                    <div class="other-login-font">其它方式登录</div>
                    <div class="other-login-line"></div>
                </div>

                <div class="social-login">
                    <div class="social-button-group">
                        <button type="button"></button>
                        <button type="button"></button>
                        <button type="button"></button> 
                    </div>
                </div>

                 <div class="login-agreement">
                    <span>未注册手机验证后自动登录,注册即代表同意《知乎协议》《隐私保护指引》</span>
                </div> 
            </div> 
        </div>

        <footer class="login-footer">
            <div>
                <a href="#">知乎专栏</a>
                <a href="#">圆桌</a>
                <a href="#">发现</a>
                <a href="#">联系我们</a>
                <a href="#">来知乎工作</a>
                <a href="#">注册机构号</a>
                <a href="#">Investor Relations</a>
              </div>
              <div>
                <a href="#">侵权举报</a>
                <a href="#">网上有害信息举报专区</a>
                <a href="#">儿童色情信息举报专区</a>
              </div> 
              <div>
                <span>互联网算法推荐举报专区</span>
                <span>违法和不良信息举报:010-82716601</span>
              </div>
        </footer>
    </div>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2373445.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis】C++如何使用redis

文章目录 1. redis客户端2. 使用通用命令3. 使用string命令3. 使用list命令4. 使用set命令5. 使用hash命令6. 使用zset命令 1. redis客户端 在前面的学习种&#xff0c;我们都是使用redis命令行客户端手动执行操作的&#xff1b;但是更多的时候&#xff0c;需要使用redis的api…

考研系列-408真题计算机组成原理篇(2010-2014)

写在前面 此文章是本人在备考过程中408真题计算机组成原理部分(2010年-2014年)的易错题及相应的知识点整理,后期复习也常常用到,对于知识提炼归纳理解起到了很大的作用,分享出来希望帮助到大家~ # 2010年 1.DRAM芯片的排列和编址方式 这个区别于多体交叉编址:这个可以理…

47.电压跌落与瞬时中断干扰的防护改善措施

电压跌落与瞬时中断干扰的防护改善措施 1. 电压跌落与瞬时中断的影响机理2. 解决措施 1. 电压跌落与瞬时中断的影响机理 跌落发生的常见场景如下&#xff1a; &#xff08;1&#xff09;电源插头接触不良&#xff0c;瞬态中断即刻恢复&#xff1b; &#xff08;2&#xff09;电…

极狐Gitlab 里程碑功能介绍

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 里程碑 (BASIC ALL) 极狐GitLab 中的里程碑是一种跟踪议题和合并请求的方法&#xff0c;这些请求是为了在特定时间段内实现更…

一次Android Fragment内存泄露的bug解决记录|Fragment not attach to an Activity

Bug描述 前些天出现了一个 bug。Activity 页面里放了一个 ViewPager2&#xff0c;其中的每一页是一个 Fragment。其中第一页的 Fragment 实现了一个监听器&#xff0c;当事件发生和首次添加到监听器管理者 listener manager 时&#xff0c;manager 会通知所有监听者&#xff0…

LVGL图像导入和解码

LVGL版本&#xff1a;8.1 概述 在LVGL中&#xff0c;可以导入多种不同类型的图像&#xff1a; 经转换器生成的C语言数组&#xff0c;适用于页面中不常改变的固定图像。存储系统中的外部图像&#xff0c;比较灵活&#xff0c;可以通过插卡或从网络中获取&#xff0c;但需要配置…

project从入门到精通(五)

目录 创建资源的基本信息 在project中创建资源工作表 ​编辑信息详解 最大单位 标准费率与加班费率 每次使用成本 成本累算 基准日历 三类资源工作表的总结——不同的资源必须要设置的属性 除了资源名称是必须设置的之外&#xff0c;剩余的资源的可设置选项如下图所…

第3.2.3节 Android动态调用链路的获取

3.2.3 Android App动态调用链路 在Android应用中&#xff0c;动态调用链路指的是应用在运行时的调用路径。这通常涉及到方法调用的顺序和调用关系&#xff0c;特别是在应用的复杂逻辑中&#xff0c;理解这些调用链路对于调试和性能优化非常重要。 1&#xff0c;动态调用链路获…

亿级流量系统架构设计与实战(六)

微服务架构与网络调用 当某个业务从单体服务架构转变为微服务架构后,多个服务之间会通过网络调用形式形成错综复杂的依赖关系。 在微服务架构中 , 一个微服务正常工作依赖它与其他微服务之间的多级网络调用。 网络是脆弱的 , RPC 请求有较大的概率会遇到超时 、 抖动 、 断…

浅聊find_package命令的搜索模式(Search Modes)

背景 find_package应该算是我们使用最多的cmake命令了。但是它是如何找到上游库的.cmake文件的&#xff1f; 根据官方文档&#xff0c;整理下find_package涉及到的搜索模式。 搜索模式 find_package涉及到的搜索模式有两种&#xff1a;模块模式(Module mode)和配置模式(Conf…

【LLaMA-Factory】使用LoRa微调训练DeepSeek-R1-Distill-Qwen-7B

【LLaMA-Factory】使用LoRa微调训练DeepSeek-R1-Distill-Qwen-7B 本地环境说明禁用开源驱动nouveau安装nvidia-smi安装Git环境安装Anaconda(conda)环境下载DeepSeek-R1-Distill-Qwen-7B模型安装LLaMA-Factory下载LLaMA-Factory安装LLaMA-Factory依赖修改环境变量安装deepspeedA…

使用lldb查看Rust不同类型的结构

目录 前言 正文 标量类型 复合类型——元组 复合类型——数组 函数 &str struct 可变数组vec Iter String Box Rc Arc RefCell Mutex RwLock Channel 总结 前言 笔者发现这个lldb挺好玩的&#xff0c;可以查看不同类型的结构&#xff0c;虽然这好像是C的东…

【Linux】线程POSIX信号量

目录 1. 整体学习思维导图 2. 信号量的概念 3. 基本接口 4. 基于环形队列的生产者消费者模型(信号量) 1. 整体学习思维导图 2. 信号量的概念 POSIX信号量和SystemV信号量作用相同&#xff0c;都是用于同步操作&#xff0c;达到无冲突的访问共享资源目的。但 POSIX可以用于线…

MySQL事务和JDBC中的事务操作

一、什么是事务 事务是数据库操作的最小逻辑单元&#xff0c;具有"全有或全无"的特性。以银行转账为例&#xff1a; 典型场景&#xff1a; 从A账户扣除1000元 向B账户增加1000元 这两个操作必须作为一个整体执行&#xff0c;要么全部成功&#xff0c;要么全部失败…

每日脚本学习5.10 - XOR脚本

xor运算的简介 异或就是对于二进制的数据可以 进行同0异1 简单的演示 &#xff1a; 结果是 这个就是异或 异或的作用 1、比较两数是否相等 2、可以进行加密 加密就是需要key 明文 :0b010110 key : 0b1010001 这个时候就能进行加密 明文 ^ key密文 还有这个加密比…

【编译原理】总结

核心 闭包&#xff0c;正则闭包 产生式&#xff08;规则&#xff09; 文法 G[S](&#xff0c;&#xff0c;P&#xff0c;S) 一组规则的集合 &#xff1a;非终结符 &#xff1a;终结符 P&#xff1a;产生式 S&#xff1a;开始符号 推导 归约 规范&#xff08;最右&#xff…

docker创建一个centOS容器安装软件(以宝塔为例)的详细步骤

备忘&#xff1a;后续偶尔忘记了docker虚拟机与宿主机的端口映射关系&#xff0c;来这里查看即可&#xff1a; docker run -d \ --name baota \ --privilegedtrue \ -p 8888:8888 \ -p 8880:80 \ -p 8443:443 \ -p 8820:20 \ -p 8821:21 \ -v /home/www:/www/wwwroot \ centos…

OpenVLA:开源的视觉-语言-动作模型

1. 简介 让我们先来介绍一下什么是OpenVLA&#xff0c;在这里&#xff1a; https://openvla.github.io/ 可以看到他们的论文、数据、模型。 OpenVLA 是一个拥有 70亿参数的开源 **视觉-语言-动作&#xff08;VLA&#xff09;**模型。它是在 Open X-Embodiment 数据集 中的 97万…

Matlab/Simulink的一些功能用法笔记(4)

水一篇帖子 01--MATLAB工作区的保护眼睛颜色设置 默认的工作区颜色为白色 在网上可以搜索一些保护眼睛的RGB颜色参数设置 在MATLAB中按如下设置&#xff1a; ①点击预设 ②点击颜色&#xff0c;点击背景色的三角标符号 ③点击更多颜色&#xff0c;找到RGB选项 ④填写颜色参数…

Elasticsearch:我们如何在全球范围内实现支付基础设施的现代化?

作者&#xff1a;来自 Elastic Kelly Manrique SWIFT 和 Elastic 如何应对基础设施复杂性、误报问题以及日益增长的合规要求。 金融服务公司在全球范围内管理实时支付方面面临前所未有的挑战。SWIFT&#xff08;Society for Worldwide Interbank Financial Telecommunication -…