文档章节

zTree v3.5 Css 详解

zTree
 zTree
发布于 2012/12/21 18:09
字数 1660
阅读 19697
收藏 100

    马上要开始研究新版本的 zTree 结构了,所以要先把现在的情况再多分析一下,做了 v3.x 版本后也一直没有制作 css 的文档,特在此进行整理一下,一边讲结构,一边说说小技巧,希望能给大家一些帮助。

   zTree 的 css 文件就是 zTreeStyle.css,其实 这里面的 css 内容并不多,熟悉 css 的应该看起来还是挺容易的。

    首先要强调的就是,制作 zTree 时一定要让 ul 容器设置 className:ztree; 这个主要就是为了避免与页面上自定义的css 或者其他插件的css 冲突;但 css 内容太多了,我不可能为了100%的避免冲突,就在 css 内把所有的 css 属性都设置一遍,如果这么做的话这个 css 就太臃肿了,基本上我我对常用的这几个属性进行了重新设定。 所以,如果当你使用 zTree 时出现了样式异常的话,就请用调试工具找到冲突的原因,然后将适用于 zTree 的属性补充到 zTree 的 css 内即可。

    同时,因为 zTree 的 css 都有 .ztree 做约束,所以一般情况下 zTree 的样式是不会引起页面上其他内容样式异常的。

    了解 css 之前先看看 zTree 的 DOM 结构吧:



  • zTree 的结构就是 ul 里面包着 li ,li 里面 再包着 ul ......每一个节点都以一个 li 为主,它的子节点的 DOM 都存在于这个 li 里面的 ul 内 
  • 每个节点 li 的 id 就是这个节点的 tId 值
  • 父节点的 +/- 号就是 li 内的第一个 span, id 是 tId + _switch
  • 节点的名称是 a 标签,id 是 tId + _a
  • 节点的图标在 a 标签内,id 是 tId + _ico
  • 节点的名称文字在 a标签内,id 是 tId + _span
  • 子节点容器 是 ul,id 是 tId + _ul 
  • 节点的 li、a、ul 都带有 level 的 class,这样你可以专门针对不同等级 level 设置自定义的样式


    下面开始解析 css 吧:

.ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif}
.ztree {margin:0; padding:5px; color:#333}
.ztree li{padding:0; margin:0; list-style:none; line-height:14px; text-align:left; white-space:nowrap; outline:0}
.ztree li ul{ margin:0; padding:0 0 0 18px}
.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;}

    以上部分是 zTree 的总体样式,看一眼就知道,真么啥好说的了....


.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent;
	text-decoration:none; vertical-align:top; display: inline-block}
.ztree li a:hover {text-decoration:underline}
    以上部分是 zTree 节点显示名称的 a 标签基本样式



.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
    以上部分是 zTree 节点当前被选中时的样式,有 Edit 的是处于编辑模式时的样式



.ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#316AC5; color:white; height:16px; border:1px #316AC5 solid;
	opacity:0.8; filter:alpha(opacity=80)}
.ztree li a.tmpTargetNode_prev {}
.ztree li a.tmpTargetNode_next {}
    以上部分是 zTree 节点拖拽时,目标节点根据 inner 、prev、next 不同状态时的样式



.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0;
	font-size:12px; border:1px #7EC4CC solid; *border:0px}
    以上部分是 zTree 节点编辑名称时的 input 的样式



.ztree li span {line-height:16px; margin-right:2px}
    以上部分是 zTree 节点内 span 的基础样式



.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
	border:0 none; cursor: pointer;outline:none;
	background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
	background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
    以上部分是 zTree 节点 +/- 号、checkbox、radio、图标 的基础样式



.ztree li span.button.chk {width:13px; height:13px; margin:0 3px 0 0; cursor: auto}
.ztree li span.button.chk.checkbox_false_full {background-position:0 0}
.ztree li span.button.chk.checkbox_false_full_focus {background-position:0 -14px}
.ztree li span.button.chk.checkbox_false_part {background-position:0 -28px}
.ztree li span.button.chk.checkbox_false_part_focus {background-position:0 -42px}
.ztree li span.button.chk.checkbox_false_disable {background-position:0 -56px}
.ztree li span.button.chk.checkbox_true_full {background-position:-14px 0}
.ztree li span.button.chk.checkbox_true_full_focus {background-position:-14px -14px}
.ztree li span.button.chk.checkbox_true_part {background-position:-14px -28px}
.ztree li span.button.chk.checkbox_true_part_focus {background-position:-14px -42px}
.ztree li span.button.chk.checkbox_true_disable {background-position:-14px -56px}
.ztree li span.button.chk.radio_false_full {background-position:-28px 0}
.ztree li span.button.chk.radio_false_full_focus {background-position:-28px -14px}
.ztree li span.button.chk.radio_false_part {background-position:-28px -28px}
.ztree li span.button.chk.radio_false_part_focus {background-position:-28px -42px}
.ztree li span.button.chk.radio_false_disable {background-position:-28px -56px}
.ztree li span.button.chk.radio_true_full {background-position:-42px 0}
.ztree li span.button.chk.radio_true_full_focus {background-position:-42px -14px}
.ztree li span.button.chk.radio_true_part {background-position:-42px -28px}
.ztree li span.button.chk.radio_true_part_focus {background-position:-42px -42px}
.ztree li span.button.chk.radio_true_disable {background-position:-42px -56px}
    以上部分是 checkbox、radio 所有状态时的样式。


    提醒:有不少朋友希望使用 checkbox 但还需要单选功能,你只需要修改一下这部分的 css 让 radio 的图标都换成对应的 checkbox 的图标,同时使用 zTree 时设置为 radio 模式就可以了! 


.ztree li span.button.switch {width:18px; height:18px}
.ztree li span.button.root_open{background-position:-92px -54px}
.ztree li span.button.root_close{background-position:-74px -54px}
.ztree li span.button.roots_open{background-position:-92px 0}
.ztree li span.button.roots_close{background-position:-74px 0}
.ztree li span.button.center_open{background-position:-92px -18px}
.ztree li span.button.center_close{background-position:-74px -18px}
.ztree li span.button.bottom_open{background-position:-92px -36px}
.ztree li span.button.bottom_close{background-position:-74px -36px}
.ztree li span.button.noline_open{background-position:-92px -72px}
.ztree li span.button.noline_close{background-position:-74px -72px}
.ztree li span.button.root_docu{ background:none;}
.ztree li span.button.roots_docu{background-position:-56px 0}
.ztree li span.button.center_docu{background-position:-56px -18px}
.ztree li span.button.bottom_docu{background-position:-56px -36px}
.ztree li span.button.noline_docu{ background:none;}
    以上部分是 zTree 节点的 +/- 号部分的样式



.ztree li span.button.ico_open{margin-right:2px; background-position:-110px -16px; vertical-align:top; *vertical-align:middle}
.ztree li span.button.ico_close{margin-right:2px; background-position:-110px 0; vertical-align:top; *vertical-align:middle}
.ztree li span.button.ico_docu{margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle}
    以上部分是 zTree 节点默认图标的样式



.ztree li span.button.edit {margin-right:2px; background-position:-110px -48px; vertical-align:top; *vertical-align:middle}
.ztree li span.button.remove {margin-right:2px; background-position:-110px -64px; vertical-align:top; *vertical-align:middle}
    以上部分是 zTree 节点默认的编辑、删除按钮的样式



.ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
    以上部分是 zTree 节点异步加载时 loading 图标的样式



ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)}

    以上部分是 zTree 拖拽节点成为 根节点时,zTree 的临时样式

span.tmpzTreeMove_arrow {width:16px; height:16px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute;
	background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
	background-position:-110px -80px; background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
    以上部分是 zTree 拖拽节点时临时箭头的样式

ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)}
    以上部分是 zTree 拖拽节点时,跟随鼠标移动的临时节点的样式

.zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute}
    以上部分是 zTree 拖拽节点时,页面上其他 iframe 的遮罩图层的样式

    补充:对于想放大字体、放大图标的朋友,很抱歉,关键问题是本人美工设计能力太差,另外时间有限,所以对于 v3 版本并没有制作其他样式模板,不过看了以上介绍后,是不是觉得调整起来其实还是很简单的? 大家只需要注意一下 height 的值,包括这些 height 之间的差值,注意到这些细节,然后去调整就可以了, 最后别忘了更换你的大图标的img 图标。

© 著作权归作者所有

共有 人打赏支持
zTree

zTree

粉丝 831
博文 21
码字总数 21754
作品 1
朝阳
技术主管
私信 提问
加载中

评论(30)

香草天空111
你好,我现在想做模糊查询,将符合条件的node设置为高亮状态,但是设置node.highlight=true,然后调用updateNode方法,节点并没有为高亮状态,也就是highlight无效,请问是什么原因?
梦幻女侠
梦幻女侠
加油,期待新版本
zTree
zTree

引用来自“wuxin110”的评论

引用来自“zTree”的评论

引用来自“wuxin110”的评论

引用来自“zTree”的评论

引用来自“wuxin110”的评论

ztree这样设计(css+html)结构有问题,span内联元素,问题主要出在下面的样式上
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
2   border:0 none; cursor: pointer;outline:none;
3   background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
4   background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
问题描述:
当ztree目录树滚动条无法通过overflow:auto控制溢出(firefox、ie6)没有通过测试。

我官网的Demo 没有出现你说的问题呀? 是不是有什么 css 冲突了?

之前用的是3.1的版本没有这个问题,更新成3.5版本后出现此问题

你用 我提供的标准 demo 做一个出现这种bug 的例子,发我 email 吧

邮箱多少?或QQ

已经联系上了, 不对 ul 做 滚动设置,而让其针对 ul 的父节点设置样式,问题解决。
w
wuxin110

引用来自“zTree”的评论

引用来自“wuxin110”的评论

引用来自“zTree”的评论

引用来自“wuxin110”的评论

ztree这样设计(css+html)结构有问题,span内联元素,问题主要出在下面的样式上
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
2   border:0 none; cursor: pointer;outline:none;
3   background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
4   background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
问题描述:
当ztree目录树滚动条无法通过overflow:auto控制溢出(firefox、ie6)没有通过测试。

我官网的Demo 没有出现你说的问题呀? 是不是有什么 css 冲突了?

之前用的是3.1的版本没有这个问题,更新成3.5版本后出现此问题

你用 我提供的标准 demo 做一个出现这种bug 的例子,发我 email 吧

邮箱多少?或QQ
zTree
zTree

引用来自“wuxin110”的评论

引用来自“zTree”的评论

引用来自“wuxin110”的评论

ztree这样设计(css+html)结构有问题,span内联元素,问题主要出在下面的样式上
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
2   border:0 none; cursor: pointer;outline:none;
3   background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
4   background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
问题描述:
当ztree目录树滚动条无法通过overflow:auto控制溢出(firefox、ie6)没有通过测试。

我官网的Demo 没有出现你说的问题呀? 是不是有什么 css 冲突了?

之前用的是3.1的版本没有这个问题,更新成3.5版本后出现此问题

你用 我提供的标准 demo 做一个出现这种bug 的例子,发我 email 吧
w
wuxin110

引用来自“zTree”的评论

引用来自“wuxin110”的评论

ztree这样设计(css+html)结构有问题,span内联元素,问题主要出在下面的样式上
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
2   border:0 none; cursor: pointer;outline:none;
3   background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
4   background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
问题描述:
当ztree目录树滚动条无法通过overflow:auto控制溢出(firefox、ie6)没有通过测试。

我官网的Demo 没有出现你说的问题呀? 是不是有什么 css 冲突了?

请将官方上目录树中文(en)例子,节点目录汉字输入过些(超过滚动条的范围)或多建节点数至其出现横向滚动条,此问题便会出现。已在下载的dom例子中做测试。(firefox版本26.0)
w
wuxin110

引用来自“zTree”的评论

引用来自“wuxin110”的评论

ztree这样设计(css+html)结构有问题,span内联元素,问题主要出在下面的样式上
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
2   border:0 none; cursor: pointer;outline:none;
3   background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
4   background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
问题描述:
当ztree目录树滚动条无法通过overflow:auto控制溢出(firefox、ie6)没有通过测试。

我官网的Demo 没有出现你说的问题呀? 是不是有什么 css 冲突了?

之前用的是3.1的版本没有这个问题,更新成3.5版本后出现此问题
w
wuxin110

引用来自“zTree”的评论

引用来自“wuxin110”的评论

ztree这样设计(css+html)结构有问题,span内联元素,问题主要出在下面的样式上
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
2   border:0 none; cursor: pointer;outline:none;
3   background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
4   background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
问题描述:
当ztree目录树滚动条无法通过overflow:auto控制溢出(firefox、ie6)没有通过测试。

我官网的Demo 没有出现你说的问题呀? 是不是有什么 css 冲突了?

在线等……
w
wuxin110

引用来自“zTree”的评论

引用来自“wuxin110”的评论

ztree这样设计(css+html)结构有问题,span内联元素,问题主要出在下面的样式上
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
2   border:0 none; cursor: pointer;outline:none;
3   background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
4   background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
问题描述:
当ztree目录树滚动条无法通过overflow:auto控制溢出(firefox、ie6)没有通过测试。

我官网的Demo 没有出现你说的问题呀? 是不是有什么 css 冲突了?

firebug调试查看没有其它样式影响,ul、li宽度都正常而li里面内容却超出
zTree
zTree

引用来自“wuxin110”的评论

ztree这样设计(css+html)结构有问题,span内联元素,问题主要出在下面的样式上
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
2   border:0 none; cursor: pointer;outline:none;
3   background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
4   background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
问题描述:
当ztree目录树滚动条无法通过overflow:auto控制溢出(firefox、ie6)没有通过测试。

我官网的Demo 没有出现你说的问题呀? 是不是有什么 css 冲突了?
Jquery ztree 无法显示

大家好,我下载了ztree的包,并且保存了 demo.css zTreeStyle.css 在WebRoot 下的css 文件,同样 jquery/1.4.4.min.js 和 jquery.ztree.core/3.5.js 保存在了WebRoot 下的js 文件。之后建立了...

火星人乖乖图
2014/12/30
980
1
JQuery Tree插件——zTree v3.5.01 版 发布

赶着天黑前,赶紧发布 v3.5 的补丁,修正目前已知的 bug;“绝对不能让用户留下任何遗憾” 是 zTree 的宗旨! 对于 v3.5 的用户来说,直接替换 js 文件即可,文件名都不用修改。 zTree 在线操...

zTree
2012/12/21
3.2K
16
JQuery Tree插件——zTree v3.5 正式版发布

由于国庆之后一直忙于公司的项目,因此将 zTree 闲置了1个月左右。 这次升级继续以修正 bug 为主,这里要非常感谢各位用户的支持,这次修改的很多 bug 都是大家在使用过程中反映给我的。 zT...

zTree
2012/11/20
3.4K
18
CheckBox选中后点击画面其他地方自动取消选中

@zTree 你好,想跟你请教个问题: 上代码: var setting = { check : { enable : true, chkboxType: {"Y":"", "N":""} }, view: { dblClickExpand: false }, data : { simpleData : { enable......

小苹果1
2017/11/30
77
0
JQuery Tree插件——zTree v3.5.12 版 发布

为了学习如何在 jQuery Plugin 发布,反复练习后(因为那个版本号只能升,不能降),这次只得把版本 从 v3.5.02 直接升到 v3.5.12 了,请见谅。 jQuery Plugin:http://plugins.jquery.com/z...

zTree
2013/03/11
4.4K
24

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 修改空间名字和标识

希望修改空间名称: 在空间名称的边上,选择 图标。 输入新的空间名称,然后单击 保存(Save)。 标识(Logo )- 修改空间的名称和标识。 重新组织(Reorder) - 拖动来从新组织快捷链接。 ...

honeymose
14分钟前
0
0
Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
3
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0
Cnn学习相关博客

CNN卷积神经网络原理讲解+图片识别应用(附源码) 笨方法学习CNN图像识别系列 深度学习图像识别项目(中):Keras和卷积神经网络(CNN) 卷积神经网络模型部署到移动设备 使用CNN神经网络进行...

-九天-
昨天
5
0
flutter 底部输入框 聊天输入框 Flexible

想在页面底部放个输入框,结果键盘一直遮住了,原来是布局问题 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("评论"), ...

大灰狼wow
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部