- 浏览: 932228 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (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 7881. 正则表达式规则1.1 普通字符 字母、数字、 ... -
正则表达式之我见
2012-07-18 11:20 783正则表达式就是一个模式匹配的表达式,通过这个表 ... -
zz 深入正则表达式
2012-07-18 11:13 8621. 什么是正 ... -
常用正则表达式
2012-07-18 10:14 8761、非负整数:^\d+$2、正整数:^[0-9]*[1-9][ ... -
zz 网站采集 url网址正则表达式
2012-07-18 10:12 1273正则表达式规则 1. 正则表达式规则1.1 普通字符 ... -
XMLNS的作用
2012-05-16 12:54 1094做WEB页面的人经常会碰到形如<html xmlns=& ... -
如何解决Tomcat下中文乱码问题?
2010-12-25 15:03 850现在将常见的乱码问题分为JSP页面显示中文乱码、表单提交乱 ... -
javascript中字符串替换函数replace()方法详解
2010-12-20 17:02 968replace()最简单的算是能力就是简单的字符替换。示例代码 ... -
JSP应用导出Excel报表的简单实现以及中文乱码彻底解决(HTML)
2010-10-28 15:58 1077Web应用导出Excel报表的简单实现(HTML) 在Web应 ... -
JSP导出excel
2010-10-28 15:33 2435将web页面上显示 ... -
JavaScript 一些函数
2010-10-26 16:05 915第一:onload 网页加载完执行的函数,这个代码是从 ... -
一些JS兼容问题
2010-10-26 15:57 8601. document.form.item 问题问题:代码中存 ... -
Jsp乱码问题
2010-10-26 15:51 713最基本的乱码问题 这 ... -
61548错误!
2010-09-26 15:59 1059最近写一个简单的FckEditor发文章的Web ... -
request.getParameterNames()和request.getParameterValues()
2010-09-19 10:34 1617request.getParameterNames()方法是将 ... -
AJAX学习
2010-09-16 20:33 785AJAX学习 AJAX技术背景介 ... -
各类Http请求状态(status)及其含义
2010-07-17 14:16 910Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下 ... -
不重新发送信息,则无法刷新网页
2010-06-24 13:33 1712如果想刷新一下从别的页面提交过来页面,有时会出现讨厌的“不重新 ... -
模态窗口的缓存问题
2010-04-13 09:17 1313有时频繁的打开弹出的模态框操作(比如编辑一个目标的名字),里面 ... -
Ajax.Request方法
2010-04-12 18:20 1026Ajax.Request(url,{method:met ...
相关推荐
少儿编程scratch项目源代码文件案例素材-岩浆生存 双人游戏.zip
2024安全行业大模型技术应用态势发展报告-中国通信标准化协会
scratch少儿编程逻辑思维游戏源码-海上遭遇.zip
少儿编程scratch项目源代码文件案例素材-羊羊繁殖V1.zip
通信行业:“数据要素X”三年行动规划,面向应用场景挖掘数据价值
内容概要:文章详细探讨了数据连接性和云集成在增强汽车电子电气架构(EEA)方面的重要作用。首先介绍了从分布式到集中式架构的技术演进,解释了域集中式和中央集中式架构的优势,如远程软件升级(OTA)、软硬件解耦等。其次,阐述了云平台在远程软件更新、数据存储与分析等方面的支持作用。接着,强调了数据连接性在实时通信、低延迟决策、多模态传感器融合以及工业物联网集成中的核心作用。此外,讨论了云集成在个性化服务、AI助手、自动驾驶训练与仿真、预测性维护等方面的应用。最后,分析了市场需求与政策支持对这一领域的影响,并展望了未来的发展趋势,如5G-A/6G、边缘计算与AI大模型的融合。 适用人群:汽车电子工程师、智能网联汽车行业从业者及相关领域的研究者。 使用场景及目标:①理解汽车电子电气架构从分布式到集中式的演进过程及其带来的优势;②掌握数据连接性和云集成在提升车辆智能化水平的具体应用和技术细节;③了解相关政策法规对智能网联汽车发展的支持与规范;④探索未来技术发展趋势及其可能带来的变革。 其他说明:本文不仅提供了技术层面的深入解析,还结合了实际应用案例,如特斯拉、蔚来、中联重科、约翰迪尔等企业的实践成果,有助于读者全面理解数据连接性和云集成在现代汽车工业中的重要地位。同时,文中提及的政策法规也为行业发展指明了方向。
少儿编程scratch项目源代码文件案例素材-消灭病毒大作战.zip
scratch少儿编程逻辑思维游戏源码-靶子射击.zip
scratch少儿编程逻辑思维游戏源码-飞翔圣诞老人.zip
scratch少儿编程逻辑思维游戏源码-尖刺.zip
少儿编程scratch项目源代码文件案例素材-小圆点.zip
scratch少儿编程逻辑思维游戏源码-疾速逃生.zip
scratch少儿编程逻辑思维游戏源码-火柴人地底冒险.zip
scratch少儿编程逻辑思维游戏源码-吉文战争.zip
scratch少儿编程逻辑思维游戏源码-荒野跑酷.zip
基于java开发的以酒交友的社交APP软件+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于java开发的以酒交友的社交APP软件+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于java开发的以酒交友的社交APP软件+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于java开发的以酒交友的社交APP软件+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于java开发的以酒交友的社交APP软件+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于java开发的以酒交友的社交APP软件+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于java开发的以酒交友的社交APP软件+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用
scratch少儿编程逻辑思维游戏源码-滚动天空3D 创造版.zip
scratch少儿编程逻辑思维游戏源码-孤岛绿洲.zip
内容概要:本文档详细介绍了利用MATLAB编程实现Heilder模型对雷电波激励下空间任意点处的时域和频域波形进行分析的方法。首先定义了一个用于计算雷电通道底部电流的Heilder模型函数,该函数能够模拟不同参数条件下的雷电电流波形。接着,通过设定观测点参数和雷电参数,在时域中计算电场强度,并解释了如何使用离散差分方法代替复杂的积分方程求解。对于频域分析,则采用了快速傅里叶变换(FFT)将时域信号转换为频域表示,同时给出了相应的频域计算公式以及绘图指导。此外,还提供了若干编程技巧和注意事项,如避免数值计算溢出、防止频谱泄漏等。 适用人群:电气工程专业学生、从事电磁兼容研究的技术人员、对雷电现象感兴趣的科研工作者。 使用场景及目标:适用于需要理解和掌握雷电波传播特性的研究人员,帮助他们更好地理解雷电波的空间分布规律,从而应用于防雷保护系统的设计优化等方面。 其他说明:文中提供的所有代码均可以在MATLAB R2020a及以上版本环境中正常运行,且附带详细的注释以便于初学者学习。
vs_community__VS2019 防止以后不好找