欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

08.01 zTreeStyle.css 说明 —— 关于 样式控制

最编程 2024-01-12 09:26:06
...
12.23 源创会 · 上海站,聊聊 LLM 基础设施

简介

本篇内容专门针对 zTreeStyle.css 中的样式做介绍

DOM 树

zTree 的容器样式

.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;}

节点显示名称的 a 标签基本样式

.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}`

节点当前被选中时的样式,有 Edit 的是处于编辑模式时的样式

.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;}

节点拖拽时,目标节点根据 inner 、prev、next 不同状态时的样式

.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 {}

节点编辑名称时的 input 的样式

.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0;
    font-size:12px; border:1px #7EC4CC solid; *border:0px}

节点内 span 的基础样式

.ztree li span {line-height:16px; margin-right:2px}

节点 +/- 开关、checkbox、radio、图标 的基础样式

.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")}

checkbox、radio 所有状态时的样式

提醒:有不少朋友希望使用 checkbox 但还需要单选功能,你只需要修改一下这部分的 css 让 radio 的图标都换成对应的 checkbox 的图标,同时使用 zTree 时设置为 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}

节点的 +/- 开关部分的样式

.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;}
+/- 开关的 className 规则
  1. "button" & "switch" 是所有开关都有的
  2. "level" + treeNode.level 可以用于针对不同层级的节点设置特殊样式
  3. 父节点
    1. 只有一个根节点时: "root_open" & "root_close"
    2. 多个根节点时
      • 第一个根节点 "roots_open" & "roots_close"
      • 中间的根节点 "center_open" & "center_close"
      • 最后一个根节点 "bottom_open" & "bottom_close"

      其实这里使用 伪元素 :first-child :last-child 就可以实现(以前水平太差)

    3. 非根节点
      • 同级中非最后一个 "center_open" & "center_close"
      • 同级中最后一个 "bottom_open" & "bottom_close"
    4. 无连接线模式下,只有一种: "noline_open" & "noline_close"
  4. 叶子节点
    1. 只有一个根节点时:"root_docu",
    2. 多个根节点时:
      • 第一个根节点 "roots_docu"
      • 中间的根节点 "center_docu"
      • 最后一个根节点 "bottom_docu"

      其实这里使用 伪元素 :first-child :last-child 就可以实现(以前水平太差)

    3. 非根节点
      • 同级中非最后一个 "center_docu"
      • 同级中最后一个 "bottom_docu"
    4. 无连接线模式下,只有一种: "noline_docu"

节点默认图标的样式

.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}

节点默认的编辑、删除按钮的样式

早期设计时有误区,导致没有将新增按钮的样式加入进来,制作时请参考 “07. 关于 节点编辑” 里面的内容

.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}

节点异步加载时 loading 图标的样式

.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 的临时样式

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

拖拽节点时临时箭头的样式

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")}

拖拽节点时,跟随鼠标移动的临时节点的样式

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)}

拖拽节点时,页面上其他 iframe 的遮罩图层的样式

.zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute}

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