日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

開發基于Web的CSS設計器

開發基于Web的CSS設計器

更新時間:2022-05-06 文章作者:未知 信息來源:網絡 閱讀次數:

這半年參與了一個基于asp.net的中型應用系統開發,其間經歷種種,收獲不少。前段時間做了一個基于Web的CSS設計器,雖然技術不算復雜,不過綜合了C#/XML/HTC等技術,對于大家應該有一定參考價值;而且該設計器相對于系統比較獨立,因此在這里和大家共享,供大家參考,并請多提意見!

設計器的主要功能就是在web界面上設計操作CSS樣式表,目的是方便用戶自定義系統界面。

相信做過Web開發的人大多用過Dreamweaver或者做asp.net開發也應該用過vs.net,那么應該熟悉里面的樣式(style)設計器,這里就是在Web上實現這個設計器。


1.系統流程

下面我們先來了解一下整個系統流程








































流程再簡單說明一下

·先傳入參數包括文件名/樣式名/操作方法/可視化樣式元素;其中可視化樣式元素是要在設計器中即時顯現,供效果預覽的,同時也是承載樣式定義內容的要素(樣式就加載在元素的style屬性上)。

·然后設計器根據傳入參數操作,根據操作方法-新建文件/新建樣式/修改樣式,前兩者在初始化時不用讀取樣式文件,最后者需要讀取樣式進行初始化;利用一個設計的C#類來對樣式文件和樣式類進行操作。

·在客戶端利用Javascript操作XmlDocument對象讀取XML定義的樣式文件,進行設計器構建。

·利用Javascript通過樣式元素的cssText屬性讀取樣式值,對設計器初始化。

·用戶操作設計器,利用HTC組件操作設計樣式。

·保存,利用C#類操作。


2.CSS設計器之樣式表操作類

下面,我們來詳細察看流程的每個環節。

為了操作樣式表,設計了一個簡單的樣式表操作類。功能主要是解析操作指定樣式表文件,實現對樣式類的添加、修改、刪除、保存。

機制:讀取Web服務器上某樣式表文件,將文本轉化為一個ArrayList,數組元素為自定義的ClassItem對象,包含Name和Text屬性(Name即樣式名稱,Text即樣式的內容);然后通過對ArrayList操作,控制樣式,最后保存。

由于在服務器段我們不作具體樣式定義,因此該類只操作到樣式類級別,不涉及樣式屬性和值。

下面提供該類的UML圖 ClassItem 是一個結構體,僅包含兩個屬性;




3.CSS設計器之XML樣式屬性定義

CSS樣式中包含很多屬性設置,設計器中當然要包含相應的屬性;那么這些屬性信息從哪里來呢?

采用XML定義是一種很自然就會想到的方式。

經常使用DW和VS.NET,所以在交互設計上采用了類似的模式;先將樣式屬性按應用分類,再設置詳細屬性。

CSS屬性是比較復雜的,如果要完全按照DW或VS.NET的模式,實現會比較復雜。為了簡化,我把值的輸入簡化為兩種形式,選擇和文本輸入。對于選擇,直接在XML文件中定義;對于文本輸入,抽象幾種輸入類型,在設計器生成時根據類型設定不同的HTC組件操作。這樣就將一些復雜的屬性輸入封裝到HTC組件中,整個構架就簡潔起來。


XML文件描述

首先是屬性分類

<CSSDesign>
<Category>
<Name>文字</Name>
<Style>
<Name>字體</Name>
......
</Style>
<Style>
<Name>樣式</Name>
......
</Style>
......
</Category>
<Category>
<Name>背景</Name>
<Style>
<Name>顏色</Name>
......
</Style>
......
</Category>
</CSSDesign>

系統分為文字、背景、文本、位置、布局、方框、邊框和其他,每種類型有一個Name子元素和若干Style子元素。


每個Style子元素表示一個Style屬性,結構如下

<Style>
<Name>字體</Name>
<CssName>font-family</CssName>
<ActionType>select</ActionType>
<SelectItems>
<Item>verdana,arial</Item>
<Item Name="宋體">SimSun</Item>
<Item Name="黑體">SimHei</Item>
</SelectItems>
</Style>

<Style>
<Name>大小</Name>
<CssName>font-size</CssName>
<ActionType>select</ActionType>
<SelectItems>
<Item>12px</Item>
<Item>14px</Item>
<Item>9px</Item>
</SelectItems>
</Style>

<Style>
<Name>顏色</Name>
<CssName>background</CssName>
<ActionType>input_ColorSelect</ActionType>
</Style>


Name 為該屬性的描述名稱,在設計器中為文本描述;

CssName 為屬性名,在設計器中即輸入字段的ID,初始化時也據此賦值;

ActionType 為屬性設置方法,在設計器中為輸入字段的樣式類名,該樣式中含有Behavior屬性,制定HTC組件;

SelectItems 為選擇項,如果ActionType為Select,將會在此列出選擇項;其子元素Item如果含有Name屬性,將顯示在設計器中,否則直接顯示該元素的文本內容


框架圖

此為縮略圖,請點擊打開





4.CSS設計器之界面交互

整個操作交互過程,除了最后保存文件外,其他都是由javascript完成。

首先DesignerBuild函數通過XmlDocumnet讀取XML樣式屬性定義文件,構建整個設計器界面。然后Init函數讀取服務器端賦給設計元素的Style.cssText屬性,并把屬性作為輸入控件ID在設計器中查找并賦值,完成初始化。

在操作過程中,根據輸入控件的樣式類Class,觸發綁定的HTC組件,做相應的客戶端操作。

最后再讀取設計元素的style屬性,保存。


設計器界面






不同的設計元素





不同輸入控件的不同class屬性(根據XML中ActionType生成)觸發不同HTC組件,實現不同輸入模式。








由于商業原因,這里不便提供源代碼;我將在后面提供部分關鍵代碼供參考。

由于時間有限,無法一次完成,請見諒。


謝謝大家捧場看了這

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 5g影视天天看最新网站 | 91欧美| 亚洲综合色区图片区 | 91热久久免费频精品黑人99 | 一区二区在线欧美日韩中文 | 欧美我不卡 | 亚洲精品国产专区91在线 | 一级毛片不卡 | 国产高清在线看免费视频观 | 国产成人在线观看免费网站 | 一区二区三区免费视频 www | 怡红院官网 | 亚洲天堂视频在线免费观看 | 国产成人久久精品激情91 | 国产大片91精品免费观看不卡 | 日本午夜vr影院新入口 | 久色福利 | 久久国产免费观看精品3 | 国产―笫一页―浮力影院xyz | 国产精品成人免费视频 | 免费人成在线观看播放国产 | 中文字幕日韩精品亚洲七区 | 国产成人精品亚洲 | 天天射天天舔 | 1024你懂的国产日韩欧美 | 久久这里只有精品视频99 | 黄网站色视频免费观看w | 成人嫩草研究院网站进 | 久久视频这里有精品68 | 91污网站 | 国产成人www免费人成看片 | 久久综合九色综合亚洲小说 | 免费网站a | 久久久久欧美情爱精品 | 视频一区欧美 | 亚洲成人精品久久 | 国产日韩欧美911在线观看 | 国产永久免费高清动作片www | 亚洲日本久久久午夜精品 | 天天躁日日躁狠狠躁综合 | 亚洲国产欧美日韩一区二区 |