韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

開發(fā)基于Web的CSS設(shè)計(jì)器.代碼參考

開發(fā)基于Web的CSS設(shè)計(jì)器.代碼參考

更新時間:2022-10-13 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

這里對前面文章講的CSS設(shè)計(jì)器系統(tǒng)關(guān)鍵代碼作一些小結(jié),如果沒有看過前面文章的請先參看"開發(fā)基于Web的CSS設(shè)計(jì)器"


解析CSS樣式文件

這段代碼主要作用是把CSS文件分解為多個樣式類,并按名稱/文本屬性生成ClassItem對象,并保存在一個ArrayList(cssList)中(C#代碼)

//讀取文件
FileInfo theSource= new FileInfo (@m_filePath);
StreamReader reader = theSource.OpenText();
//將文件流轉(zhuǎn)化為文本
m_cssText = reader.ReadToEnd();
reader.Close();
//定義CSS文本分割符
char[] delimiters = new char[] { '{','}'};
int iCheck = 1;
string className = null;
//將文本轉(zhuǎn)化為ArrayList
foreach ( string substring in m_cssText.Split(delimiters))
{
if (iCheck%2==0)
//當(dāng)iCHeck為偶數(shù)時,字符串為樣式屬性內(nèi)容
//將解析的樣式名和屬性作為ClassItem對象存入cssList
cssList.Add( new ClassItem ( className, substring.Trim() ) );
else
//當(dāng)iCHeck為奇數(shù)時,字符串為樣式名,暫存
className = substring.Trim();
iCheck++;
}




交互界面構(gòu)建

交互界面由Javascript通過XmlDocument讀取Xml文件動態(tài)生成。

首先要讀取XML文件,然后遍歷整個XML文件,先遍歷樣式分類,再對每個分類遍歷其下的所有樣式屬性。比較關(guān)鍵的代碼是對XML的遍歷,下面是對樣式分類的遍歷代碼。


//LoadXML是XML文件讀取函數(shù)
var dom = LoadXML("css.xml");
//通過XPath和selectNodes方法返回一個XMLDOMNodeList對象
var oNode = dom.selectNodes("//Category/Name");
//獲取該對象長度,即XML文檔中該路徑節(jié)點(diǎn)的數(shù)量
var intCategory = oNodes.length;
for (i=0; i<intCategory; i++)
{
//獲取集合中的節(jié)點(diǎn)
oNode = oNodes.nextNode;
if (oNode != null)
{
//樣式分類界面構(gòu)建代碼-略
……
}
}




樣式輸入控件構(gòu)建函數(shù),該函數(shù)作用是根據(jù)XPath路徑查詢XML定義,生成交互控件


function BuildInput ( path )
{
var str="";
var aNode=null;
var attValue=null;
//通過selectSingleNode返回符合條件的第一個節(jié)點(diǎn)
var actNode = dom.selectSingleNode(path+"ActionType");
var nameNode = dom.selectSingleNode(path+"CssName");
//如果屬性為選擇輸入,則讀取SelectItems,并構(gòu)建select控件
if (actNode.text=="select")
{
str += "<select id='"+nameNode.text+"' name='"+nameNode.text+"' class='eSelect'>\n";

//查詢該項(xiàng)的所有選擇列表項(xiàng)
var itemsNodes = dom.selectNodes (path+"SelectItems/Item");
str += "<option value='-1'>未設(shè)置</option>\n";
for (ii=0;ii<itemsNodes.length;ii++)
{
aNode = dom.selectSingleNode (path+"SelectItems/Item["+ii+"]");

//如果該項(xiàng)含有Name屬性則在列表中顯示Name屬性值
attValue = aNode.getAttribute("Name")
var txtNode = dom.selectSingleNode (path+"SelectItems/Item["+ii+"]");

if (attValue==null)
str += "<option value='"+txtNode.text+"'>"+txtNode.text+"</option>\n";
else
str += "<option value='"+txtNode.text+"'>"+attValue+"</option>\n";
}

str += "</select>";
}
else

//如果屬性為其他模式,則構(gòu)建input輸入,設(shè)置class屬性為ActionType
{
str = "<input name='"+nameNode.text+"' id='"+nameNode.text+"' class='"+actNode.text+"'>\n";
}

return(str);
}





設(shè)計(jì)器初始化

Js腳本讀取解析樣式元素的style屬性值,然后為設(shè)計(jì)器中構(gòu)建的控件賦值


//設(shè)計(jì)器初始化
function Init()
{
//獲得由服務(wù)器端賦值的樣式屬性值
var txt=document.all("DemoShow").style.cssText;
if (txt.length>0)
{
var strClassName;

//解析字符串
var aryClass = txt.split(/[:;]/);
for( i in aryClass)
{
var str = aryClass[i].replace(/(^\s*)|(\s*$)/g, "");
if(!(i%2==1))
{
//當(dāng)i為奇數(shù)時,解析的字符串應(yīng)該為樣式屬性名稱
strClassName=str;
}
else
{
//當(dāng)i為偶數(shù)時,獲得屬性值
//屬性名稱即控件ID
//判斷該屬性對應(yīng)的控件是輸入框還是選擇列表
if(document.all(strClassName).type=="select-one")
{

//如果是選擇列表通過setIndexOfValue函數(shù)設(shè)定選擇項(xiàng)
setIndexOfValue(strClassName,str);

}
else
{
document.all(strClassName).value=str;
}
}
i++;
}
}
}





界面交互

在XML中一共定義了select/input_ColorSelect/input_SizeSelect/input_BorderSelect(后3種為顏色/大小/邊框輸入模式)共4種輸入模式,除select為直接選擇外,其他在對應(yīng)控件初始化的時候作為class屬性賦值到控件中,類似class代碼如下


/* 顏色輸入模式input框的樣式類 */
.input_ColorSelect{
width:100px;
font-family:Tahoma;
behavior:url(htc/effColorSelect.htc);
}




通過behavior屬性,把該輸入控件和相應(yīng)的組件相關(guān)聯(lián),該組件effColorSelect.htc代碼如下


<PUBLIC:ATTACH EVENT="onfocus" ONEVENT="getShow()"/>
<PUBLIC:METHOD NAME="getChange"/>
<SCRIPT LANGUAGE="JScript">
function getShow()
{
element.blur();

//記錄當(dāng)前交互控件的ID
effElement=element.id;
//在頁面中加載輸入控件
ShowControl ("SelectColor");
}

function getChange()
{
//當(dāng)值發(fā)生變化時,對可視化樣式元素賦值
SetAttribute(element.id,element.value);
}
</SCRIPT>






其他

設(shè)計(jì)器中的值輸入模式框只是頁面中的幾個層,通過上面的htc組件觸發(fā)顯示出來,輸入后再把值傳入到樣式屬性控件中,同時也會設(shè)置可視化樣式元素。

另外還需要注意的是,XML文檔是可以自行擴(kuò)展或縮減的,但是在實(shí)際應(yīng)用中,不能完全依據(jù)CSS標(biāo)準(zhǔn)來定義,因?yàn)榭梢暬氐膕tyle屬性會自動格式化。例如如果你在XML中定義border-bottom-width屬性,在將值取出時會自動格式化為border-bottom,這樣會造成設(shè)計(jì)器中控件不能匹配。我在MSDN沒有查到相關(guān)文檔,所以只有經(jīng)過實(shí)際測試來驗(yàn)證。


OK,比較關(guān)鍵的代碼已經(jīng)差不多了……希望能對大家有所幫助。


參考

另外再列出部分技術(shù)參考,如果大家對其中的技術(shù)細(xì)節(jié)如HTC和XmlDom等有所疑問,可以再詳細(xì)研究一下,也歡迎大家來和我交流 linnchord@tom.com 。

MSDN關(guān)于JS操作XmlDom的文檔
這是英文文檔,網(wǎng)上沒有看到比較詳細(xì)的中文文檔,好在不復(fù)雜,大家將就一下吧 :)
(最近MSDN不知道什么毛病,經(jīng)常訪問有問題,如果無法訪問,請先登錄msdn,再輸入地址瀏覽)

藍(lán)色理想的HTC教程
網(wǎng)上也沒看見比較全面的講述,這個簡單易學(xué),基本概念清楚了。

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

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
狠狠色综合网站久久久久久久| 暖暖成人免费视频| 色视频在线观看在线播放| 88国产精品欧美一区二区三区| 中文字幕+乱码+中文字幕明步| 国产成人综合亚洲91猫咪| 亚洲欧美国产制服动漫| 久久免费高清视频| 岛国在线最新| 久久精品免费在线观看| 久久婷婷国产综合精品青草| 亚洲成a人片在线www| 亚洲人成网7777777国产| 欧美激情一二三| 日韩欧美亚洲成人| 91精品国产色综合久久不卡98| 欧美一级黑人aaaaaaa做受| 超碰人人在线| 手机看片福利在线观看| 一级视频在线观看| 男人天堂99| 欧美自拍偷拍午夜视频| 成人av影视在线| 日本在线电影一区二区三区| 欧美中文在线字幕| 蜜桃久久精品乱码一区二区| 久久成人综合视频| 麻豆网站视频在线观看| 麻豆精品一区二区三区| 国产精品久久波多野结衣| 99re8精品视频在线观看| 8x8ⅹ国产精品一区二区二区| 国产精品专区一| 经典三级一区二区| 95影院理论片在线观看| 日韩三级视频| 欧美插天视频在线播放| 一二三区在线播放| 91l九色lporny| 久久先锋资源| 欧美韩国日本精品一区二区三区| 日韩欧美黄色| 亚洲影院高清在线| 亚洲精品乱码久久久久久久| 色综合亚洲欧洲| 麻豆tv入口在线看| 不卡福利视频| 日韩美女久久久| 在线免费观看日韩视频| 91视频最新| 波多野结衣50连登视频| 欧美电影网站| 久久精品亚洲天堂| 精品久久国产视频| 日韩av影片在线观看| 国产私拍福利精品视频二区| 日本在线视频免费| 狠狠操在线视频| 亚洲一区电影| 1区2区3区在线| 中文字幕成人乱码在线电影| 天天好比中文综合网| 成人一区视频| 欧美成人基地| 日本a级片在线观看| 日韩一区网站| 欧美另类z0zx974| 免费av在线网站| 国产麻豆剧果冻传媒观看hd高清| 综合激情亚洲| 欧美另类z0zxhd电影| 久一视频在线观看| 欧美日韩亚洲一区二区| 夜夜操 天天摸| 亚洲视频自拍| 国产69精品久久久久孕妇| 久久99久久久欧美国产| 啪啪激情综合网| 貂蝉被到爽流白浆在线观看| 秋霞午夜av一区二区三区| 国产精品999999| 亚洲视频网站在线观看| 欧美gv在线观看| 国产精品久久久久久久久妇女| 日韩 欧美 精品| 国产精品99久久久久久久久| 精品欧美一区二区三区在线观看| 人人超碰91尤物精品国产| 欧美一区2区视频在线观看| 麻豆视频在线看| 日韩精品―中文字幕| 亚洲免费福利视频| av在线不卡免费| 亚洲视频中文字幕| 女女互磨互喷水高潮les呻吟| 91在线|亚洲| 男女视频在线看| 黄色免费av网站| 亚洲精品一区在线| 在线观看av网站| 欧美国产一区二区在线观看| 中文字幕有码无码人妻av蜜桃| 91在线观看网站| 丁香六月激情婷婷| 国产精品久久久久久久免费大片| 成人精品久久一区二区三区| 99热亚洲精品| 久久精品欧美日韩| 欧美黑人乱大交ⅹxxxxx| 蜜桃av噜噜一区二区三区小说| 7788色淫网站小说| 青青操国产视频| 欧美一区二视频| 先锋影音av在线资源| 精品91久久久| 亚洲av激情无码专区在线播放| 久久亚洲国产精品日日av夜夜| 日韩中文一区二区三区| 亚洲欧洲久久| 一级视频在线免费观看| 可以免费看毛片的网站| 里番在线播放| 国产乱子伦农村叉叉叉| 中文字幕日韩精品一区二区| 国内视频一区二区| 亚洲成人激情小说| 成人黄色网免费| 国产精品bbw一区二区三区| 久久综合综合久久综合| julia中文字幕久久亚洲蜜臀| 91在线看网站| 毛片视频免费| 国产精品久久久久久吹潮| 亚洲欧美一区二区三区久本道91| 日韩视频免费观看高清完整版在线观看| 精品日韩av一区二区| 色悠久久久久综合网小说| 无码 制服 丝袜 国产 另类| 亚洲成人av影片| 亚洲免费视频二区| 天天天干夜夜夜操| 天天做天天爱天天高潮| 欧美国产日韩精品免费观看| 日本一级黄色录像| 男人在线观看视频| 在线免费观看成人短视频| 国产精品久久久久免费| 国产午夜免费福利| 在线欧美成人| 亚洲日韩欧美一区二区在线| 日韩专区在线播放| 伊人中文字幕在线| 欧美天堂一区| h版电影在线播放视频网站| 国产精品久久亚洲| 忘忧草精品久久久久久久高清| 久久久噜噜噜www成人网| 日韩av在线电影观看| 麻豆md0077饥渴少妇| 99久久久国产精品美女| eeuss影院第1页在线| 日韩精品一区二区三区老鸭窝| 日本亚洲免费观看| 天天射综合网站| 欧美久久视频| 亚洲色图美国十次| 黄色av网站在线播放| 国产日产高清欧美一区二区三区| 久久激情视频久久| 久久久久久av无码免费网站下载| 岛国最新视频免费在线观看| 国产精品对白一区二区三区| 在线精品视频小说1| 国产变态拳头交视频一区二区| 男男受被啪到高潮自述| 成片免费观看| 日韩国产欧美在线视频| 热re91久久精品国99热蜜臀| 国产精品久久久久久久久久久久冷| 国产欧美精品国产国产专区| 亚洲成人77777| 国产精品午夜av在线| 99久久影视| 国产真实乱偷精品视频免| 97精品免费视频| 黄瓜视频免费观看在线观看www| 经典三级一区二区三区视频| 日韩精品欧美激情一区二区| 不卡一区中文字幕| 国产精品亚洲αv天堂无码| 五月激情综合色| 日日夜夜天天操| 国产精品国产三级国产专播精品人| 1区1区3区4区产品乱码芒果精品| 视频一区视频二区欧美| 性日韩欧美在线视频| 狠狠狠综合7777久夜色撩人| 日韩一级片大全| 91亚洲欧美| 天堂av最新在线| а天堂8中文最新版在线官网| 男人的天堂网av| 黄色三级中文字幕| 久久人人爽爽爽人久久久| 麻豆精品国产免费| 99国精产品一二二线| 免费国产羞羞网站视频| 亚洲精品成人久久久998| 国产精品黄色片| 91玉足脚交白嫩脚丫在线播放| 蜜桃传媒视频麻豆一区| 亚洲欧洲精品一区二区三区不卡| 人人干人人爱人人爱| 国产视频在线视频| 免费电影网站在线视频观看福利| 精品一区二区久久久久久久网站| 精品高清久久| 超碰在线亚洲| 日韩理论电影大全| 亚洲综合色网站| 国产精品久久不卡| 欧美在线一区二区三区| 在线国产亚洲欧美| 岛国成人毛片| 国产精品一色哟哟哟| 啪啪免费视频一区| 欧亚av在线| 亚洲精品第一国产综合精品| 国产精品aaaa| 国产日韩精品一区二区| 日韩一卡二卡三卡四卡| 亚洲欧洲一区二区天堂久久| 自慰无码一区二区三区| 九色在线视频| 舐め犯し波多野结衣在线观看| 7799国产精品久久久久99| 久久久久亚洲AV成人| 日本wwwcom| 黄页网站大全在线观看| 国产伦精品一区二区三区照片91| 国产欧美一区二区三区不卡高清| 都市激情一区| 无码人妻aⅴ一区二区三区69岛| 亚洲中文字幕无码一区| 疯狂欧美牲乱大交777| 欧美一区三区| 99国产成+人+综合+亚洲欧美| 日韩三级视频| 大桥未久恸哭の女教师| 欧美色图自拍| 日本一区二区免费高清视频| 黑人巨大国产9丨视频| 欧美人妖巨大在线| 欧美三级电影在线观看| 日韩欧美专区在线| 欧美一级在线观看| 国产一区丝袜| 欧美不卡在线播放| 国产一区二区三区视频在线观看| 国产精品久久久久久久久久久久久| 最近中文字幕mv免费高清视频8| 污视频软件在线观看| 91精品中文字幕| caoporn国产精品| 黄色在线免费| 摸bbb搡bbb搡bbbb| 精品一区二区三区在线观看l| 亚洲女子a中天字幕| 久久91精品国产91久久小草| 九九九九九九精品任你躁| а√最新版天堂中文在线| 无码精品一区二区三区在线播放| 亚洲熟妇无码另类久久久| 少妇熟女视频一区二区三区| 黄网址在线观看| 一区二区美女| 国产精品青草久久久久福利99| 欧美精品色视频| 超薄肉色丝袜足j调教99| 91玉足脚交嫩脚丫在线播放| 一二三四在线观看视频韩国| 一区二区三区不卡视频在线观看| 四季av中文字幕| 大陆精大陆国产国语精品| 爱豆国产剧免费观看大全剧苏畅| 777片理伦片在线观看| 国产精品久久久久久久蜜臀| 免费久久久一本精品久久区| 成人免费福利视频| 你懂的网站在线播放| 成人av一区二区三区| 99久久免费国产精精品| 青青草国产精品一区二区| 国产成人一区二区三区小说| 在线不卡欧美精品一区二区三区| 国产亚洲在线播放| 欧美亚洲第一区| 中文字幕在线播放日韩| 粉嫩av免费一区二区三区| 人妻av一区二区三区| 国产一级特黄a大片99| 亚洲免费成人在线视频| 欧美网站免费观看| 欧美一区1区三区3区公司| 精品在线网站观看| 日韩视频在线观看| 污黄网站在线观看| 日日夜夜精品网站| 精品国产伦一区二区三| 青青草视频在线免费直播| 粉嫩高清一区二区三区精品视频| 中文av资源| 欧洲成人午夜免费大片| 国产精品三级久久久久三级| 影音先锋2020资源| 天天摸天天做天天爽| 亚洲性xxxx| 欧美mv日韩mv国产网站app| 免费黄网站观看| 色综合色综合色综合色综合色综合| 天堂av在线中文| 涩涩视频在线免费看| 久久精品视频91| 国产97色在线| 91麻豆精品国产综合久久久久久| 亚洲免费视频网站| 成人毛片视频免费看| 黄色片网站免费在线观看|