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

首頁 > 開發(fā) > CSS > 正文

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

2024-07-21 02:21:42
字體:
供稿:網(wǎng)友
這里對(duì)前面文章講的css設(shè)計(jì)器系統(tǒng)關(guān)鍵代碼作一些小結(jié),如果沒有看過前面文章的請(qǐng)先參看"開發(fā)基于web的css設(shè)計(jì)器"


解析css樣式文件

這段代碼主要作用是把css文件分解為多個(gè)樣式類,并按名稱/文本屬性生成classitem對(duì)象,并保存在一個(gè)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ù)時(shí),字符串為樣式屬性內(nèi)容
//將解析的樣式名和屬性作為classitem對(duì)象存入csslist
csslist.add( new classitem ( classname, substring.trim() ) );
else
//當(dāng)icheck為奇數(shù)時(shí),字符串為樣式名,暫存
classname = substring.trim();
icheck++;
}




交互界面構(gòu)建

交互界面由javascript通過xmldocument讀取xml文件動(dòng)態(tài)生成。

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


//loadxml是xml文件讀取函數(shù)
var dom = loadxml("css.xml");
//通過xpath和selectnodes方法返回一個(gè)xmldomnodelist對(duì)象
var onode = dom.selectnodes("//category/name");
//獲取該對(duì)象長度,即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返回符合條件的第一個(gè)節(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";

//查詢?cè)擁?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ù)時(shí),解析的字符串應(yīng)該為樣式屬性名稱
strclassname=str;
}
else
{
//當(dāng)i為偶數(shù)時(shí),獲得屬性值
//屬性名稱即控件id
//判斷該屬性對(duì)應(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為直接選擇外,其他在對(duì)應(yīng)控件初始化的時(shí)候作為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ā)生變化時(shí),對(duì)可視化樣式元素賦值
setattribute(element.id,element.value);
}
</script>






其他

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

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


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


參考

另外再列出部分技術(shù)參考,如果大家對(duì)其中的技術(shù)細(xì)節(jié)如htc和xmldom等有所疑問,可以再詳細(xì)研究一下,也歡迎大家來和我交流 [email protected] 。

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

藍(lán)色理想的htc教程
網(wǎng)上也沒看見比較全面的講述,這個(gè)簡(jiǎn)單易學(xué),基本概念清楚了。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美顶级毛片在线播放| 亚洲日本中文| 九一成人免费视频| 紧身裙女教师波多野结衣| 中文字幕av在线播放| 成人免费视频国产在线观看| 18精品爽视频在线观看| www.av中文字幕| 久久久久久少妇| 亚洲国产精品久久久久婷婷老年| 95av在线视频| 五月天综合激情网| 国产一区二区你懂的| 精品免费日韩av| 国产成人一区二区三区小说| 色丁香久综合在线久综合在线观看| 国产 欧美 在线| 日本色护士高潮视频在线观看| 国产无遮挡又黄又爽又色| 成人精品视频99在线观看免费| 亚洲视频电影在线| www.国产在线观看| 99久久自偷自偷国产精品不卡| 成人在线视频播放| 被陌生人带去卫生间啪到腿软| 97se视频在线观看| 色哟哟无码精品一区二区三区| 熟女视频一区二区三区| 最色在线观看| 日韩精品无码一区二区三区| 黄色大片在线播放| 国产男女无遮挡| 久久99精品久久久| 国产精品一品二品| 成人精品视频在线播放| 国产欧美日韩久久| 日韩免费成人| 久久久久久77777| 亚洲va电影大全| 国产精品欧美久久久久天天影视| 96成人在线视频| 久久精品亚洲精品| 欧美日韩亚洲精品一区二区三区| 成年女人免费视频| 亚洲小说欧美另类激情| 亚洲七七久久综合桃花剧情介绍| 一区久久精品| 成人18免费入口| 在线一区二区三区做爰视频网站| 97国产在线视频| 国产成人亚洲欧美| 国产成人欧美在线观看| 久久成人这里只有精品| 国产成人精品综合久久久久99| 男女视频免费网站| 日本一区二区三区视频| 国产经典一区二区三区| 欧美中文一区二区三区| 亚洲国产精品一区二区久久恐怖片| 久久久久亚洲av无码专区桃色| 国产人妻黑人一区二区三区| 亚洲乱码中文字幕综合| 欧美视频免费看欧美视频| 中文字幕一区日韩精品欧美| 水蜜桃亚洲精品| 日韩av成人在线观看| 亚洲欧美激情另类校园| 黄色av网址在线播放| 国产精品二区影院| 亚洲欧美日韩中文字幕在线观看| 手机在线免费看av| 欧美日韩免费观看一区=区三区| 91久久精品国产| 国产精品白浆视频免费观看| 欧美大成色www永久网站婷| 激情欧美国产欧美| 999国产视频| yw在线观看| 在线观看免费亚洲| 国产精品三p一区二区| 538精品视频| 国产精品视频一区二区三区综合| h网站免费观看| 国产精品久久久久久久7电影| 美女一区视频| 亚洲欧美日韩国产综合在线| 成人h动漫精品| julia中文字幕一区二区99在线| 97热精品视频官网| 成人午夜视频免费看| 有没有片在线看www| 亚洲成年人视频| 欧美mv和日韩mv国产网站| 精品欧美一区免费观看α√| 欧美在线视频全部完| 九九热这里只有| av免费观看网站| 亚洲小视频在线观看| 日韩免费看网站| 色一情一乱一区二区| 中文字幕在线观看免费高清| 日本视频中文字幕| 国产精品推荐精品| 麻豆国产一区二区| 不卡的电视剧免费网站有什么| 欧美日韩国产另类一区| 91大片在线观看| 亚洲色欲综合一区二区三区| 国产女同无遮挡互慰高潮91| 久久青青色综合| 四季av中文字幕| 国产黄色av片| 色天天久久综合婷婷女18| 精品国产乱码久久久久久郑州公司| 亚洲精品乱码久久久久久日本蜜臀| 色哺乳xxxxhd奶水米仓惠香| 成人性生交大片免费看视频r| √天堂8在线网| 1024在线看片你懂得| 欧美在线视频一区| 91精品国产高清久久久久久91| 国产日韩欧美视频在线观看| 欧洲av一区二区嗯嗯嗯啊| 午夜不卡视频| 激情小说综合区| 免费一级全黄少妇性色生活片| 亚洲中文一区二区三区| 成人国内精品久久久久一区| 亚洲欧美国产日韩综合| 无遮挡动作视频在线观看免费入口| 国产精品毛片高清在线完整版| 亚洲国产综合在线看不卡| 中文在线аv在线| 欧美极品videos大乳护士| 国产极品一区| 中文字幕手机在线视频| 人妻换人妻a片爽麻豆| 热99精品里视频精品| 国产午夜福利100集发布| 成人线上视频| 国产精品羞羞答答| 上原亚衣加勒比在线播放| 久久精品xxxxx| 国产精品福利在线观看| 国产欧美精品xxxx另类| 国产精品二三区| 91麻豆一区二区| 台湾佬中文娱乐网欧美电影| 新天天拍日日拍狠狠拍| 国产乱叫456在线| 中文字幕亚洲在| 少妇高潮一69aⅹ| 亚洲福利av在线| 人妻体内射精一区二区| 久草视频免费在线播放| jizzjizz韩国| 美女翘臀白浆直流视频| 96av在线| 午夜一级黄色片| 欧美精品aaa| 草色在线视频| 婷婷丁香一区二区三区| 粉嫩av一区二区三区免费观看| 国产精品丝袜xxxxxxx| 中文字幕最新精品| 美女又爽又黄免费动漫| 国际av在线| 北条麻妃一区二区三区在线| 狠狠色噜噜狠狠| 桃乃木香奈和黑人aⅴ在线播放| 一区二区三区黄色片| 中文字幕综合在线观看| 性欧美xxxx免费岛国不卡电影| 欧美中文字幕在线播放| 亚洲区 欧美区| 亚洲激情av在线| 国产亚洲精久久久久久| 在线不卡一区二区| 久热这里只精品99re8久| 丰满岳乱妇一区二区三区| 在线丝袜欧美日韩制服| 欧美国产激情一区二区三区蜜月| 黄页免费在线观看视频| 成人免费视频在线观看超级碰| 一级视频在线免费观看| 91这里只有精品| 国产欧美精品aaaaaa片| 欧美唯美清纯偷拍| 国产精品成人一区二区不卡| 99精品久久免费看蜜臀剧情介绍| 日本国产一区| 国产人成精品一区二区三| 国产sm调教视频| 午夜成人免费电影| 午夜精品一区二区三区电影天堂| 欧美一区二区中文字幕| 人妻一区二区三区四区| 春色校园综合激情亚洲| 亚洲成人av电影在线| 久久新电视剧免费观看| www.cao超碰| 天天av天天操| 中国人体摄影一区二区三区| 亚洲一区3d动漫同人无遮挡| 污视频网站在线看| 色午夜这里只有精品| 国产对白叫床清晰在线播放| 国产精品最新乱视频二区| 精品国产伦一区二区三区观看方式| 国内外成人免费激情在线视频| 澳门精品久久国产| 国产一级大片在线观看| 日韩综合久久| 丁香桃色午夜亚洲一区二区三区| 在线观看欧美视频| 日韩欧美国产中文字幕| 日韩视频免费在线| av手机天堂网| 欧美一区二区国产| 黄色免费高清视频| www.com毛片| 66m—66摸成人免费视频| 国产69精品久久777的优势| 密臀av一区二区三区| 亚洲另类在线视频| 毛片女人与拘交视频| 精品视频99| 色综合久久久久| 一区二区三区在线免费观看| 免费看精品久久片| 天天爽人人爽夜夜爽| 午夜电影一区二区| 黄色免费在线观看| 欧美午夜寂寞影院| 亚洲图色中文字幕| 亚洲高清在线免费| 欧美激情在线视频二区| 久久久久国产精品麻豆ai换脸| 精品国产亚洲一区二区在线观看| 国产中文字幕一区| 黑人一级大毛片| 91精品久久久| 欧美日本高清视频| 久艹在线视频| av激情在线| 亚洲成人精品一区| av大片在线| 高清电影在线观看免费| 欧美日韩国产电影| 在线播放日韩专区| 影音先锋男人资源在线观看| 国产精品福利小视频| 影音先锋男人资源站在线观看| 欧美一级淫片aaaaaaa视频| 少妇伦子伦精品无吗| 欧美两根一起进3p做受视频| 久久精品国产亚洲av久| 中国日韩欧美久久久久久久久| 欧美另类色图| 久久精品国产一区二区三区日韩| www.色综合.com| 免费欧美在线视频| 美国av一区二区| 亚洲成a人片777777久久| 一区二区三区视频国产日韩| 欧美日韩精品一区视频| 欧美三级网址| av色男福利网| 精品久久久亚洲| 性欧美1819sex性高清大胸| 欧美激情第1页| 亚洲精品白虎| www国产91| a级黄色免费视频| 成人性生交大片免费看视频r| 欧美日韩中文字幕日韩欧美| 国产91精品一区| 午夜视频在线观看免费视频| 99久久国产综合精品成人影院| 影音先锋中文一区| mm1313亚洲国产精品无码试看| 国产三级视频| 国产 国语对白 露脸| 中文字幕在线观看网站| 午夜激情av在线| 2017亚洲天堂| 亚洲一区二区在线视频| 亚洲精品日韩av| 四虎亚洲成人| 欧美在线免费观看| 久久久久成人精品免费播放动漫| 日韩中出av| 国产免费一区二区三区视频| 懂色av蜜臀av粉嫩av分享吧最新章节| 蜜桃传媒视频第一区入口在线看| 特种兵之深入敌后| 国产精品成人在线视频| 久久久久综合一区二区三区| 国产精品午夜一区二区| 伊人狠狠色丁香综合尤物| 色yeye免费人成网站在线观看| 久久精品—区二区三区舞蹈| 国外成人在线视频| sm性调教片在线观看| 久久av中文字幕片| 亚洲国产欧美在线观看| 欧美做爰猛烈大尺度视频| 97av在线播放| 欧美天天在线| 国产精品一二三区在线观看| 国产jzjzjz丝袜老师水多| 国产精品一 二 三| 狠狠热免费视频| 日本少妇吞精囗交| 国产女人免费看a级丨片| 久久免费国产精品| 日本中文字幕一级片| 99成人在线视频| 最近中文字幕2019第二页视频| 美女网站视频在线观看| 欧美日韩国产区一| 亚洲一区二区三区四区五区午夜| 国产成人精品免费看视频| 中文字幕亚洲情99在线| 欧洲午夜精品久久久| 91免费在线播放视频| 成人免费视频一区| 日本成人免费在线观看|