【移动端网页布局】流式布局案例 ② ( 实现顶部固定定位提示栏 | 布局元素百分比设置 | 列表样式设置 | 默认样式设置 )

news2024/11/26 4:41:46

文章目录

  • 一、样式测量及核心要点
    • 1、样式测量
    • 2、高度设定
    • 3、列表项设置
    • 4、设置每个元素的百分比宽度
    • 5、设置图像宽度
  • 二、核心代码编写
    • 1、HTML 标签结构
    • 2、CSS 样式
    • 3、展示效果
  • 三、完整代码示例
    • 1、HTML 标签结构
    • 2、CSS 样式
    • 3、展示效果





一、样式测量及核心要点




1、样式测量


京东手机端 https://m.jd.com/ 顶部提示 使用京东 APP 打开网页的提示 , 是通过 固定定位 放置在顶部的 ,

在这里插入图片描述

当向上滑动界面的时候 , 该 顶部 固定定位元素消失 ;

在这里插入图片描述

首先 实现顶部的提示条 , 该提示条的宽度肯定是 100% , 网页布局宽度 = 设备屏幕宽度 = 本提示条宽度 ;

在这里插入图片描述

如果不能确定具体的元素宽度 , 可以参考现有网站的实现方式 ;

进入 F12 调试模式 , 使用选择工具 , 选择想要分析 https://m.jd.com/ 的网页元素 , 第一个 关闭按钮 , 宽度是 8% ;
在这里插入图片描述

LOGO 图片所在的盒子 , 宽度是 10% ;
在这里插入图片描述

LOGO 图标设置的是固定值 , 30 像素 , 没有设置高度 , 该图片是正方形 , 宽高等比例缩放 , 其高度也是 30 像素 ;

在这里插入图片描述

中间的文字 " 打开京东 APP , 实惠又轻松 " 内容 , 宽度为 57% ;

在这里插入图片描述

立即打开按钮 , 宽度是 25% ;

在这里插入图片描述
在这里插入图片描述

综合上述测量结果 :

在这里插入图片描述

当前宽度可以使用百分比进行设置 , 高度暂时写死为 45 像素即可 ;

使用 FastStone 截图工具的 吸管工具 ( 屏幕取色器 Ctrl + Shift + P ) , 获取背景的颜色值 , 该颜色值为 #333333 ;

在这里插入图片描述

右侧红色按钮 , 背景为 #F63515 颜色 ;

在这里插入图片描述


2、高度设定


整个提示栏高度是 45 像素 , 这里先设置一个固定值 ;

在这里插入图片描述

.app {
    /* 设置顶部提示条高度 45 像素 */
    height: 45px;
}

3、列表项设置


下面的列表包含 4 个列表项 , 为其设置左浮动 , 可以令四个列表项水平排列 , 并且没有默认的内外边距 ;

在这里插入图片描述

设置其 行高 = 内容高度 = 45 像素 , 令其中的文本内容垂直居中 ;

设置其 text-align: center 样式 , 令文本水平居中 ;

.app ul li {
    /* 设置左浮动 令列表元素水平排列 */
    float: left;
    /* 设置高度 45 像素 = 行高 垂直居中 */
    height: 45px;
    line-height: 45px;
    /* 设置总体背景 */
    background-color: #333333;
    /* 文本水平居中 */
    text-align: center;
    /* 文本颜色白色 */
    color: #fff;
}

注意要 全局设置列表项的默认样式 , 不要内外边距 , 取消列表项的左侧小圆点默认样式 ;

ul {
    /* 取消 ul 列表项的内外边距 */
    margin: 0;
    padding: 0;
    /* 取消列表项的样式 - 左侧的小圆点 */
    list-style: none;
}

4、设置每个元素的百分比宽度


按照下图测量的内容 , 为每个元素设置其百分比宽度 , 注意最后一个红色按钮设置其红色背景 ;
在这里插入图片描述

.app ul li:nth-child(1) {
    /* 关闭按钮 宽度占布局宽度 / 设备宽度 的 8% */
    width: 8%;
}

.app ul li:nth-child(2) {
    /* 设置 Logo 宽度 10% */
    width: 10%;
}
.app ul li:nth-child(3) {
    /* 中间的 "打开京东APP, 实惠又轻松" 文本盒子的宽度 */
    width: 57%;
}

.app ul li:nth-child(4) {
    /* 右侧的 立即打开 红色按钮盒子 */
    width: 25%;
    background-color: #F63515;
}

5、设置图像宽度


关闭按钮 和 LOGO 按钮 包含两个图片 , 要为图片设置宽度 , 以及对齐方式 ;

这里特别注意 , 默认的图片对齐方式是基线对齐 , 只要不是基线对齐 , 随便设置 顶部 / 底部 / 中部 对齐都可以实现图像居中 ;

.app ul li:nth-child(1) img {
    /* 设置关闭按钮的图像宽度 该图片自动水平 / 垂直对齐 */
    width: 10px;
}

.app ul li:nth-child(2) img {
    /* 在 10% 宽度的 Logo 盒子中 图片的宽度是 30 像素
       高度没有给出 但是 宽高等比例缩放 高度也是 30 像素 */
    width: 30px;
    /* 默认的图片对齐方式是基线对齐 只要不是基线对齐
       这里随便设置 顶部 / 底部 / 中部 对齐都可以 */
    vertical-align: middle;
}

建议为图像设置一个总体默认样式 , 默认的基线对齐是个大坑 ;

img {
    /* 默认的图片对齐方式是基线对齐 只要不是基线对齐
       这里随便设置 顶部 / 底部 / 中部 对齐都可以 */
    vertical-align: middle;
}




二、核心代码编写



下图中的四个元素 , 使用 <ul><li></li></ul> 列表实现 , 为 <li> 元素设置左浮动 , 就可以浮动起来 , 水平方向上进行排序 ;
在这里插入图片描述


1、HTML 标签结构


HTML 标签结构 :

    <!-- 顶部 APP 提示标签 -->
    <header class="app">
        <ul>
            <li>
                <!-- 左侧的关闭按钮 -->
                <img src="images/close.png" alt="">
            </li>
            <li>
                <!-- 关闭按钮右侧的京东 LOGO -->
                <img src="images/logo.png" alt="">
            </li>
            <li>打开京东APP, 实惠又轻松</li>
            <li>立即打开</li>
        </ul>
    </header>

2、CSS 样式


CSS 样式标签 :

.app {
    /* 设置顶部提示条高度 45 像素 */
    height: 45px;
}

.app ul li {
    /* 设置左浮动 令列表元素水平排列 */
    float: left;
    /* 设置高度 45 像素 = 行高 垂直居中 */
    height: 45px;
    line-height: 45px;
    /* 设置总体背景 */
    background-color: #333333;
    /* 文本水平居中 */
    text-align: center;
    /* 文本颜色白色 */
    color: #fff;
}

.app ul li:nth-child(1) {
    /* 关闭按钮 宽度占布局宽度 / 设备宽度 的 8% */
    width: 8%;
}

.app ul li:nth-child(1) img {
    /* 设置关闭按钮的图像宽度 该图片自动水平 / 垂直对齐 */
    width: 10px;
}

.app ul li:nth-child(2) {
    /* 设置 Logo 宽度 10% */
    width: 10%;
}

.app ul li:nth-child(2) img {
    /* 在 10% 宽度的 Logo 盒子中 图片的宽度是 30 像素
       高度没有给出 但是 宽高等比例缩放 高度也是 30 像素 */
    width: 30px;
    /* 默认的图片对齐方式是基线对齐 只要不是基线对齐
       这里随便设置 顶部 / 底部 / 中部 对齐都可以 */
    vertical-align: middle;
}

.app ul li:nth-child(3) {
    /* 中间的 "打开京东APP, 实惠又轻松" 文本盒子的宽度 */
    width: 57%;
}

.app ul li:nth-child(4) {
    /* 右侧的 立即打开 红色按钮盒子 */
    width: 25%;
    background-color: #F63515;
}

3、展示效果


在这里插入图片描述





三、完整代码示例




1、HTML 标签结构


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!-- 引入 css 初始化样式 -->
    <link rel="stylesheet" href="css/normalize.css">
    <!-- 引入要开发的 CSS 文件 -->
    <link rel="stylesheet" href="css/index.css">
    <title>流式布局示例</title>
</head>

<body>
</body>

</html>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!-- 引入 css 初始化样式 -->
    <link rel="stylesheet" href="css/normalize.css">
    <!-- 引入要开发的 CSS 文件 -->
    <link rel="stylesheet" href="css/index.css">
    <title>流式布局示例</title>
</head>

<body>
    <!-- 顶部 APP 提示标签 -->
    <header class="app">
        <ul>
            <li>
                <!-- 左侧的关闭按钮 -->
                <img src="images/close.png" alt="">
            </li>
            <li>
                <!-- 关闭按钮右侧的京东 LOGO -->
                <img src="images/logo.png" alt="">
            </li>
            <li>打开京东APP, 实惠又轻松</li>
            <li>立即打开</li>
        </ul>
    </header>
</body>

</html>

2、CSS 样式


a {
    /* 取消链接点击时的高亮效果 */
    -webkit-tap-highlight-color: transparent;
}

img,
a {
    /* 禁用 长按弹出菜单 */
    -webkit-touch-callout: none;
}

input {
    /* 设置 iOS 取消按钮的自定义样式 */
    -webkit-appearance: none;
}

div {
    /* 设置 CSS3 盒子模型样式 */
    box-sizing: border-box;
}

ul {
    /* 取消 ul 列表项的内外边距 */
    margin: 0;
    padding: 0;
    /* 取消列表项的样式 - 左侧的小圆点 */
    list-style: none;
}

img {
    /* 默认的图片对齐方式是基线对齐 只要不是基线对齐
       这里随便设置 顶部 / 底部 / 中部 对齐都可以 */
    vertical-align: middle;
}

a {
    /* 设置字体颜色值 */
    color: #666;
    /* 取消链接的底部横线样式 */
    text-decoration: none;
}

.clearfix:after {
    /* 清除浮动的固定样式
       如果要为某个容器清除浮动 
       为其设置 class="clearfix" 样式 */
    content: "";
    display: block;
    line-height: 0;
    visibility: hidden;
    height: 0;
    clear: both;
}

body {
    /* 网页布局宽度 = 设备宽度 */
    width: 100%;
    /* 最小宽度 320 像素 */
    min-width: 320px;
    /* 最大宽度 640 像素 */
    max-width: 640px;
    /* 居中对齐 */
    margin: 0 auto;
    /* 字体大小 14 像素 */
    font-size: 14px;
    /* 如果是苹果就是用苹果默认字体 
       如果不是苹果手机 就使用后啊面的字体 */
    font-family: -apple-system, Helvetica, sans-serif;
    /* 字体颜色 */
    color: #666;
    /* 行高 */
    line-height: 1.5;
}

.app {
    /* 设置顶部提示条高度 45 像素 */
    height: 45px;
}

.app ul li {
    /* 设置左浮动 令列表元素水平排列 */
    float: left;
    /* 设置高度 45 像素 = 行高 垂直居中 */
    height: 45px;
    line-height: 45px;
    /* 设置总体背景 */
    background-color: #333333;
    /* 文本水平居中 */
    text-align: center;
    /* 文本颜色白色 */
    color: #fff;
}

.app ul li:nth-child(1) {
    /* 关闭按钮 宽度占布局宽度 / 设备宽度 的 8% */
    width: 8%;
}

.app ul li:nth-child(1) img {
    /* 设置关闭按钮的图像宽度 该图片自动水平 / 垂直对齐 */
    width: 10px;
}

.app ul li:nth-child(2) {
    /* 设置 Logo 宽度 10% */
    width: 10%;
}

.app ul li:nth-child(2) img {
    /* 在 10% 宽度的 Logo 盒子中 图片的宽度是 30 像素
       高度没有给出 但是 宽高等比例缩放 高度也是 30 像素 */
    width: 30px;
    /* 默认的图片对齐方式是基线对齐 只要不是基线对齐
       这里随便设置 顶部 / 底部 / 中部 对齐都可以 */
    vertical-align: middle;
}

.app ul li:nth-child(3) {
    /* 中间的 "打开京东APP, 实惠又轻松" 文本盒子的宽度 */
    width: 57%;
}

.app ul li:nth-child(4) {
    /* 右侧的 立即打开 红色按钮盒子 */
    width: 25%;
    background-color: #F63515;
}

3、展示效果


在这里插入图片描述

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

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

相关文章

8、接口的高级用法

1、索引类型 我们可以使用接口描述索引的类型和通过索引得到的值的类型&#xff0c;比如一个数组[‘a’, ‘b’]&#xff0c;数字索引0对应的通过索引得到的值为’a’。我们可以同时给索引和值都设置类型&#xff0c;看下面的示例&#xff1a; interface RoleDic {[id: number…

现在的00后,真是卷死了呀,想离职了·····

都说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。这不&#xff0c;刚开年我们公司来了个00后&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪23K&#xff0c;都快接近我了。 后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 …

Spring Aop原理全面详解汇总

文章目录 近期想法什么是AOPSpringAOP与AspectjSpringAOP体系概述概念详解连接点- Jointpoint切入点- Pointcut通知- Advice切面- Aspect织入- Weaving 实现原理—动态代理JDK动态代理描述原理代码示例注意执行结果 优点缺点 CGLib动态代理描述原理代码示例注意执行结果 优点缺…

《数理天地》期刊简介及投稿邮箱

《数理天地》期刊简介及投稿邮箱 《数理天地》用稿以数学、物理、学科交叉、科普等稿件为主&#xff0c;自创刊以来&#xff0c;以新观点、新方法、新材料为主题&#xff0c;坚持"期期精彩、篇篇可读"的理念。数理天地内容详实、观点新颖、文章可读性强、信息量大&a…

操作系统——第一章概论(上)

未闻花名&#xff0c;不见花开 文章目录 1.1.1 操作系统的概念&#xff0c;功能1.1.2 操作系统的特征1.2 操作系统的发展和分类1.3.1 操作系统的运行机制1.3.2 中断和异常 1.1.1 操作系统的概念&#xff0c;功能 通过下图可以发现用户和操作系统是有一部分是相连的&#xff0c…

锁屏密码忘记了?教你40秒破iphone锁屏密码!

案例&#xff1a;iPhone锁屏密码忘记了怎么办&#xff1f; 【求助&#xff0c;昨晚刚改的锁屏密码&#xff0c;今早起来想不起来了。苹果锁屏密码有什么方法可以破解吗&#xff1f;】 当你忘记了iPhone的锁屏密码&#xff0c;可能会感到困惑和无助。本文将介绍40秒破iphone锁屏…

从Redis到KeyDB:实现高可用和高可扩展性的转变

文章目录 从Redis到KeyDB&#xff1a;实现高可用和高可扩展性的转变特点**[线程模型]( )****[链接管理]( )****[锁机制]( )****[Active-Replica]( )** 结语 从Redis到KeyDB&#xff1a;实现高可用和高可扩展性的转变 今天给大家介绍的是KeyDB&#xff0c;KeyDB项目是从redis f…

2023年制造业产品经理NPDP认证报名找弘博创新

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

IO多路复用机制

从阻塞 I/O 到 I/O 多路复用 阻塞IO&#xff1a; 阻塞 I/O&#xff0c;是指进程发起调用后&#xff0c;会被挂起&#xff08;阻塞&#xff09;&#xff0c;直到收到数据再返回。如果调用一直不返回&#xff0c;进程就会一直被挂起。因此&#xff0c;当使用阻塞 I/O 时&#xff…

【电科复试第一名】23上交819考研经验分享

笔者来自通信考研小马哥23上交819全程班学员 819&#xff0c;上岸经验贴&#xff0c;知无不言 初试第十一&#xff0c;复试第一&#xff0c;总分第七(与第六同分) 考研经历:本科就读与湖南某末985&#xff0c;大学时间没好好学习&#xff0c;天天打王者&#xff0c;玩steam上…

让 ChatGPT 扮演一个艺术家,协助我们生成绘图 prompt

stable-diffusion Prompt 生成 直接生成 按照惯用的扮演思路&#xff0c;我们可以让 ChatGPT 扮演一个艺术家&#xff0c;协助我们生成绘图 prompt。考虑到 ChatGPT 和 DallE 同为 openai 公司产品&#xff0c;且 stable-diffusion 开源模型出现较晚&#xff0c;ChatGPT 训练…

Linux云服务器的使用,以及运行Python程序

目录 1、使用Linux云服务器的软件 2、Linux系统运行Python程序 3、Linux系统查看包、虚拟环境、安装包等 以下几个深度学习服务器都不错&#xff1a;智星云、AutoDL、恒源云 1、使用Linux云服务器的软件 MobaXterm_Personal 推荐MobaXterm_Personal mobaxterm是一款方便网站…

目标追踪deepsort ByteTrack

多目标跟踪算法&#xff1a;DeepSort https://arxiv.org/pdf/1703.07402.pdf https://github.com/ZQPei/deep_sort_pytorch DeepSORT&#xff08;Deep Learning-based SORT&#xff09;是一种基于深度学习的多目标跟踪算法&#xff0c;用于在视频序列中跟踪多个目标并进行身份…

[pgrx开发postgresql数据库扩展]4.基本计算函数的编写与性能对比

前言 再次声明&#xff1a; 并不是所有场景都需要&#xff08;或者适合&#xff09;用rust来写的&#xff0c;绝大部分操作数据库的功能和计算&#xff0c;用SQL就已经足够了&#xff01; 本系列中&#xff0c;所有的案例&#xff0c;仅用于说明pgrx的能力&#xff0c;而并非…

Spring依赖注入(DI配置)

Spring依赖注入 1. 依赖注入方式【重点】1.1 依赖注入的两种方式1.2 setter方式注入问题导入引用类型简单类型 1.3 构造方式注入问题导入引用类型简单类型参数适配【了解】 1.4 依赖注入方式选择 2. 依赖自动装配【理解】问题导入2.1 自动装配概念2.2 自动装配类型依赖自动装配…

ThinkPHP模型操作上

ThinkPHP模型操作上 前言模型一、创建模型二、模型操作 总结 前言 在mvc架构中&#xff0c;模型的解释是写逻辑代码的地方&#xff0c;其实还可以这样理解&#xff0c;就是一串操作写在一个模型类中&#xff0c;就是你要完成某一项功能&#xff0c;将这个功能的代码写在一个mod…

chatgpt能做本地化部署,训练私有化学科领域数据吗?-----模型只在工具之上,想法只在算力范围之内

GPTGLM-6B场景应用&#xff1a; 最近&#xff0c;ChatGPT已经火出圈了&#xff0c;一般OpenAI需要梯子&#xff0c;然后需要花钱&#xff0c;导致很多限制&#xff0c;用的很不方便&#xff08;很希望大厂努力&#xff0c;有国人自己的大语言模型&#xff09;&#xff0c;目前…

Bean 作⽤域和⽣命周期

目录 1.lombok 1.1 1.添加依赖&#xff1a;&#xff08;pom.xml&#xff09; 1.2 在实体类上使用lombok提供的注解 1.3 安装插件 2. Bean 的 6 种作⽤域&#xff08;Scope&#xff09; 2.1 singleton&#xff08;默认模式&#xff09; 2.2 prototype&#xff08;原型模式…

【EasyPoi实战系列】Spring Boot使用EasyPoi的注解让表格更漂亮以及图片的导出 - 第468篇

历史文章&#xff08;文章累计460&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 【…

利用电脑和手机MT4平台软件设置报警功能的方法及步骤

使用MT4&#xff08;MetaTrader 4&#xff09;的报警功能&#xff0c;就可以在汇率达到指定数值&#xff0c;或者是在EA进场买进或结束交易的时候在手机接受推播通知。即使正在外出&#xff0c;也不会因此而错失机会&#xff0c;也可以借此确认进场交易内容&#xff0c;是相当便…