前端的小玩意(9.3)——做一个仿360工具箱的web页面(我的工具里的模板和样式)

简介:

(三)我的工具页面布局

如图:



 

首先将其分为二部分;

第一部分是上方整体红色方框区域;

  • 包含若干个独立按钮,按钮分为图片和下方文字两部分;

 

第二部分是下方蓝色方框区域;

  • 包含左方的编辑按钮和右方的四个快捷按钮区域;
  • 左方是图标和文字,图标分为按下和非按下状态;
  • 右方是左边的文字和右侧的按钮,按钮又分为图标和文字。按钮在无图标时有占位图标。

 

 

先上模板:

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. //我的工具,和之前的div.toolbox-all平级  
  2. div.toolbox-my.displayNONE  
  3.     //上方区域  
  4.     div.toolbox-content  
  5.         //独立按钮  
  6.         div.tool-my  
  7.             div.img  
  8.             div.text    小清新日历  
  9.     //下方区域  
  10.     div.toolbox-foot  
  11.         //编辑按钮  
  12.         div.edit  
  13.             div.img  
  14.             div.text    编辑  
  15.         //右方区域  
  16.         div.shortcut  
  17.             //左边的描述文字  
  18.             div.description  
  19.                 div.text    主界面快捷入口:  
  20.             //右边四个按钮  
  21.             div.tool-foot  
  22.                 div.img  
  23.                 div.text    系统急救箱  
  24.             div.tool-foot.placeholder  
  25.                 div.placeholder-img  
  26.                 div.text    拖拽到此  
  27.             div.tool-foot.placeholder  
  28.                 div.placeholder-img  
  29.                 div.text    拖拽到此  
  30.             div.tool-foot.placeholder  
  31.                 div.placeholder-img  
  32.                 div.text    拖拽到此  


 

然后是CSS的样式:(会涉及图片,后补,图标图片除外)

[css]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. .back .contentbox .toolbox-my {  
  2.     background-colorwhite;  
  3.     padding30px 40px 90px 40px;  
  4.     positionrelative;  
  5. }  
  6.   
  7. .back .contentbox .toolbox-my .toolbox-content {  
  8.     width100%;  
  9.     height100%;  
  10.     overflow-x: hidden;  
  11.     overflow-y: auto;  
  12.     display: flex;  
  13.     flex-wrap: wrap;  
  14. }  
  15.   
  16. .back .contentbox .toolbox-my .toolbox-content .tool-my {  
  17.     width100px;  
  18.     height100px;  
  19.     display: inline-block;  
  20.     positionrelative;  
  21.     border1px solid transparent;  
  22.     -webkit-box-sizing: border-box;  
  23.     -moz-box-sizing: border-box;  
  24.     box-sizing: border-box;  
  25. }  
  26.   
  27. .back .contentbox .toolbox-my .toolbox-content .tool-my:hover {  
  28.     -webkit-border-radius: 2px;  
  29.     -moz-border-radius: 2px;  
  30.     border-radius: 2px;  
  31.     border1px solid #DADADA;  
  32. }  
  33.   
  34. .back .contentbox .toolbox-my .toolbox-content .tool-my .img {  
  35.     positionabsolute;  
  36.     top: 18px;  
  37.     left: 23px;  
  38.     right: 23px;  
  39.     bottom: 28px;  
  40.     background-imageurl("../img/toolsImg.png");  
  41.     background-position0 0;  
  42. }  
  43.   
  44. .back .contentbox .toolbox-my .toolbox-content .tool-my .text {  
  45.     positionabsolute;  
  46.     bottom: 9px;  
  47.     width100%;  
  48.     text-aligncenter;  
  49.     line-height12px;  
  50.     height12px;  
  51.     font-size12px;  
  52.     color#7c7c7c;  
  53. }  
  54.   
  55. .back .contentbox .toolbox-my .toolbox-foot {  
  56.     positionabsolute;  
  57.     left: 0;  
  58.     right: 0;  
  59.     bottom: 0;  
  60.     height95px;  
  61.     -webkit-box-sizing: border-box;  
  62.     -moz-box-sizing: border-box;  
  63.     box-sizing: border-box;  
  64.     border-top1px solid rgb(218218218);  
  65. }  
  66.   
  67. .back .contentbox .toolbox-my .toolbox-foot .edit {  
  68.     width32px;  
  69.     height52px;  
  70.     positionabsolute;  
  71.     top: 22px;  
  72.     left: 30px;  
  73. }  
  74.   
  75. .back .contentbox .toolbox-my .toolbox-foot .edit .img {  
  76.     width32px;  
  77.     height32px;  
  78.     background-imageurl(../img/toolbox.png);  
  79.     background-position-120px 0;  
  80. }  
  81.   
  82. .back .contentbox .toolbox-my .toolbox-foot .edit .img:hover {  
  83.     background-position-120px -50px;  
  84. }  
  85.   
  86. .back .contentbox .toolbox-my .toolbox-foot .edit .text {  
  87.     width32px;  
  88.     height20px;  
  89.     line-height20px;  
  90.     vertical-alignbottom;  
  91.     colorrgb(0138225);  
  92.     font-size12px;  
  93.     text-aligncenter;  
  94.     cursordefault;  
  95. }  
  96.   
  97. .back .contentbox .toolbox-my .toolbox-foot .shortcut {  
  98.     positionabsolute;  
  99.     right: 13px;  
  100.     top: 9px;  
  101.     bottom: 15px;  
  102.     width450px;  
  103.     display: flex;  
  104.     justify-content: flex-end;  
  105.     align-items: flex-end;  
  106. }  
  107.   
  108. .back .contentbox .toolbox-my .toolbox-foot .shortcut .description {  
  109.     width98px;  
  110.     height22px;  
  111. }  
  112.   
  113. .back .contentbox .toolbox-my .toolbox-foot .shortcut .description .text {  
  114.     height22px;  
  115.     line-height22px;  
  116.     font-size11px;  
  117.     color#7c7c7c;  
  118.     vertical-aligntop;  
  119. }  
  120.   
  121. .back .contentbox .toolbox-my .toolbox-foot .shortcut .tool-foot {  
  122.     width76px;  
  123.     height70px;  
  124.     border1px solid transparent;  
  125.     -webkit-border-radius: 2px;  
  126.     -moz-border-radius: 2px;  
  127.     border-radius: 2px;  
  128.     -webkit-box-sizing: border-box;  
  129.     -moz-box-sizing: border-box;  
  130.     box-sizing: border-box;  
  131.     positionrelative;  
  132. }  
  133.   
  134. .back .contentbox .toolbox-my .toolbox-foot .shortcut .tool-foot:hover {  
  135.     border1px solid #dadada;  
  136. }  
  137.   
  138. .back .contentbox .toolbox-my .toolbox-foot .shortcut .tool-foot .img {  
  139.     positionabsolute;  
  140.     top: 13px;  
  141.     left: 21px;  
  142.     right: 21px;  
  143.     height34px;  
  144.     -webkit-border-radius: 2px;  
  145.     -moz-border-radius: 2px;  
  146.     border-radius: 2px;  
  147.     -webkit-box-sizing: border-box;  
  148.     -moz-box-sizing: border-box;  
  149.     box-sizing: border-box;  
  150.     border1px solid transparent;  
  151.     background-imageurl("../img/toolsImg.png");  
  152.     background-size615px 615px;  
  153.     /* 
  154.         这个用于计算位置,和实际位置需要乘以61.5% 
  155.         background-position: 0 0; 
  156.     */  
  157. }  
  158.   
  159. .back .contentbox .toolbox-my .toolbox-foot .shortcut .tool-foot .text {  
  160.     positionabsolute;  
  161.     bottom: 3px;  
  162.     width100%;  
  163.     text-aligncenter;  
  164.     line-height12px;  
  165.     height12px;  
  166.     font-size12px;  
  167.     color#7c7c7c;  
  168. }  
  169.   
  170. .back .contentbox .toolbox-my .toolbox-foot .shortcut .tool-foot.placeholder:hover {  
  171.     border1px solid transparent;  
  172. }  
  173.   
  174. .back .contentbox .toolbox-my .toolbox-foot .shortcut .tool-foot.placeholder .placeholder-img {  
  175.     positionabsolute;  
  176.     top: 13px;  
  177.     left: 21px;  
  178.     right: 21px;  
  179.     height34px;  
  180.     -webkit-border-radius: 2px;  
  181.     -moz-border-radius: 2px;  
  182.     border-radius: 2px;  
  183.     -webkit-box-sizing: border-box;  
  184.     -moz-box-sizing: border-box;  
  185.     box-sizing: border-box;  
  186.     border1px dotted #7c7c7c;  
  187. }  


 

然后对之前的一些csshtml修改:

首先,删除掉

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. div.BigTool  
  2.     span.img(style='background-image: url(../img/bigImg03.png)')  

注意,以上共三个,最后的图片链接不同,修改为:

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. div.BigTool  
  2.     span.img  
我们将加载一个大图片,然后实际生成的时候,设置background-position属性,来设置其加载哪个图片

修改以下同名样式为:

[css]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. .back .contentbox .toolbox-all .firstRow .BigTool .img {  
  2.     display: inline-block;  
  3.     positionabsolute;  
  4.     width100%;  
  5.     height100%;  
  6.     background-imageurl("../img/bigImg.png");  
  7.     background-position0 0;;  
  8. }  


然后修改该样式:

[css]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. .back .contentbox .commanRow .normalTool .img {  
  2.     positionrelative;  
  3.     display: inline-block;  
  4.     width60px;  
  5.     height60px;  
  6.     background-imageurl("../img/toolsImg.png");  
  7.     background-position0 0;;  
  8. }  


 

于是,我们需要三个图片:

toolbox.png 放零碎的图标,

bigImg.png 放大图标,图标尺寸为300x160

toolsImg.png 放普通图标,尺寸为52x52

 

我自己已经切好了(话说切图好无聊),下载链接为:

http://jianwangsan.cn/img/toolbox.png

http://jianwangsan.cn/img/bigImg.png

http://jianwangsan.cn/img/toolsImg.png

 

放在img文件夹之内食用

 

目前效果应该如下:





图片之所以重复,是因为使用的是默认第一个位置的图片,在实际生成的时候,会进行修改。

 

demo链接:

http://jianwangsan.cn/toolbox


这个页面做完,主要部分的页面就做完啦~~当然,这只是模板,具体生成内容,会在第四部分通过js来读取json而生成,读取JSON生成的好处,在于日后无论添加、删除或者修改图标,甚至逻辑,都很容易。

目录
相关文章
|
5天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
29 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
8天前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
26 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
11天前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
141 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
24天前
|
Dart 前端开发 容器
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
75 18
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
26天前
|
缓存 前端开发 IDE
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
27 0
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
27天前
|
Dart 前端开发
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
116 75
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
29天前
|
缓存 前端开发 Android开发
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
79 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
|
1月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
36 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
1月前
|
前端开发 JavaScript 开发者
前端 CSS 优化:提升页面美学与性能
前端CSS优化旨在提升页面美学与性能。通过简化选择器(如避免复杂后代选择器、减少通用选择器使用)、合并样式表、合理组织媒体查询,可减少浏览器计算成本和HTTP请求。利用硬件加速和优化动画帧率,确保动画流畅。定期清理冗余代码并使用缩写属性,进一步精简代码。这些策略不仅加快页面加载和渲染速度,还提升了视觉效果,为用户带来更优质的浏览体验。
|
2月前
|
设计模式 前端开发 搜索推荐
前端必须掌握的设计模式——模板模式
模板模式(Template Pattern)是一种行为型设计模式,父类定义固定流程和步骤顺序,子类通过继承并重写特定方法实现具体步骤。适用于具有固定结构或流程的场景,如组装汽车、包装礼物等。举例来说,公司年会节目征集时,蜘蛛侠定义了歌曲的四个步骤:前奏、主歌、副歌、结尾。金刚狼和绿巨人根据此模板设计各自的表演内容。通过抽象类定义通用逻辑,子类实现个性化行为,从而减少重复代码。模板模式还支持钩子方法,允许跳过某些步骤,增加灵活性。
142 11

热门文章

最新文章

  • 1
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    29
  • 2
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    51
  • 3
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 4
    巧用通义灵码,提升前端研发效率
    93
  • 5
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    141
  • 6
    详解智能编码在前端研发的创新应用
    96
  • 7
    智能编码在前端研发的创新应用
    83
  • 8
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    37
  • 9
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    121
  • 10
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    75