亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

開發基于Web的CSS設計器

2024-07-21 02:16:21
字體:
來源:轉載
供稿:網友
國內最大的酷站演示中心!
這半年參與了一個基于asp.net的中型應用系統開發,其間經歷種種,收獲不少。前段時間做了一個基于web的css設計器,雖然技術不算復雜,不過綜合了c#/xml/htc等技術,對于大家應該有一定參考價值;而且該設計器相對于系統比較獨立,因此在這里和大家共享,供大家參考,并請多提意見!

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

相信做過的人大多用過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組件,實現不同輸入模式。








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

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


謝謝大家捧場看了這么久 :)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚州成人av在线| 成人黄色激情网| 久久视频在线播放| 精品久久中文字幕久久av| 国产综合色香蕉精品| 国产婷婷97碰碰久久人人蜜臀| 韩国精品美女www爽爽爽视频| 国产精品av在线| 尤物九九久久国产精品的特点| 久久韩国免费视频| 国内精品模特av私拍在线观看| 精品久久久在线观看| 国产ts人妖一区二区三区| 日韩a**站在线观看| 久久人体大胆视频| 91高清视频免费观看| 日韩专区中文字幕| 国产欧美一区二区三区在线看| 奇门遁甲1982国语版免费观看高清| 欧日韩不卡在线视频| 国产日本欧美在线观看| 97精品伊人久久久大香线蕉| 国产精品自拍小视频| 亚洲一区二区中文字幕| 91在线视频导航| 亚洲国产精品福利| 日韩一区二区av| 91精品在线一区| 91沈先生作品| 日韩精品欧美国产精品忘忧草| 国产精品爱啪在线线免费观看| 国产亚洲精品va在线观看| 国产福利成人在线| 久久99精品国产99久久6尤物| 91丨九色丨国产在线| 尤物九九久久国产精品的特点| 国产精品久久久久久久久久久新郎| 九九精品视频在线| 日韩精品在线私人| 2019精品视频| 亚洲裸体xxxx| 在线观看不卡av| 国产亚洲激情在线| 国产精品一区二区久久精品| 日韩综合中文字幕| 国产91在线高潮白浆在线观看| 69视频在线播放| 欧美激情在线视频二区| 97精品国产91久久久久久| 久久精品国产2020观看福利| 精品无人区太爽高潮在线播放| 久久久久久久成人| 亚洲欧洲免费视频| 亚洲女性裸体视频| 欧美激情精品久久久久久免费印度| 7777免费精品视频| 欧美高清无遮挡| 日韩欧美在线字幕| 97在线视频精品| 日韩最新中文字幕电影免费看| 久久久久99精品久久久久| 久久综合伊人77777尤物| 中文字幕国产精品久久| 日韩成人激情在线| 亚洲毛片在线观看| 美乳少妇欧美精品| 国产一区深夜福利| 国产一区二区激情| 久久99精品视频一区97| 国产日韩欧美在线视频观看| 欧美xxxx14xxxxx性爽| 欧美有码在线观看视频| 日韩视频在线免费| 高跟丝袜欧美一区| 91av在线播放视频| 久久久久亚洲精品国产| 中文字幕成人在线| 91在线视频导航| 久久亚洲国产成人| 久久精品国产亚洲精品2020| 最新中文字幕亚洲| 亚洲欧美国产一区二区三区| 久久久女人电视剧免费播放下载| 日韩av片免费在线观看| 精品国产鲁一鲁一区二区张丽| 国产精品成熟老女人| 亚洲aaaaaa| 亚洲性猛交xxxxwww| 成人免费网视频| 夜夜嗨av一区二区三区四区| 精品伊人久久97| 91精品久久久久久久久久久久久| 久久精品国产69国产精品亚洲| 91久久在线播放| 欧美激情综合亚洲一二区| 亚洲sss综合天堂久久| 亚洲精品成人久久久| 成人欧美一区二区三区黑人孕妇| 国产精品国产三级国产aⅴ浪潮| 亚洲日本中文字幕免费在线不卡| 91中文在线视频| 久久天天躁狠狠躁夜夜躁2014| 国产一区二区香蕉| 日韩av在线电影网| 亚洲国产精品免费| 精品女同一区二区三区在线播放| 亚洲摸下面视频| 97婷婷大伊香蕉精品视频| 色综合久久天天综线观看| 亚洲区在线播放| 日韩午夜在线视频| 亚洲无线码在线一区观看| 清纯唯美亚洲激情| 久久久久中文字幕| 国产精品69久久| xxxxx91麻豆| 人人做人人澡人人爽欧美| 精品日本美女福利在线观看| 亚洲福利在线播放| 久久全国免费视频| 亚洲电影av在线| 日韩av中文字幕在线播放| 久久久久久久久久久91| 欧美午夜美女看片| 日韩在线播放视频| 国产精品夜色7777狼人| 亚洲成人动漫在线播放| 超碰精品一区二区三区乱码| 精品亚洲一区二区三区在线观看| 亚洲性无码av在线| 亚洲视频欧美视频| 亚洲精品久久久久久下一站| 色偷偷噜噜噜亚洲男人的天堂| 国产精品久久久久久av福利软件| 亚洲国产黄色片| 久久全球大尺度高清视频| 亚洲第一黄色网| 久久人91精品久久久久久不卡| 成人福利在线观看| 成人欧美一区二区三区在线湿哒哒| 亚洲美女视频网站| 国产精品一香蕉国产线看观看| 国产欧美日韩中文字幕在线| 57pao国产精品一区| 久久久人成影片一区二区三区| 91青草视频久久| 日本精品一区二区三区在线播放视频| 欧美一区二区大胆人体摄影专业网站| 欧美精品激情视频| 久久成人av网站| 久久夜色精品国产欧美乱| 尤物九九久久国产精品的分类| 国内精品久久久久久中文字幕| 国产精品精品国产| 久久精品视频va| 久久久精品亚洲| 亚洲一区二区久久久久久久| www.午夜精品| 97精品国产97久久久久久免费| 麻豆乱码国产一区二区三区| 国模吧一区二区三区| 色综合色综合网色综合| 国产在线一区二区三区| 精品国产一区二区三区久久|