偶米想到现在专做前端了,从一个后端Java程序员,到PHP,再到web前端, 真是有趣。
越来越轻量级,团队合作也少了很多(可喜还是可悲?)。
这过程中肯定会碰到好多问题,做前端,要细心,像雕琢。。
经验的积累,变得更加重要了, 记录,把重要的都记下来,仅为了以后少点麻烦。
对,做的就是这个页面,虽然简单,但却也有些东西想记录
1. Logo
用的是 absolute 定位,当然是相对于外围的container的, 外围container是固定的宽度, 水平居中对齐。
2. 顶导横(top nav)
是一个包含链接的无序列表
要实现的hover效果,链接的 display 为 block, 为了在IE下不让其扩展开,需要 float left
因为水平方向, 所以 li 的 float 为 left, 这同时也闭合了里面的a元素(浮动元素闭合浮动元素)
下面要闭合 top nav 的 ul, 我是用这样的css的
#top-nav {
overflow: auto;
width: 898px;
...
当然,可以使用float left闭合, 但是紧挨top-nav上面的Logo是绝对定位的, 这样在IE下,LOGO可能会莫名消失,
所以在absolute旁边的元素,我没有使用float, 而是采用 overflow: auto定位
但这在IE中还不够, 还需要一个css语句触发layout让其闭合, 恰好这里需要一个width。
如果不能设置windth, 那么我们可以这样闭合:
#id {
overflow: auto;
display: inline-block; // 这个会让IE闭合浮动元素
}
#id {
display: block; // 把它设置回来
}
当然可以使用zoom:1, _height:1% 等来触发ie的layout,这些东西感觉专门为IE设计的,但是却通不过w3c css validator,
我们公司的客户很挑剔:
1.首先要在各种浏览器中完美显示
2.代码要精简,美观,后续程序员才可以更好地工作(在欧洲,我们接触不到, 也不会德语)
3.需要通过xhtml1.0 strict w3c validator和css validator,而且最好还要无警告(这个很晕)。
3. 主导横
也是一个无序列表ul, 列表中有链接, ul之间有虚线装饰, hover 的时候,要盖住两边的虚线,如上图。
首先,li之间的那条虚线,可以采用 background 来显示(放在top 还是bottom上呢?)
我把 li 的margin-top 设置为-1, 这样hover的时候, 不仅能盖住自己的元素,而且能盖住上面元素的最后一个像素
如果虚线刚好在这个像素内,那就完成任务啦。
大概像这样:
#main-nav li {
margin-top: -1px;
}
#main-nav li a {
display: block;
width: 159px;
color: #fff;
text-align: right;
padding: 7px 20px 5px 0px;
background: url(../img/main_nav_item_bg.gif) no-repeat left bottom; // 虚线放在底部
}
#main-nav li a:hover {
color: #7d1e1c;
text-decoration: none;
background: url(../img/main_nav_item_hover_bg.gif) repeat left top; //...
}
4. 二级导横
本来我想采用float right 再 margin right, 负margin top, 但是这时候肯定会碰到双倍margin(right)的问题。
双倍margin的问题,本可以在元素加 display: inline来解决, 但在我这个问题中,加入inline 不知道为啥会破坏里面的文字。
嗯, 其实我那是舍近求远, 最后我采用绝对定位, 很方便地解决了这个问题。
分享到:
相关推荐
本微信学习自律养成小程序的设计与实现有管理员和用户两个角色。管理员功能有个人中心,用户管理,学习计划管理,计划打卡管理,计划历史管理,留言板管理,系统管理等。用户功能有注册登录,学习计划,计划打卡,计划历史,留言板管理,留言板等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
关于开展研究性学习课程的通知 (2).doc
【国富期货-2024研报】USDA美豆当周出口检验162万吨符合预期CONAB巴西大豆播种率94.1%.pdf
项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
深圳建设工程集团施工现场审计管理规定
在`Qt`的广袤编程世界里,隐藏着如魔法般强大的元素,那便是`Q_ENUM`、`Q_FLAG`以及与之紧密相连的`Q_DECLARE_FLAGS`、`Q_DECLARE_OPERATORS_FOR_FLAGS`。它们犹如神秘的咒语与符文,一旦掌握,便能点亮高效编程之路。无论是构建复杂的图形界面,还是处理底层的数据逻辑,这些`Qt`进阶魔法都将赋予开发者全新的力量,让代码更加简洁、灵活且美观。
文件网络安全学习视频我爱i
CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
本微信点餐系统小程序管理员功能有个人中心,用户管理,菜品管理,新上菜品管理,预定订单管理,活动信息管理,用户评价管理,系统管理,订单管理等。用户功能有个人中心,订购菜品,我的订单,我的收藏,评价菜品等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
本地磁盘E的文件使用查找到的
解压之后在elasticsearch的jdk\conf\security\java.policy文件下新增这段,然后重启es就可以使用了 permission java.net.SocketPermission "*", "connect,resolve"; permission java.lang.RuntimePermission "setContextClassLoader"; permission java.lang.RuntimePermission "accessDeclaredMembers"; permission java.lang.RuntimePermission "createClassLoader"; permission java.security.SecurityPermission "putProviderProperty.MySQLScramSha1Sasl"; permission java.security.SecurityPermission "insertProvider";
CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
中国象棋项目c++可视化qt
【资源说明】 基于知识图谱的推荐算法-KGCN实现源码+文档+全部资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3
CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
本微信小程序打印室预约有管理员和用户两个角色。管理员功能有个人中心,用户管理,附近打印店管理,文件打印管理,当前预约管理,预约历史管理,打印记录管理,系统管理等。用户功能有搜索附近打印店,打印预约,当前预约,预约历史,我的收藏,在线客服等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用KEIL 标准库开发,当前在STM32F407运行,如果是STM32F407其他型号芯片,依然适用,请自行更改KEIL芯片型号以及FLASH容量即可。 3、软件下载时,请注意keil选择项是jlink还是stlink。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。
CSDN Matlab研究室上传的资料均有对应的仿真结果图,仿真结果图均是完整代码运行得出,完整代码亲测可用,适合小白; 1、完整的代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作