ZK實際應用:樣式和布局

在之前的ZK in Action帖子中,我們使用ZK MVVM實現了CRUD功能 。 我們還快速瀏覽了一些樣式代碼,可能需要更多的解釋。

在本文中,我們將討論如何在ZK小部件上附加新CSS樣式規則,以及如何覆蓋現有樣式。 我們還將介紹ZK中UI布局的一些基礎知識。

目的

  • 使用ZK的布局和容器小部件來托管我們在先前文章中構建的清單CRUD功能。
  • 設置ZK小部件的樣式

ZK實戰功能

  • 邊界布局
  • 布置圖
  • 標簽框
  • 包括
  • 同級
  • zclass

使用布局和容器 Borderlayout和Hlayout

Borderlayout將窗口分為5個部分,如下所示:

事不宜遲,讓我們剖析標記并查看其工作原理:

<window ...'><borderlayout width='100%' height='100%'><north size='15%'><hlayout width='100%' height='100%'><label hflex='9' value='Alpha Dental' /><label hflex='1' value='Sign Out' ></label></hlayout></north><east size='10%'></east><center><tabbox width='100%' height='100%' orient='vertical'><tabs width='15%'><tab label='Inventory' /><tab label='TBD' /><tab label='TBD'/></tabs><tabpanels><tabpanel><include src='inventory.zul'/></tabpanel><tabpanel></tabpanel><tabpanel></tabpanel></tabpanels></tabbox></center><west size='10%' ></west><south size='10%'></south></borderlayout>
  • 第3和27行,可以調整北和南窗口小部件的高度,但不能調整寬度
  • 第9和26行,可以調整東西的小部件的寬度,但不能調整高度
  • 第10行,中心小部件的尺寸取決于為北,西,南和東小部件輸入的尺寸
  • 從第4行到第7行,我們用Hlayout包裹了兩個標簽,因此它們將相對于我們指定的'hflex'屬性并排顯示。 也就是說,分配給hflex ='9'的Label的寬度是分配給hflex ='1'的Label的9倍。
  • 每個內部小部件(北,西等)只能接受一個子組件,因此,在放置到Borderlayout內部小部件(北,西等)中之前,多個小部件必須由單個容器小部件(如Hlayout)包裝。
  • 第11行,我們放置了一個Tabbox元素并將其方向設置為垂直,以期望將庫存CRUD功能嵌入其中
  • 第12到16行,我們將每個標簽的標題
  • 第18行,Tabpanel是一個保存標簽內容的容器
  • 第19行,我們將清單CRUD功能嵌入到Include標簽內。 庫存.zul上的小部件將附加到此頁面

覆蓋現有的ZK樣式規則

ZK默認字體屬性和背景顏色已修改,因此標題將更加突出。 讓我們快速解釋一下這是如何完成的。
使用Chrome Developer Tool或Firebug擴展,我們可以輕松地檢查Borderlayout的源代碼,并為ZK小部件找到ZK樣式類,如下所示:

從這里我們了解到,突出顯示區域的命名模式是z-north-body。 同樣,我們可以對所有感興趣的標記執行相同的操作,然后繼續覆蓋其CSS樣式規則:

<zk>
<style>.z-tab-ver .z-tab-ver-text { font-size: 18px; } .z-north-body, .z-south-body { background:#A3D1F0 }.z-east-body, .z-west-body { background:#F8F9FB }
</style>
<window border='none' width='100%' height='100%'><borderlayout width='100%' height='100%'><north size='15%'>...</north><east size='10%'></east><center>...</center><west size='10%'></west><south size='10%'></south></borderlayout>
</window>
</zk>

通過樣式屬性附加其他樣式規則

在這里,我們正在修改North小部件中包含的Label的樣式。 由于我們只希望這兩個標簽(而不是全部標簽)受我們新樣式的影響,因此像我們以前那樣覆蓋原始樣式是沒有意義的。 對于這些孤立的修改,只需將樣式規則分配給ZK小部件隨附的'style'屬性就足夠了:

<north size='15%'><hlayout width='100%' height='100%'><label value='Alpha Dental' style='font-size: 32px; font-style: italic; font-weight:bold; color:white; margin-left:8px;'/><label value='Sign Out' style='font-size: 14px; font-weight:bold; color:grey; line-height:26px'></label></hlayout></north>...

通過Sclass附加其他樣式規則

直接在標記中分配樣式規則并污染代碼的另一種方法是聲明一個樣式類,縮寫為'sclass',然后將規則分配給'sclass'屬性,如下所示:

<zk>
<style>.company-heading {font-size: 32px; font-style: italic; font-weight:bold; color:white; margin-left:8px;}
</style>
<window ...><borderlayout ...><north ...> <label value='Alpha Dental' sclass='company-heading'/></north>...</borderlayout>
</window>
</zk>

簡而言之

  • 本文介紹了三種修改默認ZK樣式的方法:覆蓋現有的ZK樣式類,直接將樣式規則分配給小部件的style屬性,或者在CSS文件或Style標記內定義CSS類,然后將該類分配給小部件的sclass屬性
  • 使用開發人員工具(例如Firebug)檢查ZK小部件并找出要覆蓋的ZK樣式類
  • hlex屬性允許開發人員相對于彼此成比例地定義小部件的寬度
  • 布局小部件可幫助開發人員將演示窗口劃分為多個部分

相關鏈接:

ZK樣式指南
邊界布局
布置圖 海福克斯

參考: ZK in Action [4]:來自JCG合作伙伴 Lance Lu的樣式和布局 ,位于Tech Dojo博客上。


翻譯自: https://www.javacodegeeks.com/2012/08/zk-in-action-styling-and-layout.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372210.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372210.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372210.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java面向對象的三大特征是6_Java面向對象的三大特征

面向對象的本質&#xff1a;以類的方式組織代碼&#xff0c;以對象的方式組織數據。面向對象三大特性&#xff1a;封裝 繼承 多態封裝&#xff1a;概念&#xff1a;隱藏對象內部的復雜性&#xff0c;只對外公開簡單的接口。便于外界調用&#xff0c;從而提高系統的可擴展性&…

Tornado(一)

Tornado 特點 Tornado是一個用Python寫的相對簡單的、不設障礙的Web服務器架構&#xff0c;用以處理上萬的同時的連接口&#xff0c;讓實時的Web服務通暢起來。雖然跟現在的一些用Python寫的Web架構相似&#xff0c;比如Django&#xff0c;但Tornado更注重速度&#xff0c;能夠…

Android下Opengl ES實現單屏幕雙眼顯示

http://blog.csdn.net/u011371324/article/details/68946779 默認情況下&#xff0c;Opengl ES使用系統提供的幀緩沖區作為繪圖表面&#xff0c;一般情況下&#xff0c;如果只在屏幕的表面繪圖的話&#xff0c;系統提供的默認幀緩沖區很高效&#xff0c;但是很多應用程序需要渲…

Oracle Service Bus –線程阻塞案例研究

本案例研究描述了在AIX 6.1和IBM Java VM 1.6上運行的Oracle Service Bus 11g遇到的線程阻塞問題的完整根本原因分析過程。 本文也是您提高線程轉儲分析技能的絕佳機會&#xff0c;我強烈建議您學習并正確理解以下分析方法。 與過早的中間件&#xff08;Weblogic&#xff09;重…

java 可以重載等于號碼_Java面試之Java基礎4——重載與重寫的區別

目錄重載與重寫的概念重載與重寫的區別重載與重寫的總結構造器是否能被重寫override為什么函數不能根據返回類型來區分重載重載與重寫的概念重載&#xff1a;同樣一個方法可以根據輸入參數列表的不同&#xff0c;做出不同的處理。普通方法和構造器方法都能夠重載。方法重載&…

二維數組、多維數組

二維數組&#xff1a; 定義二維數組 int[,] myArray new int[幾個一維數組,數組中的個數]; 數組可以具有多個維度。例如&#xff0c;下列聲明創建一個四行兩列的二維數組(可以理解為4個1維數組&#xff0c;數組中包含2個元素)&#xff1a; int[,] myArray new int[4,2]; int[…

一張大圖片有多個小圖片

這個頁面也是我看到別人的寫的&#xff0c;感覺不錯&#xff0c;就自己留下了為了以后自己可以容易找到&#xff0c;也希望可以方便到別人。 寫這個頁面 需要注意的是&#xff1a; 1.寫每一個小圖片的位置時候&#xff0c;要用id,這樣等級就高了&#xff0c;不然不起作用。 2.因…

java中如何調用dal接口案例_關于Java:接口的目的

好吧&#xff0c;我認為接口是一種強制對象實現一定數量功能的方法&#xff0c;而不必使用繼承。有點像合同。我半明白他們的意思。但是&#xff0c;如果界面中的所有內容都是&#xff1a;public interface animal{void eat(object food);}它沒有這樣的實現&#xff0c;那么無論…

Android Studio混淆

這一篇說一下Android Studio的代碼混淆&#xff1a; 第一步&#xff1a;要想使混淆生效&#xff0c;要修改項目&#xff08;App&#xff09;下的build.gradle一處內容&#xff1a;minifyEnabled 的值 設置為true&#xff0c;當前項目就可以使用混淆了。 apply plugin: com.and…

內存訪問模式很重要

在高性能計算中&#xff0c;通常會說高速緩存未命中的代價是算法的最大性能損失。 多年來&#xff0c;處理器速度的提高大大超過了延遲到主內存的速度。 通過更寬的多通道總線&#xff0c;到主內存的帶寬已大大增加&#xff0c;但是延遲并未顯著減少。 為了掩蓋這種延遲&#x…

上傳頭像將光標去掉

οnfοcus"this.blur();" unselectable"on" οnfοcus"this.blur();"支持火狐&#xff0c;谷歌等主流瀏覽器 unselectable支持ie瀏覽器轉載于:https://www.cnblogs.com/jar-gon/p/6841239.html

java底層 文件操作_JAVA的文件操作【轉】

11.3 I/O類使用由于在IO操作中&#xff0c;需要使用的數據源有很多&#xff0c;作為一個IO技術的初學者&#xff0c;從讀寫文件開始學習IO技術是一個比較好的選擇。因為文件是一種常見的數據源&#xff0c;而且讀寫文件也是程序員進行IO編程的一個基本能力。本章IO類的使用就從…

JAVA多線程,真的能提高效率嗎

舉個栗子 比如挖一個隧道&#xff0c;有2種開工方法1、只在山的一頭挖&#xff0c;直至挖到山的另一頭&#xff0c;從而打通隧道&#xff0c;這可以看成是單線程 2、在山的兩頭挖&#xff0c;同時開工&#xff0c;最后在山的中間接通&#xff0c;從而打通隧道&#xff0c;這感覺…

Java 8:測試Lambda水

Java 8大約有一年的時間了&#xff0c;它具有我非常期待的語言功能&#xff1a; Lambda Expression 。 令人遺憾的是&#xff0c;另一個重要功能Java平臺模塊已延遲到Java9。但是&#xff0c;將lambda表達式&#xff08;或閉包&#xff09;添加到該語言中將使Java編程變得更好。…

java定義js函數_JS中可以先使用函數,然后再定義.

首先要說明的,下面這種方式是對的,雖然不知道為什么,很奇怪為什么可以先使用,再定義,希望有了解的人可以給個說法.hello(www.openj.cn);function hello(name){alert("hello " name)};本文首發于 http://blog.openj.cn下面的這種定義函數方式,對于寫一些比較復雜的代碼…

基于閥值的工作流引擎設計

最近在做工作流處理流程部分的工作&#xff0c;順便研究了一下工作流引擎的一些設計理念和原理。由于以前接觸過人工智能神經網絡的一些東西&#xff0c;發現工作流引擎和神經網絡還是頗有一些相似之處&#xff0c;都是滿足一定的條件下向下一個節點傳遞。在神經網絡的神經元中…

Git之安裝管理

1.Git安裝部署 Git是分布式的版本控制系統&#xff0c;我們只要有了一個原始Git版本倉庫&#xff0c;就可以讓其他主機克隆走這個原始版本倉庫&#xff0c;從而使得一個Git版本倉庫可以被同時分布到不同的主機之上&#xff0c;并且每臺主機的版本庫都是一樣的&#xff0c;沒有主…

Java執行程序服務類型

ExecutorService功能是Java 5附帶的。它擴展了Executor接口&#xff0c;并提供了線程池功能來執行異步簡短任務。 使用Java 6提供的ExecutorService接口有五種異步執行任務的方法。 ExecutorService execService Executors.newCachedThreadPool&#xff08;&#xff09;; 這…

MySQL的主動優化和被動優化_MySQL“被動”性能優化匯總!

年少不知優化苦&#xff0c;遇坑方知優化難。 ——村口王大爺本文內容導圖如下&#xff1a;我之前有很多文章都在講性能優化的問題&#xff0c;比如下面這些&#xff1a;當然&#xff0c;本篇也是關于性能優化的&#xff0c;那性能優化就應該一把梭子嗎&#xff1f;還是要符合一…

python2

一、管理庫的安裝 安裝pip 提示報錯&#xff1a;安裝pip提示No module named setuptools Windows環境下Python默認是沒有安裝setuptools這個模塊的&#xff0c;這也是一個第三方模塊。下載地址為http://pypi.python.org/pypi/setuptools。下載后直接運行ez_setup.py 參考地址&…