web设计_3_可伸缩的导航栏
1. HTML5构建⼀个选项卡,需要<nav>标签包围⼀个⽆序列表,也可以添加role属性告诉辅助设备(如屏幕阅读器)这个元素所扮演的⾓⾊。 绝对不要基于图⽚的导航,对搜索引擎不友好,更新编辑也⾮常⿇烦。 <nav role="navigation">
<ul>
<li><a>...</a></li>
<li><a>...</a></li>
<li><a>...</a></li>
</ul>
</nav>
2. 如果有渐变,直接采⽤CSS3设置渐变,对于IE9以下版本需要采⽤过滤器,最好设置⼀个中间⾊纯⾊ 背景,留下很好的退路。正对IE9需要单独处理,并且利⽤SVG避免bug /* Permalink - use to edit and share this gradient: colorzilla/gradient-editor/#e9f6fd+0,d3eefb+100;Blue+3D+%233 */
background: rgb(233,246,253); /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background:
url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEw MCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncm FkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0 b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2U5ZjZmZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNk M2VlZmIiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0id XJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, rgba(233,246,253,1) 0%, rgba(211,238,251,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(233,246,253,1)), color-stop(100%,rgba(211,238,251,1))); /*
Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(233,246,253,1) 0%,rgba(211,238,251,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(233,246,253,1) 0%,rgba(211,238,251,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(233,246,253,1) 0%,rgba(211,238,251,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(233,246,253,1) 0%,rgba(211,238,251,1) 100%); /* W3C */
filter: progid:adient( startColorstr='#e9f6fd', endColorstr='#d3eefb',GradientType=0 ); /* IE6-8 */
Support for full multi-stop gradients with IE9 (using SVG).
Add a "gradient" class to all your elements that have a gradient, and add the following override to your HTML to complete the IE9 support:
<!--[if gte IE 9]>
<style type="text/css">imca
.gradient {
filter: none;
}
</style>
<![endif]-->
2.1 渐变背景另⼀种做法是通过⼀条竖直的1px的背景图⽚进⾏平铺,⾮常重要的⼀点是该背景图⽚的⾼度要保证⾜够⾼,最下端设置为透明,并⽤css填充这部分透明区域。
这样可以保证当选项卡内容增加,⾼度增加时,也可以保持样式不变。(该作法也同样适⽤于其它背
2.2 实在避免不了需要利⽤图⽚做背景图时,图⽚的⾼度也⼀定要保证⾜够⾼,便于内容⾼度变化时,设计样式任然保持不变。
如下图所⽰选项卡背景利⽤图⽚制作⽽成,当⽂字⼤⼩发⽣改变时,也要保证背景图⽚⾼度有⾜够的灵活性。
3. 对于选项卡的外边距、内边距、⾏⾼等进⾏设置的时候可以使⽤rem,同字体⼤⼩设置⼀样,这样整体设计始终会保持⽐例。这⾥需要设置整体ul的width和padding值,和内层a标签的padding值都为rem单位时所展⽰的效果。
4. 选项卡切换⼩技巧,hover或active状态下,a标签的bottom-padding增加1px从⽽遮挡住ul底边,达到选项卡前置效果。