第1叶(hellburnn)

本文分享了前端开发中的一些实用技巧,包括使用absolute定位Logo、处理IE下的闭合浮动元素问题、实现导航栏hover效果覆盖虚线装饰以及解决二级导航栏的双倍margin问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

偶米想到现在专做前端了,从一个后端Java程序员,到PHP,再到web前端, 真是有趣。
越来越轻量级,团队合作也少了很多(可喜还是可悲?)。

这过程中肯定会碰到好多问题,做前端,要细心,像雕琢。。
经验的积累,变得更加重要了, 记录,把重要的都记下来,仅为了以后少点麻烦。


[img]http://www.bencode.cn/wp-content/uploads/1111.jpg[/img]

对,做的就是这个页面,虽然简单,但却也有些东西想记录

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 不知道为啥会破坏里面的文字。

嗯, 其实我那是舍近求远, 最后我采用绝对定位, 很方便地解决了这个问题。
资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 “UNITY自动追踪导弹源码”是一个基于Unity游戏引擎开发的项目,主要用于实现导弹自动追踪功能。它可能应用于游戏开发、模拟训练或其他需要目标追踪的场景。在Unity中,该功能通常涉及物理引擎、碰撞检测和自定义脚本。描述中提到的CSDN博客文章可能详细介绍了导弹自动追踪算法的基本原理、实现方法以及如何在Unity中应用这些算法,涵盖目标检测、预测、路径规划和控制理论等内容。 Unity是流行的游戏开发平台,支持3D和2D图形、物理模拟和强大的脚本系统。在这个项目中,“导弹”是游戏或模拟中的虚拟对象,按照预设规则移动;“自动追踪”是其核心功能,导弹能够自动调整方向和速度以追赶目标;“算法”则是实现这一功能的计算过程。 项目文件结构如下:Unity.PackageManagerUI.Editor.csproj及其他以.Editor.csproj结尾的文件是Unity编辑器扩展的一部分,可能包含自定义编辑器界面或工具;Unity.TextMeshPro.Editor.csproj和Unity.TextMeshPro.csproj涉及TextMeshPro,用于创建高质量动态文本;Unity.CollabProxy.Editor.csproj可能与Unity的版本控制集成相关,用于团队代码同步;Unity.Analytics.DataPrivacy.csproj涉及Unity Analytics的数据隐私设置或处理;Missile.csproj是导弹相关代码的项目文件,包含导弹类和追踪算法的实现;Assembly-CSharp.csproj是Unity默认的C#代码编译项目,包含游戏逻辑和脚本;Missile.sln是Visual Studio解决方案文件,用于管理项目依赖和构建设置;Ass
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值