`
yiminghe
  • 浏览: 1432770 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

KISSY kisses bootstrap navbar

 
阅读更多

看了下 bootstrap 的导航菜单,立刻非常喜欢,注意是浅色的那个:

 

 

 

而不是黑色的那个:

 

 

 

由于浅色的导航css定义在 docs  中,故没有 less 源码文件可以参考,纯看 css 非常混乱,这次就用 less 重新实现了下浅色导航,实现后才发现 bootsrap 对于细节非常重视,其中样式状态非常之多,和之前搞的语法解析的状态有得一比。

html 代码

重新实现后的导航为 KISSY toolbar 组件,html 如下:

 

 

<div class="ks-toolbar>
	<div class="ks-menu-button ks-button">
		<div class="ks-menu-button-caption">menu-button</div>
		<div class="ks-menu-button-dropdown"></div>
	</div>
	<div class="ks-button">button</div>
	<div class="ks-menu-button ks-button">
		<div class="ks-menu-button-caption">menu-button2</div>
		<div class="ks-menu-button-dropdown"></div>
	</div>
</div>

 

包含下拉菜单的为 menubutton(button 的子类),不包含则为普通的 button 组件.

状态枚举

toolbar

toolbar 有背景色以及边框和阴影样式,可以先定义变量:

 

@toolbarBackgroundHighlight:     #F5F5F5;

@toolbarBackground:      #eee;

@toolbarShadow:  inset 0 1px 0 white, 0 1 px 5 px rgba(0, 0, 0, .1);

 

之后定义 toolbar 样式:

 

.ks-toolbar {
    #gradient > .vertical(@toolbarBackgroundHighlight, @toolbarBackground);
    border: 1px solid @toolbarItemBorderColor;
    border-radius: 4px;
    outline: none;
    .box-shadow(@toolbarShadow);
}

 

注意 :.vertical 表示垂直渐变,最终 toolbar 视觉效果如下:

 

toolbaritem(button)

普通状态

补齐

即普通的按钮组件,首先按钮组件都有一定的 padding,只有左右边框,并且首按钮没有左边框,右按钮没有右边框,那么首尾按钮要通过 padding 补齐来防止移位:

 

.ks-toolbar {.ks-button {
padding: 11px 12px 11px 12px;
}}

 

.ks-toolbar {
   .ks-button:first-child {
        border-left: 0;
        padding-left: 13px;
    }

    .ks-button:last-child {
        border-right: 0;
        padding-right: 13px;
    }
}

颜色

普通状态下按钮有两种颜色:

 

@toolbarItemBorderColor: #e5e5e5; // 右边框颜色

@toolbarItemColor: #08C; // 字体颜色
 

而左边框则定义为和 toolbar 的渐变的浅色背景一样,从而达到突出分割的效果:

 

.ks-toolbar {
    .ks-button
         color: @toolbarItemColor;
        border-left: 1px solid @toolbarBackgroundHighlight;
        border-right: 1px solid @toolbarItemBorderColor;
    }
}
 

视觉效果:

 

 

注意边框旁边的留白.

hover 状态

当鼠标经过时即进入 hover 状态,引入三种颜色:

 

@toolbarItemHoverColor: #005580; // hover 字体颜色

@toolbarItemHoverBackgroundColor: @toolbarBackground; // hover 背景色

@toolbarItemHoverBorderColor: #ddd; // hover 右边框颜色

 

视觉效果:

 

注意左右边框对比.

checked(active) 状态

按钮可以有选中状态,以及 active(鼠标按下) 状态,引入三种颜色:

 

@toolbarItemCheckedBackgroundColor: #e9e9e9;

@toolbarItemCheckedColor: #777;

@toolbarItemCheckedShadow: inset 0 3px 5px rgba(0, 0, 0, .05);
 

同时需要将左边框的留白部分消除,并用padding补齐(左边框的颜色变为和背景一样有点问题),以更好得融入

 

.ks-button-checked,
    .ks-button-active {
        color: @toolbarItemCheckedColor;
        background-color: @toolbarItemCheckedBackgroundColor;
        padding-left: 13px;
        border-left: 0;
        box-shadow: @toolbarItemCheckedShadow;
    }
 

视觉效果:

 

toolbaritemOpen(menubutton)

此即为带下拉菜单的按钮,由于有独特的下拉箭头而需要设置不同的样式(下拉菜单 menu 部分暂不处理)

普通状态

由于 menubutton 继承自 button 则 button 的状态会自动附加到 menubutton 上面,menubutton仅需考虑下拉箭头颜色,和 toolbaritem 的文字颜色保持一致即可:

 

 

@toolbarDropdownBackgroundColor: @toolbarItemColor;
 

注意这里使用border(详见前同事lizzie总结)来画三角

 

 

.ks-menu-button-dropdown {
        border-top-color: @toolbarDropdownBackgroundColor;
    }

 

视觉效果:

 

 

 

注意原本箭头即具备 menubutton 组件的透明效果

hover 状态

按钮部分仍然无需处理,仅处理箭头部分即可:

 

 

 

@toolbarDropdownHoverBackgroundColor: @toolbarItemCheckedColor;
 

 

.ks-button-hover .ks-menu-button-dropdown {
        border-top-color: @toolbarDropdownHoverBackgroundColor;
    }
 

注意颜色和按钮选中状态一致,更加突出,视觉效果(注意由于menubutton影响,箭头已恢复透明度):

 

open 状态

menubutton 没有选中状态,只有当菜单打开时的 open 状态, 在 open 状态又是三个颜色:

 

 

@toolbarItemOpenColor: white; // open 文字颜色

@toolbarItemOpenBackgroundColor: #999; // open 背景颜色

@toolbarDropdownOpenBackgroundColor: @toolbarItemOpenColor; // open 箭头颜色

 

注意箭头颜色仍然和 open 时的文字颜色保持一致。

 

 

.ks-menu-button-open {
        color: @toolbarItemOpenColor;
        background-color: @toolbarItemOpenBackgroundColor;
        border-color: @toolbarItemOpenBackgroundColor;
    }

    .ks-menu-button-open {
        .ks-menu-button-dropdown {
            border-top-color: @toolbarDropdownOpenBackgroundColor;
        }
    }
 

视觉效果(注意由于menubutton,透明度已恢复)

 

 

最终 demo:

KISSY toolbar DPL

最终代码

.ks-toolbar {
    #gradient > .vertical(@toolbarBackgroundHighlight, @toolbarBackground);
    border: 1px solid @toolbarItemBorderColor;
    border-radius: 4px;
    outline: none;
    .box-shadow(@toolbarShadow);
}

.ks-toolbar {
    .ks-button {
        background: transparent;
        border: none;
        text-shadow: none;
        padding: 11px 12px 11px 12px;
        color: @toolbarItemColor;
        margin: 0;
        border-left: 1px solid @toolbarBackgroundHighlight;
        border-right: 1px solid @toolbarItemBorderColor;
        border-radius: 0;
        background-image: none;
        .box-shadow(none);
    }

    .ks-button:first-child {
        border-left: 0;
        padding-left: 13px;
    }

    .ks-button:last-child {
        border-right: 0;
        padding-right: 13px;
    }

    .ks-button-hover {
        color: @toolbarItemHoverColor;
        background-color: @toolbarItemHoverBackgroundColor;
        border-right-color: @toolbarItemHoverBorderColor;
    }



    .ks-button-checked,
    .ks-button-active {
        color: @toolbarItemCheckedColor;
        background-color: @toolbarItemCheckedBackgroundColor;
        padding-left: 13px;
        border-left: 0;
        box-shadow: @toolbarItemCheckedShadow;
    }

    .ks-menu-button-dropdown {
        border-top-color: @toolbarDropdownBackgroundColor;
    }

    .ks-button-hover .ks-menu-button-dropdown {
        border-top-color: @toolbarDropdownHoverBackgroundColor;
    }

    .ks-menu-button-open {
        color: @toolbarItemOpenColor;
        background-color: @toolbarItemOpenBackgroundColor;
        border-color: @toolbarItemOpenBackgroundColor;
    }

    .ks-menu-button-open {
        .ks-menu-button-dropdown {
            border-top-color: @toolbarDropdownOpenBackgroundColor;
        }
    }

}
 

 

最好欢迎你的建议!

 

 

  • 大小: 10.2 KB
  • 大小: 5.3 KB
  • 大小: 844 Bytes
  • 大小: 2 KB
  • 大小: 2 KB
  • 大小: 2.1 KB
  • 大小: 3 KB
  • 大小: 2.8 KB
  • 大小: 7 KB
分享到:
评论

相关推荐

    kissy源文件代码

    淘宝发布开源编辑器:KISSY Editor,和我们在 WordPress 后台使用的富文本编辑器 TinyMCE 一样,它可以让我们在线编辑和格式化文本,但是相比 TinyMCE KISSY Editor 更加轻巧,更加适合国内的网络环境。 KISSY ...

    淘宝KISSY前端开发框架

    KISSY提供稳定的核心,包括 oo、dom、Event、Anim、Ajax 等;强大且易用的脚本加载器,特有的 loader;丰富的UI组件,包括 Switchable、Overlay、Draggable and Droppable 等。KISSY具备模块化、高扩展性、组件齐全...

    js KISSY框架阿里云滑动下拉导航菜单效果代码

    js KISSY框架阿里云滑动下拉导航菜单效果代码 js KISSY框架阿里云滑动下拉导航菜单效果代码 js KISSY框架阿里云滑动下拉导航菜单效果代码 js KISSY框架阿里云滑动下拉导航菜单效果代码

    kissy-1.4.8.zip

    kissy-1.4.8.zip,淘宝最新前端开发包

    KISSY 1.4.8

    KISSY 1.4.8,一个淘宝用的类似jQuery的前端框架

    kissy 框架

    淘宝发布开源编辑器:KISSY Editor,和我们在 WordPress 后台使用的富文本编辑器 TinyMCE 一样,它可以让我们在线编辑和格式化文本,但是相比 TinyMCE KISSY Editor 更加轻巧,更加适合国内的网络环境。

    Web常用UI库 kissy.zip

    Web常用UI库 kissy ,kissy 是淘宝一个开源的 JavaScript 库,包含的组件有:日历、图片放大镜、卡片切换、...

    Kissy 15天学会.zip

    Kissy 15天学会.zip欢迎下载!!!

    kissy_editor

    KISSY Editor 是开源项目 KISSY UI Library 的一个组件。KISSY 目前基于 YUI 2.x 开发,目标是打造一系列小巧灵活、简洁实用、使用起来让人感觉愉悦的 UI 组件。目前已有 CSS 基础框架、搜索提示 Suggest 和今天发布...

    kissy-1.4.8.rar

    高发展前途的web前端开发利器--kissy,中文文档。拥有该文档后不必再上网到处找,一切尽在其中。

    kissy editor 2.0

    淘宝帮派编辑器 kissy editor 2.0

    异步上传组件uploader基于kissy

    异步上传组件uploader基于kissy,拥有flash,iframe,html5三种方式

    kissy 学习

    淘宝kissy帮助文档 学习文档 用法等

    Kissy学习教程

    Kissy学习教程.rarKissy学习教程.rarKissy学习教程.rarKissy学习教程.rar

    kissy中文文档

    高发展前途的web前端开发利器--kissy,中文文档。拥有该文档后不必再上网到处找,一切尽在其中。

    KISSY Editor 1.0.0

    在 Web 编辑器领域, CKEditor – 七年的专注,赢取的是王者风范。 TinyMCE – 五年前的小家碧玉,如今已成长为大家闺秀。...于是有了今天发布的淘宝开源编辑器:KISSY Editor, 已在 淘帮派 上线试用。

    kissy学习教程

    KISSY框架是目前硕果仅存的几个国产js框架之一,在阿里的网站比如淘宝网、天猫等大量使用。

    kissy模块化实践

    kissy模块化实践.taobao 前端架构Kissy介绍

    KISSY.Suggest 仿百度、淘宝输入提示补全功能的组件及实例

    KISSY.Suggest 仿百度、淘宝输入提示补全功能的组件及实例!值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/

Global site tag (gtag.js) - Google Analytics