- 浏览: 919678 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (537)
- Java SE (114)
- Struts (18)
- Hibernate (25)
- Spring (3)
- Page_Tech (41)
- Others (87)
- Database (29)
- Server (24)
- OpenSource_Tools (15)
- IDE_Tool (22)
- Algorithm (28)
- Interview (22)
- Test (28)
- Hardware (1)
- Mainframe (25)
- Web application (4)
- Linux (3)
- PHP (17)
- Android (1)
- Perl (6)
- ubuntu (1)
- Java EE (9)
- Web Analysis (5)
- Node.js (2)
- javascript (2)
最新评论
-
一键注册:
request.getRequestURL()和request.getRequestURI() -
SuperCustomer:
...
SED的暂存空间和模式空间 -
juyo_ch:
讲得挺好理解的,学习了
java 死锁及解决 -
chinaalex:
最后一题答案正确,但是分析有误.按照如下过程,上一行为瓶,下一 ...
zz智力题 -
liaowuxukong:
多谢博主啦,弱弱的了解了一点。
C++/Java 实现多态的方法(C++)
最近在研究CSS,正好结合项目做了一个灵活的Tab页,使用纯HTML+CSS实现,正好总结一下。
首先看一下预览界面:
样例HTML可以访问:http://www.demo2do.com/htmldemo/school/attendance/AttendanceGlobal.html
下面开始讲述一下完成上述页面的步骤。
1. 构建HTML
构建HTML是整个过程最基础的部分。我们构建HTML比较关键的一个原则就是“还HTML标签其本来的含义”。所以在这里,我们应该合理分析一下期望做到的HTML的结构的情况,并加以分析,选择比较合适的HTML标签,而不是采用非标准的Table布局或者充斥着大量div和class的布局方式。事实上,现在存在着一种误区,就是凡事采用了DIV+CSS的方式进行页面编程的就是Web标准的,其实这是完全错误的观点,很容易就导致了“多div症”(divitus)或者“多类症”(classitis)。
回到正题,我们分析一下页面样式,可以将整个Tab页分成2个部分,分别是一级菜单和二级菜单,他们有类似的特点,并以横向方式排列。HTML标签中的无序列表就可以反映出这种逻辑关系。所以我们分别采用2个无序列表来表示一级菜单和二级菜单。代码如下:
其中,2个div将菜单级别划分开。其实在以后还会有其他的功效。此时,我们不妨View一下这张页面,我们可以惊喜的发现,这张页面就想Word文档一样,是可读的,这一点我们可以在整个过程做完以后再一次验证。
2. 构建基本CSS
先简单的让ul横向排列,这里面要注意元素float之后要注意清理
然后通过分别在LI 和 A 元素上应用背景来实现主菜单样式,这里有个比较重要的地方是A这个元素变成块级元素(display: block),这样可以便于我们下面做一些处理,也能使整个菜单应用到链接样式。
而其中的line-height,恰恰可以使A中的字纵向居中。text-align使得A中的字横向居中。
3. 使宽度自适应
我们在这里使用滑动门技术来做宽度自适应。下面简单介绍一下滑动门技术
简单来说,就是在LI上应用一幅大图像背景,并让这个背景居于右侧
然后在A上应用一个小图像背景,并让这个背景居于左侧,遮住大图像边缘
这样无论菜单文字内容长度怎么变,都不会破坏原来的结构了。
4. 当前菜单高亮显示
如果高亮当前页面,这个有很多种做法,最死板的是在每个页面上显式的定义类。
但是对于web项目来说,页面多数是动态的,所以这样不是最理想的方法。
我这里采用的方法是CSS选择器的灵活使用
在<div id="attendance" class="mainNavg">的代码中,我们可以使用不同的id作为选择器,由于CSS中的选择器id的优先级将大于class,所以只要根据id配合上li上面的id,就可以达到动态选择高亮选中的目的。
事实上,由于我们的页面都是动态的,所以id可以由后台生成,这样就可以通过id的不同组合非常精巧的实现了我们的需求。
5. 小技巧
最后可能还有一个问题你在想怎么实现的,就是高亮的tab如何把下面的横线遮掉的
很简单,图片上的小技巧。将高亮的图片高度设置为25px,而普通的图片设置为24px。然后通过padding,就可以将那根横线遮去了。
我们可以使用类似的方式,把二级菜单也做出来,这里就不详细叙述了。大家可以结合源码试一下。
附件为
首先看一下预览界面:
样例HTML可以访问:http://www.demo2do.com/htmldemo/school/attendance/AttendanceGlobal.html
下面开始讲述一下完成上述页面的步骤。
1. 构建HTML
构建HTML是整个过程最基础的部分。我们构建HTML比较关键的一个原则就是“还HTML标签其本来的含义”。所以在这里,我们应该合理分析一下期望做到的HTML的结构的情况,并加以分析,选择比较合适的HTML标签,而不是采用非标准的Table布局或者充斥着大量div和class的布局方式。事实上,现在存在着一种误区,就是凡事采用了DIV+CSS的方式进行页面编程的就是Web标准的,其实这是完全错误的观点,很容易就导致了“多div症”(divitus)或者“多类症”(classitis)。
回到正题,我们分析一下页面样式,可以将整个Tab页分成2个部分,分别是一级菜单和二级菜单,他们有类似的特点,并以横向方式排列。HTML标签中的无序列表就可以反映出这种逻辑关系。所以我们分别采用2个无序列表来表示一级菜单和二级菜单。代码如下:
- <div class="navg">
- <div id="attendance" class="mainNavg">
- <ul>
- <li id="attendanceNavg"><a href="#">考勤管理</a></li>
- <li id="teachNavg"><a href="#">教学管理</a></li>
- <li id="communicationNavg"><a href="#">家校互通</a></li>
- <li id="systemNavg"><a href="#">系统管理</a></li>
- </ul>
- </div>
- <div id="dailyAttendance" class="secondaryNavg">
- <ul>
- <li id="dailyAttendanceNavg"><a href="#">当天考勤</a></li>
- <li id="leaveApproveNavg"><a href="#">请假审批</a></li>
- <li id="attendanceStatisticsNavg"><a href="#">考勤统计</a></li>
- <li id="attendanceCollectNavg"><a href="#">考勤汇总</a></li>
- </ul>
- </div>
- </div>
<div class="navg"> <div id="attendance" class="mainNavg"> <ul> <li id="attendanceNavg"><a href="#">考勤管理</a></li> <li id="teachNavg"><a href="#">教学管理</a></li> <li id="communicationNavg"><a href="#">家校互通</a></li> <li id="systemNavg"><a href="#">系统管理</a></li> </ul> </div> <div id="dailyAttendance" class="secondaryNavg"> <ul> <li id="dailyAttendanceNavg"><a href="#">当天考勤</a></li> <li id="leaveApproveNavg"><a href="#">请假审批</a></li> <li id="attendanceStatisticsNavg"><a href="#">考勤统计</a></li> <li id="attendanceCollectNavg"><a href="#">考勤汇总</a></li> </ul> </div> </div>
其中,2个div将菜单级别划分开。其实在以后还会有其他的功效。此时,我们不妨View一下这张页面,我们可以惊喜的发现,这张页面就想Word文档一样,是可读的,这一点我们可以在整个过程做完以后再一次验证。
2. 构建基本CSS
先简单的让ul横向排列,这里面要注意元素float之后要注意清理
然后通过分别在LI 和 A 元素上应用背景来实现主菜单样式,这里有个比较重要的地方是A这个元素变成块级元素(display: block),这样可以便于我们下面做一些处理,也能使整个菜单应用到链接样式。
而其中的line-height,恰恰可以使A中的字纵向居中。text-align使得A中的字横向居中。
- .navg .mainNavg UL {
- margin: 0;
- padding: 0;
- list-style: none;
- }
- .navg .mainNavg UL LI {
- float: left;
- background-color: #E1E9F8;
- background: url(../images/tab_right.gif) no-repeat right top;
- margin: 10px 3px;
- height: 25px;
- }
- .navg .mainNavg UL LI A {
- display: block;
- height: 25px;
- padding: 0 25px;
- line-height: 24px;
- background-color: #E1E9F8;
- background: url(../images/tab_left.gif) no-repeat left top;
- text-decoration: none;
- float: left;
- text-align:center;
- color: #fff;
- font-weight: bold;
- }
.navg .mainNavg UL { margin: 0; padding: 0; list-style: none; } .navg .mainNavg UL LI { float: left; background-color: #E1E9F8; background: url(../images/tab_right.gif) no-repeat right top; margin: 10px 3px; height: 25px; } .navg .mainNavg UL LI A { display: block; height: 25px; padding: 0 25px; line-height: 24px; background-color: #E1E9F8; background: url(../images/tab_left.gif) no-repeat left top; text-decoration: none; float: left; text-align:center; color: #fff; font-weight: bold; }
3. 使宽度自适应
我们在这里使用滑动门技术来做宽度自适应。下面简单介绍一下滑动门技术
简单来说,就是在LI上应用一幅大图像背景,并让这个背景居于右侧
然后在A上应用一个小图像背景,并让这个背景居于左侧,遮住大图像边缘
这样无论菜单文字内容长度怎么变,都不会破坏原来的结构了。
4. 当前菜单高亮显示
如果高亮当前页面,这个有很多种做法,最死板的是在每个页面上显式的定义类。
但是对于web项目来说,页面多数是动态的,所以这样不是最理想的方法。
我这里采用的方法是CSS选择器的灵活使用
- #attendance #attendanceNavg,
- #teach #teachNavg,
- #communication #communicationNavg,
- #system #systemNavg {
- background: url(../images/tab_right_on.gif) no-repeat right top;
- }
- #attendance #attendanceNavg A,
- #teach #teachNavg A,
- #communication #communicationNavg A,
- #system #systemNavg A {
- background: url(../images/tab_left_on.gif) no-repeat left top;
- color: #0000ff;
- }
#attendance #attendanceNavg, #teach #teachNavg, #communication #communicationNavg, #system #systemNavg { background: url(../images/tab_right_on.gif) no-repeat right top; } #attendance #attendanceNavg A, #teach #teachNavg A, #communication #communicationNavg A, #system #systemNavg A { background: url(../images/tab_left_on.gif) no-repeat left top; color: #0000ff; }
在<div id="attendance" class="mainNavg">的代码中,我们可以使用不同的id作为选择器,由于CSS中的选择器id的优先级将大于class,所以只要根据id配合上li上面的id,就可以达到动态选择高亮选中的目的。
事实上,由于我们的页面都是动态的,所以id可以由后台生成,这样就可以通过id的不同组合非常精巧的实现了我们的需求。
5. 小技巧
最后可能还有一个问题你在想怎么实现的,就是高亮的tab如何把下面的横线遮掉的
很简单,图片上的小技巧。将高亮的图片高度设置为25px,而普通的图片设置为24px。然后通过padding,就可以将那根横线遮去了。
我们可以使用类似的方式,把二级菜单也做出来,这里就不详细叙述了。大家可以结合源码试一下。
附件为
- Prototype.rar (87.2 KB)
- 描述: 源文件
- 下载次数: 7901
发表评论
-
正则表达式(实例讲解)
2012-07-18 11:38 7671. 正则表达式规则1.1 普通字符 字母、数字、 ... -
正则表达式之我见
2012-07-18 11:20 766正则表达式就是一个模式匹配的表达式,通过这个表 ... -
zz 深入正则表达式
2012-07-18 11:13 8361. 什么是正 ... -
常用正则表达式
2012-07-18 10:14 8471、非负整数:^\d+$2、正整数:^[0-9]*[1-9][ ... -
zz 网站采集 url网址正则表达式
2012-07-18 10:12 1250正则表达式规则 1. 正则表达式规则1.1 普通字符 ... -
XMLNS的作用
2012-05-16 12:54 1063做WEB页面的人经常会碰到形如<html xmlns=& ... -
如何解决Tomcat下中文乱码问题?
2010-12-25 15:03 831现在将常见的乱码问题分为JSP页面显示中文乱码、表单提交乱 ... -
javascript中字符串替换函数replace()方法详解
2010-12-20 17:02 947replace()最简单的算是能力就是简单的字符替换。示例代码 ... -
JSP应用导出Excel报表的简单实现以及中文乱码彻底解决(HTML)
2010-10-28 15:58 1055Web应用导出Excel报表的简单实现(HTML) 在Web应 ... -
JSP导出excel
2010-10-28 15:33 2408将web页面上显示 ... -
JavaScript 一些函数
2010-10-26 16:05 891第一:onload 网页加载完执行的函数,这个代码是从 ... -
一些JS兼容问题
2010-10-26 15:57 8291. document.form.item 问题问题:代码中存 ... -
Jsp乱码问题
2010-10-26 15:51 695最基本的乱码问题 这 ... -
61548错误!
2010-09-26 15:59 1019最近写一个简单的FckEditor发文章的Web ... -
request.getParameterNames()和request.getParameterValues()
2010-09-19 10:34 1585request.getParameterNames()方法是将 ... -
AJAX学习
2010-09-16 20:33 766AJAX学习 AJAX技术背景介 ... -
各类Http请求状态(status)及其含义
2010-07-17 14:16 882Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下 ... -
不重新发送信息,则无法刷新网页
2010-06-24 13:33 1683如果想刷新一下从别的页面提交过来页面,有时会出现讨厌的“不重新 ... -
模态窗口的缓存问题
2010-04-13 09:17 1291有时频繁的打开弹出的模态框操作(比如编辑一个目标的名字),里面 ... -
Ajax.Request方法
2010-04-12 18:20 995Ajax.Request(url,{method:met ...
相关推荐
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1. 用户角色 管理员 药店员工/药师 客户 2. 功能描述 管理员功能 用户管理 创建、编辑和删除药店员工和药师的账户。 设置不同用户的权限,确保敏感信息的安全。 库存管理 实时监控药品库存状态,设置库存预警,防止缺货或过期。 支持药品入库、出库和退货记录,自动更新库存数量。 商品管理 添加、编辑和删除药品信息,包括名称、规格、价格、生产厂家、有效期等。 分类管理药品,如处方药、非处方药、保健品等。 销售管理 查看和管理销售记录,生成每日、每周和每月的销售报表。 分析销售数据,了解畅销产品和季节性变化,以优化库存。 财务管理 监控药店的收入与支出,并生成财务报表。 管理支付方式(现金、信用卡、电子支付)及退款流程。 客户管理 记录客户的基本信息和购买历史,提供个性化服务。 管理会员制度,设置积分和优惠活动。 药品监管符合性 确保药店遵循相关法规,跟踪药品的进货渠道和销售记录。 提供合规报告,确保按规定进行药品管理。 报告与分析 生成各类统计报表,包括销售分析、库存分析和客户行为分析。 提供决策支持,帮助制定更好的经营策略。 药店员工/药师功能 销售操作 处理顾客的药
Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
今天吴老师上课的时候说我.txt
检测骨架图像的交点Matlab代码.rar
MMC simulink 模块化多电平变流器 载波移相 双闭环仿真 输出谐波分析,线性自抗扰控制LADRC 有仿真文件
自动驾驶控制-斯坦利(stanely)算法路径跟踪仿真 matlab和carsim联合仿真搭建的无人驾驶斯坦利控制器仿真验证,可以实现双移线,圆形,以及其他自定义的路径跟踪。 跟踪效果如图,几乎没有误差,跟踪误差在0.05m以内。
TongRDS是redis的国产化替代品之一,里面含有相应的安装部署包及操作流程,详细介绍TongRDS的基本部署和基本开发使用。
基于mpvue实现豆瓣电影微信小程序@zce_mpvue-Douban
隔离型DCDC变器设计,LLC谐振变器闭环仿真,变频控制。 有自己做的对应明 ,十分详细。
Delphi in Depth - FireDAC.rar
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
ShellBox微信小程序,集日程查询、成绩查询、电费查询、图书查询等功能于一体的高校微信小软件_ShellBox
Java小程序项目源码,该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:小程序 后端框架:SSM/SpringBoot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
微信小程序校园微社区_ zafuBBS
计算图像的多向特征编码 (Contour Code Representation)Matlab代码.rar
电池超级电容混合储能系统能量管理超级电容matlab simulink储能模型仿真,能量管理蓄电池充放电模型 相关参考。
武汉市新版劳动合同
Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作