国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

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

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

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


解析css樣式文件

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

//讀取文件
fileinfo thesource= new fileinfo (@m_filepath);
streamreader reader = thesource.opentext();
//將文件流轉化為文本
m_csstext = reader.readtoend();
reader.close();
//定義css文本分割符
char[] delimiters = new char[] { '{','}'};
int icheck = 1;
string classname = null;
//將文本轉化為arraylist
foreach ( string substring in m_csstext.split(delimiters))
{
if (icheck%2==0)
//當icheck為偶數(shù)時,字符串為樣式屬性內容
//將解析的樣式名和屬性作為classitem對象存入csslist
csslist.add( new classitem ( classname, substring.trim() ) );
else
//當icheck為奇數(shù)時,字符串為樣式名,暫存
classname = substring.trim();
icheck++;
}




交互界面構建

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

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


//loadxml是xml文件讀取函數(shù)
var dom = loadxml("css.xml");
//通過xpath和selectnodes方法返回一個xmldomnodelist對象
var onode = dom.selectnodes("//category/name");
//獲取該對象長度,即xml文檔中該路徑節(jié)點的數(shù)量
var intcategory = onodes.length;
for (i=0; i<intcategory; i++)
{
//獲取集合中的節(jié)點
onode = onodes.nextnode;
if (onode != null)
{
//樣式分類界面構建代碼-略
……
}
}




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


function buildinput ( path )
{
var str="";
var anode=null;
var attvalue=null;
//通過selectsinglenode返回符合條件的第一個節(jié)點
var actnode = dom.selectsinglenode(path+"actiontype");
var namenode = dom.selectsinglenode(path+"cssname");
//如果屬性為選擇輸入,則讀取selectitems,并構建select控件
if (actnode.text=="select")
{
str += "<select id='"+namenode.text+"' name='"+namenode.text+"' class='eselect'>/n";

//查詢該項的所有選擇列表項
var itemsnodes = dom.selectnodes (path+"selectitems/item");
str += "<option value='-1'>未設置</option>/n";
for (ii=0;ii<itemsnodes.length;ii++)
{
anode = dom.selectsinglenode (path+"selectitems/item["+ii+"]");

//如果該項含有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

//如果屬性為其他模式,則構建input輸入,設置class屬性為actiontype
{
str = "<input name='"+namenode.text+"' id='"+namenode.text+"' class='"+actnode.text+"'>/n";
}

return(str);
}





設計器初始化

js腳本讀取解析樣式元素的style屬性值,然后為設計器中構建的控件賦值


//設計器初始化
function init()
{
//獲得由服務器端賦值的樣式屬性值
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))
{
//當i為奇數(shù)時,解析的字符串應該為樣式屬性名稱
strclassname=str;
}
else
{
//當i為偶數(shù)時,獲得屬性值
//屬性名稱即控件id
//判斷該屬性對應的控件是輸入框還是選擇列表
if(document.all(strclassname).type=="select-one")
{

//如果是選擇列表通過setindexofvalue函數(shù)設定選擇項
setindexofvalue(strclassname,str);

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





界面交互

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


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




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


<public:attach event="onfocus" onevent="getshow()"/>
<public:method name="getchange"/>
<script language="jscript">
function getshow()
{
element.blur();

//記錄當前交互控件的id
effelement=element.id;
//在頁面中加載輸入控件
showcontrol ("selectcolor");
}

function getchange()
{
//當值發(fā)生變化時,對可視化樣式元素賦值
setattribute(element.id,element.value);
}
</script>






其他

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

另外還需要注意的是,xml文檔是可以自行擴展或縮減的,但是在實際應用中,不能完全依據(jù)css標準來定義,因為可視化元素的style屬性會自動格式化。例如如果你在xml中定義border-bottom-width屬性,在將值取出時會自動格式化為border-bottom,這樣會造成設計器中控件不能匹配。我在msdn沒有查到相關文檔,所以只有經(jīng)過實際測試來驗證。


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


參考

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

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

藍色理想的htc教程
網(wǎng)上也沒看見比較全面的講述,這個簡單易學,基本概念清楚了。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
成年黄网站在线观看免费| 国产福利在线播放麻豆| 毛片视频免费观看| 色悠久久久久综合网小说| av大片在线播放| 综合激情亚洲| 136福利第一导航国产在线| 精品国内自产拍在线视频| 精品推荐蜜桃传媒| 日本不卡1区2区3区| 久久久久国产精品嫩草影院| 国产天堂资源| 四虎中文字幕| 中文字幕在线影视资源| 中文av在线播放| 九色在线网站| 91在线看片| 国产美女在线观看| 尤物视频在线观看视频| 欧美午夜电影一区二区三区| 日本啊v在线| 国产一区二区三区不卡免费观看| 96精品视频| 国产字幕在线看| a√在线视频| 午夜国产福利在线| а√资源新版在线天堂| 国产黄色免费在线观看| 99视频免费| 青草av在线| 99久久99热久久精品免费看| 国产原创av在线| 亚洲精品自拍区在线观看| 国产写真视频在线观看| 超碰在线97国产| 国产精品被窝福利一区| 九九热在线视频| 四虎国产精品永久地址998| 国产精品jvid在线观看| 国产精品亚洲第五区在线| 人人澡人人爽| 亚洲成人av高清| av亚洲男人天堂| 在线激情小视频| 亚洲成人在线播放| av在线免费观看网| xxx国产精品| www.狠狠| 九九在线免费视频| 天堂在线免费视频| 91超碰国产在线| 午夜视频在线| 国产精品扒开做爽爽爽的视频| 国产精品剧情一区二区在线观看| 国产区在线观看| 国产啊啊啊视频在线观看| 精品视频二区三区| 亚洲精品手机在线| a视频在线观看| 国产免费永久在线观看| 国产精品入口麻豆电影| av一级在线| 九七电影韩国女主播在线观看| 蜜桃av在线免费观看| 国产美女视频一区二区三区| 国产精品天堂| 国产成人亚洲欧美电影| www.91在线播放| 国产一卡2卡3卡免费网站| 一本久久精品| 国产卡1卡2卡三卡在线| 在线观看午夜av| 午夜免费福利在线观看| jizz一区二区三区| 国产激情在线视频| 九色视频网站| 中文视频在线| 国产卡二和卡三的视频| 在线观看免费观看在线91| 狠狠狠综合7777久夜色撩人| 国产二区视频| 九七电影韩国女主播在线观看| 国产成a人亚洲精v品| 国内精品一区视频| gogo在线高清视频| 99免费视频| 国产黄色在线观看| 五月婷婷在线观看| 免费在线黄色网址| 午夜影院在线免费观看| 国产成人天天5g影院| 国产日本在线视频| 国产精品外围在线观看| 欧美日韩综合高清一区二区| 99爱视频在线观看| 国产经典三级在线| 国产天堂资源| 国产探花视频在线观看| 国产女王在线**视频 | jizz在线视频| 精品极品三级久久久久| 午夜视频99| 国产美女性感在线观看懂色av| www.国产精| 亚洲第一成年免费网站| 伊人影院在线视频| 在线播放www| 亚洲人在线播放| 在线免费看av| 亚洲综合天堂网| 在线视频观看亚洲| 四虎中文字幕| 九九热在线视频观看| 国产在线高清理伦片a| 国产久草在线| 国产精品美女一区二区三区四区| 中文字幕中文字幕在线中高清免费版| 国产在线超碰| 国产精品视频福利一区二区| 国产二级c片l毛片| 午夜影院免费看| 九九热视频在线| 国产一级性片| 在线国产中文字幕| 嫩草在线播放| 国产成人夜间影院在线观看| 亚洲欧美精品日韩欧美| 久久久久国产精品嫩草影院| 最新亚洲精品国自产在线观看| 精品一区二区在线欧美| 免费三级毛片| 国产日本视频| 牛牛热在线视频| 国产激情自拍| 老师我好爽再深一点的视频| 91麻豆免费在线视频| 久久一本精品| 在线黄色.com| 国产一区二区三区福利| 日本一卡二卡四卡精品| 国产福利热线视频| 国产自产视频| 亚洲欧美久久婷婷爱综合一区天堂| 成人精品一区二区三区免费| 亚洲欧美精选| 91免费日韩| 中文字幕网在线| yjizz视频网站在线播放| 国产xxx在线| 国产探花在线观看| 最近中文字幕在线中文视频| 日本在线视频www鲁啊鲁| 国产精品欧美韩国日本久久| 国产农村av| 非洲黑人最猛性xxxx交| 男人天堂v视频| 欧美啪啪精品| eeuss影院网站免费观看| 在线观看电影av| 中文在线视频观看| 69国产精品视频| 中文字幕乱在线伦视频乱在线伦视频| www.狠狠插| 日本高清中文字幕在线| 三级小说一区| www免费在线观看视频| jizz亚洲大全| 欧美婷婷久久五月精品三区| 青娱乐在线视频观看| 青青草视频在线免费观看| xxxxx中文字幕| 久久久久久久久免费视频| 九九在线视频| 日本中文字幕视频| 97视频免费| 日本亚洲精品| 青青青国产视频| 国产女王在线**视频| 日本一二区视频| 久草国产视频| 国产精品冒白浆免费视频| 一色桃子av在线| 国产在线观看色| 国产高潮av| 美女被人操视频在线观看| 中文字幕在线观看日本| 国产成人精品综合网站| 日韩不卡高清| 中文字幕在线资源| 亚洲欧洲成人| 最新av免费看| 亚洲综合在线不卡| 久草一本av| 精品成人一区二区三区免费视频| www网站在线观看| 国产天堂在线| 看成年女人免费午夜视频| 国产精品178页| 国产原创精品视频| av在线不卡网站|