热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

标签页-导航负margin

*标签页菜单*div.bs-docs-example{position:relative;width:600px;margin:15pxauto;padding:

 


/* 标签页菜单 */
div.bs-docs-example {
position: relative;
width: 600px;
margin: 15px auto;
padding: 39px 19px 14px;
background-color: white;
border: 1px solid #DDD;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}

div.bs-docs-example::after {
content: "Example";
position: absolute;
top: -1px;
left: -1px;
padding: 3px 7px;
font-size: 12px;
font-weight: bold;
background-color: #F5F5F5;
border: 1px solid #DDD;
color: #9DA0A4;
-webkit-border-radius: 4px 0 4px 0;
-moz-border-radius: 4px 0 4px 0;
border-radius: 4px 0 4px 0;
}

div.clear {
clear: both;
}

ul.nav-tabs {
border-bottom: 1px solid #DDD;
padding: 0;
margin: 0;
}

ul.nav-tabs li {
margin-bottom: -1px;
float: left;
line-height: 20px;
}

ul.nav-tabs li a {
display: block;
padding: 8px 12px;
line-height: 20px;
font-size: 14px;
color: #08C;
border: 1px solid transparent;
-webkit-border-radius: 4px 4px 0 0;
-moz-border-radius: 4px 4px 0 0;
border-radius: 4px 4px 0 0;
padding-right: 12px;
margin-right: 2px;
}

ul.nav-tabs li a:hover {
background: #eee;
color: #005580;
}

ul.nav-tabs li.active a:hover,ul.nav-tabs li.active a:focus {
color: #555;
cursor: default;
background-color: white;
border: 1px solid #DDD;
border-bottom-color: transparent;
}


 

*****

一个完整的margin属性是这么写的margin: top right bottom left;(eg: margin:10px 20px 30px 40px)。在margin属性中一共有两类参考线,top和left的参考线属于一类,right和bottom的参考线属于另一类。top和left是以外元素为参考,right和bottom是以元素本身为参考。margin的位移方向是指margin数值为正值时候的情形,如果是负值则位移方向相反。

 

这是第四个选项卡的内容,据我所知至今没有一套完整的关于负margin专题研究的文章。有也仅仅是偏理论或者偏实例,理论终究是理论,学以致用才是根本,而有了实例你还得知道其原理,授人鱼不如授人以渔。这些都是文字文字文字文字文字。
 

核心分析:

如上面的这个Tab选项卡效果,最核心的就是下方俩行高亮部分代码,第二行的margin-bottom:-1px;使下方的正文部分向上“提”了1px的距离,从而达到了鼠标上移后选项卡白色遮住下方黑色边框的效果(注:由于IE不是符合W3C标准,所以当鼠标移到选项卡上时需要添加一个额外属性position:relative;来修复IE不覆盖下方边框的这个Bug)。第四行的margin-left:-1px;的目的是让四个选项卡向左移动1px的距离,达到左右都只有一条分割线的效果。

CSS代码:

1
2
3
4
5
6
7
8
9
.demoTab{ width : 400px ; font : 14px / 1.5 Microsoft YaHei, verdana , Helvetica , Arial , sans-serif ;}
.demoTab .demoTabHd{ margin-bottom : -1px ; border : 1px solid #6C92AD ; border-bottom : none ; background : #EAF0FD ;}
.demoTab .demoTabNav{ height : 28px ; overflow : hidden ; *zoom: 1 ;}
.demoTab .demoTabList{ float : left ; margin-left : -1px padding : 0 22px ; line-height : 28px ; border-left : 1px solid #6C92AD ; border-right : 1px solid #6C92AD font-weight : bold ; color : #005590 ; text-align : center ; cursor : pointer ;}
.demoTab .demoTabList.current{ position : relative ; background : #fff ;}
.demoTab .demoTabBd{ border : 1px solid #6C92AD ;}
.demoTab .demoTabBd .roundBox{ padding : 15px ;}
.demoTab .demoTabContent{ display : none ;}
.demoTab .demoTabContent.current{ display : block ;}

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
< div id = "demoTab" class = "demoTab" >
   < div class = "demoTabHd" >
     < ul class = "demoTabNav clearfix" >
       < li class = "demoTabList current" >前端 li >
       < li class = "demoTabList" >实战 li >
       < li class = "demoTabList" >交互 li >
       < li class = "demoTabList" >优化 li >
     ul >
   div >
   < div class = "demoTabBd" >
     < div class = "roundBox" >
       < div class = "demoTabContent current" >这是第一个选项卡的内容。 div >
       < div class = "demoTabContent" >这是第二个选项卡的内容。 div >
       < div class = "demoTabContent" >这是第三个选项卡的内容。 div >
       < div class = "demoTabContent" >这是第四个选项卡的内容。 div >
     div >
   div >
div >

负margin负位移技术应用:

效果预览:

alt = "toygers kittens" />
   a >
   < span class = "demoIcon" >< img width = "54" height = "54" src = "buyInSoon.png" alt = "icon" /> span >
div >

利用负margin制作鳞片式导航:

效果预览:

 

 

核心分析:

鳞片式导航可以说是使用负margin技术最佳场合之一。如上方的例子,试着想象不使用负margin,单纯的使用图片来制作这类鳞片式导航,想象下切图、定位、点击后图片切换、中间接壤部分的遮罩、维护开发的工作量,光想想这些就不寒而栗。而利用负margin这里仅仅添加一个margin-left即可达到前后遮盖的效果。

CSS代码:

1
2
3
4
5
6
.demoNav .demoList{ float : left ; width : 154px ; height : 53px ; margin : 0 0 0 -20px ;}
.demoNav .demoList.firstList{ margin : 0 ;}
.demoNav .demoList a{ display : block ; line-height : 53px ; padding : 0 0 0 25px ; color : #005590 ; background : url ( "flakeNavTab.png" ) left top no-repeat ; font-weight : bold ; text-decoration : none ;}
.demoNav .demoList a:hover{ background : url ( "flakeNavTabHover.png" ) left top no-repeat ;}
.demoNav .demoList.current a{ background : url ( "flakeNavTabCurrent.png" ) left top no-repeat ;}
.demoNav .demoList.current a:hover{ background : url ( "flakeNavTabCurrent.png" ) left top no-repeat ;} /* fix ie6 hover issue */

HTML代码:

1
2
3
4
5
6
7
8
< div id = "demoNav" class = "demoNav" >
   < ul class = "clearfix" >
     < li class = "demoList firstList current" >< a href = "Javascript:void(0)" >鳞片导航 a > li >
     < li class = "demoList" >< a href = "Javascript:void(0)" >前端开发 a > li >
     < li class = "demoList" >< a href = "Javascript:void(0)" >用户体验 a > li >
     < li class = "demoList" >< a href = "Javascript:void(0)" >实战为主 a > li >
   ul >
div >

利用负margin制作自适应左右布局:

效果预览:

alt = "toygers kittens" /> div >
     < div class = "demoText" >利用负margin制作自适应左右布局 div >
   div >
div >

 


推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • 之前我曾经写过一篇关于CSS的border-image属性的文章。现在几乎所有的现代浏览器都支持这个属性——除了IE10及以下IE版本。看起来这是一个非常 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了在HTML中实现表格的页眉页脚布局的解决方案。通过基本的HTML/CSS技术,避免使用内联样式和固定定位,实现了一个标准的页眉页脚布局。提供了一个替代的解决方案,为读者提供了参考。 ... [详细]
  • 之前一直都知道css中的部分元素具有包裹性,今天写博客的时候正好也遇到了一个,所以想总结一下,有错误的地方欢迎指出来。什么是包裹性?包裹性就是父元素的宽度会收缩到和内部元素宽度一样 ... [详细]
  • 我用Tkinter制作了一个图形用户界面,有两个主按钮:“开始”和“停止”。请您就如何使用“停止”按钮终止“开始”按钮为以下代码调用的已运行功能提供建议 ... [详细]
  • TerraformVersionTerraformv0.9.11AffectedResource(s)Pleas ... [详细]
  • 有些代码在图片上写上文字后文字会不太清楚,加阴影效果也不理想,请教有没有加光晕的?效果就像新浪新闻左上角的图片新闻那样.比如这张图片:http:image2.sina.com.cndyFo ... [详细]
  • nginx 解决跨域问题 No: 'AccessControlAllowOrigin' header is present on the requested resource
    错误信息:1, ... [详细]
author-avatar
木桌上的年轮_1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有