位置: IT常识 - 正文

【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )(移动端页设计)

编辑:rootadmin
原力计划【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 ) 文章目录一、顶部固定定位搜索栏1、固定定位盒子居中对齐2、设置最大宽度和最小宽度3、使用 Flex 弹性布局管理宽度4、二倍精灵图设置5、CSS3 中的垂直居中对齐 - 行高 = 内容高度 ( 总高度 - 边框高度 - 内边距高度 )二、代码示例1、HTML 标签结构2、CSS 样式3、展示效果一、顶部固定定位搜索栏

推荐整理分享【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )(移动端页设计),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:移动端页设计,网页和移动端界面设计是什么,网页移动端是什么意思,移动端的web页面,移动端网页设计模板,移动端网页设计模板,移动端网页设计模板,网页移动端怎么做,内容如对您有帮助,希望把文章链接给更多的朋友!

需求 : 制作如下搜索栏 ;

1、固定定位盒子居中对齐

首先 , 设置固定定位 , 固定定位盒子始终显示在浏览器中指定的位置 , 与父容器或其它容器无关 ;

/* 固定定位盒子始终显示在浏览器中指定的位置 与父容器或其它容器无关 */ position: fixed;

然后 , 设置固定定位盒子垂直方向位置 , 设置为 top: 0; 紧贴顶部 ;

/* 固定定位盒子位置紧贴顶部 */ top: 0;

再后 , 设置 left: 50% 样式 , 将盒子左侧设置到中心位置 , 这个 50% 是相对于父容器的 比例 , 也就是浏览器 ;

/* 将固定定位的盒子在页面中居中对齐 先将盒子左侧设置到中心位置 注意 : 这个 50% 是相对于父容器的 也就是浏览器 */ left: 50%;

最后 , 整个盒子模型向左走自身宽度的一半 , 此处还要配置兼容老版本浏览器的样式 ;

/* 兼容老版本浏览器 */ -webkit-transform: translateX(-50%); /* 向左走盒子自身宽度的一半 */ transform: translateX(-50%);

2、设置最大宽度和最小宽度

在移动端网页中 , 一般都要设置一个 最大宽度 和 最小宽度 ;

当浏览器的宽度超过最大宽度 , 则网页布局最大就是该 最大宽度 , 继续放大网页不再随着页面一起放大 ;当浏览器的宽度小于最小宽度 , 则网页布局最小就是该 最小宽度 , 继续缩小显示布局布局 ; /* 设置最大和最小宽度 */ min-width: 320px; max-width: 640px;

3、使用 Flex 弹性布局管理宽度

在搜索框中 , 左侧是搜索栏 , 右侧是搜索按钮 ;

右侧的搜索按钮始终都是 44x44 像素大小 ;左侧的搜索栏随着网页布局的宽度变化而变化 ;

此处 使用 Flex 弹性布局管理宽度 , 右侧的按钮直接设置一个固定大小 , 左侧的搜索框设置 flex: 1; 样式 , 也就是 自动占据剩余空间 ;

【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )(移动端页设计)

Flex 子项目的 flex 样式默认都为 0 , 只要有一个子项目设置了 flex: 1; 样式 , 那么该子项目就会自动占据剩余的所有空间 ;

4、二倍精灵图设置

下图中的 放大镜图片 和 头像图标 都定义在精灵图中 ,

二倍精灵图设置步骤 :

缩小精灵图 : 在 Firework 中 , 将精灵图缩小一半 ;测量坐标 : 在缩小一半的精灵图中测量坐标 ;设置代码 : 将代码中的 background-size 缩小一半 , 也就是精灵图缩小一半 ;

插入的放大镜精灵图 :

.search::before { /* 使用伪元素方式 插入 搜索栏放大镜图片 */ content: ""; /* 绝对布局 */ position: absolute; /* 令该图片放置在中间偏上位置 */ top: 5px; left: 5px; /* 设置图片宽高 */ width: 15px; height: 15px; /* 设置二倍精灵图 : 该图片在缩小一倍的精灵图的 59, 279 位置, 设置背景时将精灵图 向左移动 59 像素 向上移动 279 像素 */ background: url(../images/sprite.png) no-repeat -59px -279px; /* 这里涉及到了精灵图缩放 原图 208 像素 此处设置为 104 像素 */ background-size: 104px auto;}

插入的头像精灵图 :

.user::before { /* 使用伪元素方式 插入 用户栏头像图片 */ content: ""; /* 设置显示样式 流式布局 块级元素 上方设置按钮 会自动将文字挤到下面显示 */ display: block; /* 设置图标的宽高 */ width: 23px; height: 23px; /* 设置二倍精灵图 : 该图片在缩小一倍的精灵图的 59, 194 位置, 设置背景时将精灵图 向左移动 59 像素 向上移动 194 像素 */ background: url(../images/sprite.png) no-repeat -59px -194px; /* 这里涉及到了精灵图缩放 原图 208 像素 此处设置为 104 像素 */ background-size: 104px auto; /* 设置用户信息按钮外边距 */ margin: 4px auto -2px;}

5、CSS3 中的垂直居中对齐 - 行高 = 内容高度 ( 总高度 - 边框高度 - 内边距高度 )

普通盒子模型中 , 设置垂直居中对齐时 , 直接设置 内容高度 = 行高 即可 ;

由于采用的是 CSS3 样式 , 该模式下 , 设置的 height 高度 = 内容高度 + 边框高度 + 内边距 ;

如果要设置垂直居中 , 只能设置其中的 行高 = 内容高度 , 要把 2 像素的边框去掉 ;

因此在该 CSS3 样式中 , 高度设置为 26 像素 , 其中包括了 24 像素的内容高度 , 2 像素的边框高度 ( 上下边框各 1 像素 ) ;

/* 设置 高度 = 26 行高 = 24 像素 垂直居中 设置行高 = 26 会偏下 上面的设置 高度 不等于 行高 原因是 这是 CSS3 模型 CSS3 中的垂直居中是在 边框 + 内边距 + 尺寸 的总高度中垂直居中 */ height: 26px; line-height: 24px;

完整代码示例 :

.search { /* 搜索框样式 */ /* 子绝父相 放大镜图标子元素设置绝对定位 父容器需要设置相对定位 */ position: relative; /* 设置 高度 = 26 行高 = 24 像素 垂直居中 设置行高 = 26 会偏下 上面的设置 高度 不等于 行高 原因是 这是 CSS3 模型 CSS3 中的垂直居中是在 边框 + 内边距 + 尺寸 的总高度中垂直居中 */ height: 26px; line-height: 24px; border: 1px solid #ccc; /* 设置该搜索框占据除右侧固定大小按钮之外的剩余父容器空间 */ flex: 1; /* 设置文字大小和颜色 */ font-size: 12px; color: #666; /* 设置搜索框的内外边距 */ margin: 7px 10px; padding-left: 25px; /* 设置搜索框圆角矩形半径 */ border-radius: 5px; /* 设置盒子模型阴影 */ box-shadow: 0 2px 4px rgba(0, 0, 0, .2);}二、代码示例1、HTML 标签结构

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <!-- 设置 meta 视口标签 --> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/index.css"> <title>Flex 弹性布局案例</title></head><body> <!-- 顶部固定定位搜索栏 - 不随着页面滑动而消失 --> <div class="search-index"> <!-- 搜索栏提示内容 --> <div class="search">输入搜索信息</div> <!-- 搜索栏右侧按钮 --> <a href="#" class="user">我 的</a> </div></body></html>

2、CSS 样式

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: #000; /* 行高 */ line-height: 1.5; /* 水平方向超出隐藏 */ overflow-x: hidden;}/*点击高亮我们需要清除清除 设置为transparent 完成透明*/* { -webkit-tap-highlight-color: transparent;}/*在移动端浏览器默认的外观在iOS上加上这个属性才能给按钮和输入框自定义样式*/input { -webkit-appearance: none;}/*禁用长按页面时的弹出菜单*/img,a { -webkit-touch-callout: none;}a { color: #000; /* 取消链接的下划线样式 */ text-decoration: none;}ul { /* 设置列表的默认样式 */ margin: 0; padding: 0; /* 去掉小圆点 */ list-style: none;}img { /* 图片与文字对齐样式 默认是与文字基线对齐 */ vertical-align: middle;}div { /* css3 盒子模型 */ box-sizing: border-box;}.clearfix:after { /* 清除浮动样式 */ content: ""; display: block; line-height: 0; visibility: hidden; height: 0; clear: both;}/* 上面是 CSS 的默认样式, 每个 CSS 文件都有上述样式, 下面开始就是正式样式 *//* 顶部固定定位搜索栏样式 */.search-index { /* 将其内部设置成 弹性布局 右侧的按钮设置固定大小 左侧搜索栏设置成 flex: 1 样式 自动占据剩余空间 */ display: flex; /* 固定定位盒子始终显示在浏览器中指定的位置 与父容器或其它容器无关 */ position: fixed; /* 固定定位盒子位置紧贴顶部 */ top: 0; /* 将固定定位的盒子在页面中居中对齐 先将盒子左侧设置到中心位置 注意 : 这个 50% 是相对于父容器的 也就是浏览器 */ left: 50%; /* 兼容老版本浏览器 */ -webkit-transform: translateX(-50%); /* 向左走盒子自身宽度的一半 */ transform: translateX(-50%); /* 固定的盒子模型必须设置宽度 */ width: 100%; /* 设置最大和最小宽度 */ min-width: 320px; max-width: 640px; /* 设置高度 */ height: 44px; /* 设置盒子背景颜色 */ background-color: #F6F6F6; /* 设置上下边框 */ border-top: 1px solid #ccc; border-bottom: 1px solid #ccc;}.search { /* 搜索框样式 */ /* 子绝父相 放大镜图标子元素设置绝对定位 父容器需要设置相对定位 */ position: relative; /* 设置 高度 = 26 行高 = 24 像素 垂直居中 设置行高 = 26 会偏下 上面的设置 高度 不等于 行高 原因是 这是 CSS3 模型 CSS3 中的垂直居中是在 边框 + 内边距 + 尺寸 的总高度中垂直居中 */ height: 26px; line-height: 24px; border: 1px solid #ccc; /* 设置该搜索框占据除右侧固定大小按钮之外的剩余父容器空间 */ flex: 1; /* 设置文字大小和颜色 */ font-size: 12px; color: #666; /* 设置搜索框的内外边距 */ margin: 7px 10px; padding-left: 25px; /* 设置搜索框圆角矩形半径 */ border-radius: 5px; /* 设置盒子模型阴影 */ box-shadow: 0 2px 4px rgba(0, 0, 0, .2);}.search::before { /* 使用伪元素方式 插入 搜索栏放大镜图片 */ content: ""; /* 绝对布局 */ position: absolute; /* 令该图片放置在中间偏上位置 */ top: 5px; left: 5px; /* 设置图片宽高 */ width: 15px; height: 15px; /* 设置二倍精灵图 : 该图片在缩小一倍的精灵图的 59, 279 位置, 设置背景时将精灵图 向左移动 59 像素 向上移动 279 像素 */ background: url(../images/sprite.png) no-repeat -59px -279px; /* 这里涉及到了精灵图缩放 原图 208 像素 此处设置为 104 像素 */ background-size: 104px auto;}.user { /* 用户栏样式 */ width: 44px; height: 44px; /* 设置文字大小为 12 像素 */ font-size: 12px; /* 设置文本居中 */ text-align: center; /* 设置文本颜色 */ color: #2eaae0;}.user::before { /* 使用伪元素方式 插入 用户栏头像图片 */ content: ""; /* 设置显示样式 流式布局 块级元素 上方设置按钮 会自动将文字挤到下面显示 */ display: block; /* 设置图标的宽高 */ width: 23px; height: 23px; /* 设置二倍精灵图 : 该图片在缩小一倍的精灵图的 59, 194 位置, 设置背景时将精灵图 向左移动 59 像素 向上移动 194 像素 */ background: url(../images/sprite.png) no-repeat -59px -194px; /* 这里涉及到了精灵图缩放 原图 208 像素 此处设置为 104 像素 */ background-size: 104px auto; /* 设置用户信息按钮外边距 */ margin: 4px auto -2px;}

3、展示效果

本文链接地址:https://www.jiuchutong.com/zhishi/299729.html 转载请保留说明!

上一篇:命令提示符被阻止运行怎么办(命令提示符用不了怎么办)

下一篇:目前最强的AI绘画模型——Midjourney v5(ai技术排名)

  • 抖音收藏锁了怎么解开(抖音收藏锁了怎么取消)

    抖音收藏锁了怎么解开(抖音收藏锁了怎么取消)

  • 钉钉直播回放为什么有的颜色不一样(钉钉直播回放为什么打不开)

    钉钉直播回放为什么有的颜色不一样(钉钉直播回放为什么打不开)

  • 淘宝店铺突然不存在了怎么办(淘宝店铺突然不存在了)

    淘宝店铺突然不存在了怎么办(淘宝店铺突然不存在了)

  • dgsetup是什么软件(ddu是啥软件)

    dgsetup是什么软件(ddu是啥软件)

  • vivos6是双卡双待吗(vivos6是双卡吗?)

    vivos6是双卡双待吗(vivos6是双卡吗?)

  • 戴尔g5键盘灯可以调颜色吗(戴尔g5 键盘灯)

    戴尔g5键盘灯可以调颜色吗(戴尔g5 键盘灯)

  • 华为d14和14有什么区别(华为14跟d14区别)

    华为d14和14有什么区别(华为14跟d14区别)

  • 美团众包长时间不用还能用吗(美团众包长时间不跑单会不会被注销)

    美团众包长时间不用还能用吗(美团众包长时间不跑单会不会被注销)

  • 突然无法访问移动网络(无法访问移动用户什么原因)

    突然无法访问移动网络(无法访问移动用户什么原因)

  • iphone11可以用纯流量卡吗(苹果11手机可以用纯流量卡吗)

    iphone11可以用纯流量卡吗(苹果11手机可以用纯流量卡吗)

  • 微视朋友圈能发60秒吗?(微视朋友圈能发多长视频)

    微视朋友圈能发60秒吗?(微视朋友圈能发多长视频)

  • 怎么查字数(怎么查字数统计)

    怎么查字数(怎么查字数统计)

  • qq通话中微信打过去显示什么(qq通话中微信打不开)

    qq通话中微信打过去显示什么(qq通话中微信打不开)

  • 搜狗输入法日语键盘怎么用(搜狗输入法日语怎么设置)

    搜狗输入法日语键盘怎么用(搜狗输入法日语怎么设置)

  • 情侣空间访客怎么设置(情侣空间访客怎么看)

    情侣空间访客怎么设置(情侣空间访客怎么看)

  • vnc是什么(vnc是什么牌子)

    vnc是什么(vnc是什么牌子)

  • vivox27的功能介绍(vivox27特色功能)

    vivox27的功能介绍(vivox27特色功能)

  • 充电宝6000毫安可以充几次(充电宝6000毫安够用吗)

    充电宝6000毫安可以充几次(充电宝6000毫安够用吗)

  • mac蓝屏无法开机(mac蓝屏怎么解决方法)

    mac蓝屏无法开机(mac蓝屏怎么解决方法)

  • 微信界面变黑怎么恢复(微信界面变黑怎么办)

    微信界面变黑怎么恢复(微信界面变黑怎么办)

  • 腾讯视频怎么评分电影(腾讯视频怎么评分打星)

    腾讯视频怎么评分电影(腾讯视频怎么评分打星)

  • 苹果7指纹键坏了有救吗(苹果7指纹键坏了怎么修)

    苹果7指纹键坏了有救吗(苹果7指纹键坏了怎么修)

  • airpods pro适用于哪些机型(airpods pro适用于华为吗)

    airpods pro适用于哪些机型(airpods pro适用于华为吗)

  • 苹果11没发票能保修吗(苹果没发票能全国联保吗)

    苹果11没发票能保修吗(苹果没发票能全国联保吗)

  • 人声鼎沸的意思是什么(人声鼎沸的意思是什么(最佳答案))

    人声鼎沸的意思是什么(人声鼎沸的意思是什么(最佳答案))

  • 微信怎么设置自己在忙(微信怎么设置自动抢红包功能)

    微信怎么设置自己在忙(微信怎么设置自动抢红包功能)

  • 华为p30pro闪光灯怎么开(华为p30pro闪光灯在哪里)

    华为p30pro闪光灯怎么开(华为p30pro闪光灯在哪里)

  • iphone如何使用hao客户端(iPhone如何使用推特)

    iphone如何使用hao客户端(iPhone如何使用推特)

  • Win11 22H2系统自动弹出文件管理器怎么办?Win11 22H2文件管理器自动出现解决方法(win11系统自动更新)

    Win11 22H2系统自动弹出文件管理器怎么办?Win11 22H2文件管理器自动出现解决方法(win11系统自动更新)

  • ispell命令  用于拼写检查程序(is-l命令)

    ispell命令 用于拼写检查程序(is-l命令)

  • phpcms批量移动怎么用(phpcms多站点)

    phpcms批量移动怎么用(phpcms多站点)

  • 小规模纳税人税收优惠2023
  • 外籍人员税收优惠政策
  • 代第三方收取的款项作为什么处理
  • 教育培训行业税负率是多少
  • 收到所得税退税怎么做账务处理
  • 小规模纳税人缴纳增值税怎么做账
  • 属于劳务分包合同
  • 远期汇票分为哪几种
  • 企业税收标准是多少
  • 保险公司代扣代缴车船税完税证明
  • 产品不合格造成客户损失怎么赔付
  • 银行负债类账户包括哪些
  • 残疾人收到房租租赁发票收入还要缴纳个税吗
  • 核定征收的公司用做账么
  • 税控盘全额抵扣怎么做账
  • 3%征收率的应税服务
  • 小规模企业所得税优惠政策最新2023
  • 流动资产周转次数
  • 证券公司手续费怎么收
  • 只有发票才能税前扣除吗
  • 核定征收的小规模企业优惠
  • 拍卖的物品
  • 出售废品收入
  • win10系统的任务栏
  • php23种设计模式
  • win11系统语言修改不了
  • 个人投资额是什么意思
  • 折扣负数的专用发票怎么开
  • 当期损益都有啥
  • 如何查看电脑型号信息
  • Python之ImportError: DLL load failed: 找不到指定的模块解决方案
  • 文件上传之后返回一个文件路径怎么设置
  • 计提公积金账务处理需要什么凭证
  • 增值税发票开红字发票后账务处理?
  • 玉兰种院子什么方位
  • 头歌java第一课
  • 给大家分享几个网站
  • unity loom插件
  • icse论文
  • 企业购买期货
  • 帝国cms怎么增加子栏目
  • python中默认值参数
  • mysql 小时差
  • 金税盘一天可以开多少张发票
  • 社保缴费基数和医保缴费基数一样吗
  • 个人独资企业怎么交个人所得税
  • 常见的防暑降温药有
  • 因员工过失造成的工伤用不用赔
  • 换货与退货
  • 营业税差额征税范围
  • 融资租赁首付款的性质
  • 进项转出的原因是什么
  • 低值易耗品最新定义
  • MySQL使用select语句查询指定表中指定列(字段)的数据
  • 通用SQL存储过程分页以及asp.net后台调用的方法
  • win7旗舰版系统还原无法启动
  • win7鼠标右键没有压缩文件
  • awk命令的功能是什么
  • win8应用商店废了
  • u盘运行win10系统
  • win8适合打游戏吗
  • win8.1怎么用
  • linux ids
  • win10如何彻底关掉自动锁屏
  • linux vmware命令行
  • win8杀毒软件关闭
  • opengl 顶点
  • quick-lua touch 触摸事件
  • jquery 字符串以什么开头
  • python 入门指南
  • rsync include-from
  • android中启动service的方法有
  • js中生成随机数
  • Firefox window.close()的使用注意事项
  • android如何防止js注入
  • js延时加载的方法
  • 百度地图一口价为什么还多收费
  • 蚌埠站到蚌埠南站多远
  • 四川省地方税务局
  • 个体如何申请税收优惠
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设