zTree v3.5 Css 詳解

    立刻要開始研究新版本的 zTree 結構了,因此要先把如今的狀況再多分析一下,作了 v3.x 版本後也一直沒有製做 css 的文檔,特在此進行整理一下,一邊講結構,一邊說說小技巧,但願能給你們一些幫助。 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 結構吧: url



  • 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 吧: spa

.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 圖標。 code

相關文章
相關標籤/搜索