【ztree系列——图标的修改】Bootstrap风格的ztree

前段时间项目中需要用树形结构,在选取的时候参考了很多插件,经过很多尝试,最后又回归到了ztree上。以前用的界面框架是EasyUI,但是它的树结构在实现起来有点复杂,并且功能不是特别完善。dtree在做demo的时候没什么问题,但是放到项目中,从数据库读取数据后还需要进行转换……码了n个demo后,还是觉得ztree最好用!

1.ztree图标

ztree功能强大,使用方便是一方面,但是若使用它自带的图标,在有些网页设计中就不太搭调了,或者还会出现样式冲突,使得图标显示凌乱的问题(在使用Bootstrap框架的时候,根节点的图标会变形)。如果我们能自定义它的图标,根据网页风格来设定样式,这样就会让我们的页面看起来更加美观了。我们先看一张,使用ztree原生态图标的树形结构。

在这棵树中,一共有3种图标,分别是“打开节点、关闭节点、叶子节点”三种类型的,它们都在ztree的css样式中进行了定义。

2.分析ztree图标的定义

从官网上可下载ztree文件 http://www.ztree.me/v3/main.php

它的样式定义在metro.css文件里(或者是zTreeStyle.css……),其中可加载单个的图片,也可以从一张图片中根据坐标获取我们要用的图形。对metro.css比较重要的一个图片是metro.png,在图片中每个小方格是5px,在css中加载时按照横纵坐标进行图标的获取。 

在ztree中,css主要用了两种方式来加载图标。第一种:根据背景图,图标大小,和坐标位置

第二种:直接加载图片

这两种方式,第二种比较常用,但是对于数据量大的情况,第一种方法貌似更好。对于我们想要修改的元素,可以先在网页中定位一下,找到它具体的class,然后来这里更改就可以了。

3.Bootstrap风格装饰ztree

以最近很流行的Bootstrap为例,给ztree装饰成Bootstrap的风格。上边我们已经分析过ztree是如何设定样式,这里我们只需要任选其一做更改就行了,鉴于它使用了大量以背景图片为基础的图标设定,我们最好还是设定成直接加载图片的比较方便,要不然改的数据太多了……
1)ztree也有黑白色的css、png成套的样式设置,为了更符合Bootstrap的图标样式,让它替换掉原有的css文件和彩色图标

如果页面框架是Bootstrap的,则在显示的时候根节点的图标是“破碎”的,经过查找发现,是根节点图标位置受到Bootstrap的影响,在css文件中找到设置它的位置,进行坐标更改

2)上边的步骤只能算是在ztree内部设定,还不算加上Boostrap的风格。不过,我们只需要再给它更换一个图标,看起来就有那么点味道了(为了展示方便,进行了换行处理)

/*.ztree li span.button.ico_docu{margin-right:2px; background-position: -147px -42px; vertical-align:top; *vertical-align:middle}*/

/*加载bootstrap的图标,使用它的叶子图标-2015-12-23*/
.ztree li span.button.ico_docu{
    margin-right:2px;
    background:url(./img/bootstrap.png) no-repeat scroll 0 0 transparent;
    vertical-align:top;
    background-position: -45px -117px;
    vertical-align:top;
    *vertical-align:middle}

这样就是另一种风格了,如果你想要自定义其它风格,根据上边的demo来做,应该不算什么难事了。

小结:

ztree中有自定义图标的方法,但是在遇到图标显示不完整的时候还是没办法解决,最后更改了css文件才让图标显示完整。在解决这个问题的过程中了解了ztree图标的加载过程,所有顺便练练手,直接从CSS来给ztree换了个风格。

时间: 2024-12-17 03:55:59

【ztree系列——图标的修改】Bootstrap风格的ztree的相关文章

【代码导读】Github 开源项目——wysihtml5 富编辑器(Bootstrap 风格)【二】

如果您意外进入该页面,或许从下述链接开始更容易理解: [代码导读]Github 开源项目——wysihtml5 富编辑器(Bootstrap 风格)[一] 1. 整体结构 在 wysihtml5 中,所有对象受 wysihtml5 命令空间保护,从其初始化定义看,整个代码架构一目了然: https://github.com/xing/wysihtml5/blob/master/src/wysihtml5.js 1 var wysihtml5 = { 2 version: "0.4.0pre&qu

自己写的基于bootstrap风格的弹框插件

自己写的一款基于bootstrap风格的弹框插件,暂时只有确认框.提示框.后续功能扩展.bug修改再更新. ;(function($){ //默认参数 var PARAMS; var DEFAULTPARAMS = { width: 500, title: '提示消息', content: '', okbtn: '确定', cancelbtn: '取消', headerBackground: 'info', vbackdrop: 'static', //默认点击遮罩不会关闭modal vkeyb

Netty4.x中文教程系列(六) 从头开始Bootstrap

Netty4.x中文教程系列(六) 从头开始Bootstrap 其实自从中文教程系列(五)一直不知道自己到底想些什么.加上忙着工作上出现了一些问题.本来想就这么放弃维护了.没想到有朋友和我说百度搜索推荐了我的文章.瞬间有点小激动啊.决定自己要把这个教程系列完善下去.这里诚挚的想支持我的盆友们道歉.真的是让你们失望了.我居然有想放弃的这种丧心病狂的念头.以后绝对不会了. 其实伴随着对Netty的逐步深入学习.感觉自己对netty的了解仍然有所欠缺.加上笔者语文课是美术老师教的.所以..说多了都是泪

将markdown格式转化为bootstrap风格html

前言:这些年markdown格式的文件很流行,像github里project说明文档都是用markdown格式编写. 一方面,我们能够通过pandoc将markdown文件转换为html,这样将html文件放到自己的server上就能够解释了.安装pandoc见我的GitHub链接. 还有一方面,bootstrap是近年来一个比較好的web前端框架,那么我们希望将markdown文件转换为bootstrap风格的html文件.已经有人做过这个模块markdown2bootstrap. 1. 安装

修改Material风格的主色值

support-v7-appcompat包在开发过程中,可能会涉及到修改控件颜色的地方 比如修改Edittext的背景色.RadioButton的对应状态色值等等 在安卓5.0以后,Material风格的主色值有以下两种 <color name="material_deep_teal_200">#ff80cbc4</color> <color name="material_deep_teal_500">#ff009688</

使用JQuery.validate后的bootstrap风格校验提示?

因为项目使用了bootstrap框架,在做form提交时需要进行验证.本来研究了一下午jqBootstrapValidator,可是不好用,最终还是想用JQuery validate. 其实最主要就是showErrors方法,自定义了bootstrap风格的浮动提示框,避免了在自己html中定义一个span或是p,来显示error message. 至于validate的rules,在js中就没有写了,我是在input的class标签中定义的. 此外,还要注意的就是项目后台使用了struts2,

自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选&amp;多选下拉框

先说点闲话,熟悉Angular的猿们会喜欢这个插件的. 00.本末倒置 不得不承认我是一个喜欢本末倒置的人,学生时代就喜欢先把晚交的作业先做,留着马上就要交的作业不做,然后慢悠悠做完不重要的作业,卧槽,XX作业马上要交了,赶紧补补补.如今做这个项目,因为没找到合适的多选下拉Web插件,又不想用html自带的丑陋的<select multiple></select>,自己花了一整天时间做了一个.或许这样占用的主要功能开发的时间,开发起来会更有紧迫感吧.感觉自己是个抖M自虐倾向,并且伴

Liferay 6.2 改造系列之六:修改系统初始化信息

将初始化过程修改为:中文语言 在/portal-master/portal-impl/src/system.properties文件中,有如下配置: # # Set the default locale used by Liferay. This locale is no longer set at # the VM level. See LEP-2584. # user.country=US user.language=en # # Set the default time zone used

Bootstrap风格按钮

一直很喜欢Bootstrap的按钮风格,仿照Bootstrap做了一套按钮,在ie6/7/8/9/10/11.chrome.firefox下能正常使用.ie6/7/8不支持css3的样式,按钮在这些模式下没有圆角效果.在ie6/7下使用button标签能显示正常效果,使用其他标签存在文字偏移和背景显示不完整. 按钮支持div/span/input/button等元素,大小分为rhui-btn-large.rhui-btn.rhui-btn-small和rhui-btn-min四个级别,效果如下