首页建站经验 理解表现和结构相分离

理解表现和结构相分离

对于初学者,我们常看见web标准的好处之一是“能做到表现和结构相分离”,那这到底是什么意思呢?我将以一个实际的例子来详细说明。首先我们必须先明白一些基本的概念:内容、结构…

对于初学者,我们常看见web标准的好处之一是“能做到表现和结构相分离”,那这到底是什么意思呢?我将以一个实际的例子来详细说明。首先我们必须先明白一些基本的概念:内容、结构、表现和行为。

1.内容

内容就是页面实际要传达的真正信息,包含数据、文档或者图片等。注意这里强调的“真正”,是指纯粹的数据信息本身。比如一个不包含辅助的信息,比如导航菜单、装饰性图片等。举个例子,有下面一段文本是我们页面要表现的信息。

忆江南(1)唐.白居易江南好,风景旧曾谙。(2)日出江花红胜火,春来江水绿如蓝,(3)能不忆江南。作者介绍772-846 ,字乐天,太原(今属山西)人。唐德宗朝进士,元和三年(808)拜左拾遗,后贬江州(今属江西)司马,移忠州(今属四川)刺史,又为苏州(今属江苏)、同州(今属陕西大荔)刺史。晚居洛阳,自号醉吟先生、香山居士。其诗政治倾向鲜明,重讽喻,尚坦易,为中唐大家。也是早期词人中的佼佼者,所作对后世影响甚大。注释(1)据《乐府杂录》,此词又名《谢秋娘》,系唐李德裕为亡姬谢秋娘作。又名《望江南》、《梦江南》等。分单调、双调两体。单调二十七字,双凋五十四字,皆平韵。(2)谙(音安):熟悉。(3)蓝:蓝草,其叶可制青绿染料。品评此词写江南春色,首句“江南好”,以一个既浅切又圆活的“好”字,摄尽江南春色的种种佳处,而作者的赞颂之意与向往之情也尽寓其中。同时,唯因“好”之已甚,方能“忆”之不休,因此,此句又已暗逗结句“能不忆江南”,并与之相关阖。次句“风景旧曾谙”,点明江南风景之“好”,并非得之传闻,而是作者出牧杭州时的亲身体验与亲身感受。这就既落实了“好”字,又照应了“忆”字,不失为勾通一篇意脉的精彩笔墨。三、四两句对江南之“好”进  行形象化的演绎,突出渲染江花、江水红绿相映的明艳色彩,给人以光彩夺目的强烈印象。其中,既有同色间的相互烘托,又有异色间的相互映衬,充分显示了作者善于著色的技巧。篇末,以“能不忆江南”收束全词,既托出身在洛阳的作者对江南春色的无限赞叹与怀念,又造成一种悠远而又深长的韵味,把读者带入余情摇漾的境界中。

2.结构(Structure)

可以看到上面的文本信息本身已经完整。但是混乱一团,难以阅读和理解,我们必须给它格式化一下。把它分成标题、作者、章、节、段落和列表等。

标题

忆江南(1)
作者 唐.白居易
正文
江南好,风景旧曾谙。(2)
日出江花红胜火,春来江水绿如蓝,(3)
能不忆江南。
节1作者介绍
772-846 ,字乐天,太原(今属山西)人。唐德宗朝进士,元和三年(808)拜左拾遗,后贬江州(今属江西)司马,移忠州(今属四川)刺史,又为苏州(今属江苏)、同州(今属陕西大荔)刺史。晚居洛阳,自号醉吟先生、香山居士。其诗政治倾向鲜明,重讽喻,尚坦易,为中唐大家。也是早期词人中的佼佼者,所作对后世影响甚大。
节2注释
列表
(1)据《乐府杂录》,此词又名《谢秋娘》,系唐李德裕为亡姬谢秋娘作。又名《望江南》、《梦江南》等。分单调、双调两体。单调二十七字,双凋五十四字,皆平韵。
(2)谙(音安):熟悉。
(3)蓝:蓝草,其叶可制青绿染料。
节3品评
此词写江南春色,首句“江南好”,以一个既浅切又圆活的“好”字,摄尽江南春色的种种佳处,而作者的赞颂之意与向往之情也尽寓其中。同时,唯因“好”之已甚,方能“忆”之不休,因此,此句又已暗逗结句“能不忆江南”,并与之相关阖。次句“风景旧曾谙”,点明江南风景之“好”,并非得之传闻,而是作者出牧杭州时的亲身体验与亲身感受。这就既落实了“好”字,又照应了“忆”字,不失为勾通一篇意脉的精彩笔墨。三、四两句对江南之“好”进  行形象化的演绎,突出渲染江花、江水红绿相映的明艳色彩,给人以光彩夺目的强烈印象。其中,既有同色间的相互烘托,又有异色间的相互映衬,充分显示了作者善于著色的技巧。篇末,以“能不忆江南”收束全词,既托出身在洛阳的作者对江南春色的无限赞叹与怀念,又造成一种悠远而又深长的韵味,把读者带入余情摇漾的境界中。

类似上面标题、作者、章、节、段落和列表,我们就把它称做结构。结构使内容更加具有逻辑性,易用性。

2.表现(Presentation)

虽然定义了结构,但是内容还是原来的样式没有改变,例如标题字体没有变大,正文的颜色也没有变化,没有背景,没有修饰。所有这些用来改变内容外观的东西,我们称之为“表现”。下面是对上面文本用表现处理过后的效果:

忆江南(1)
唐.白居易
江南好,风景旧曾谙。(2)
日出江花红胜火,春来江水绿如蓝,(3)
能不忆江南。
作者介绍

772-846 ,字乐天,太原(今属山西)人。唐德宗朝进士,元和三年(808)拜左拾遗,后贬江州(今属江西)司马,移忠州(今属四川)刺史,又为苏州(今属江苏)、同州(今属陕西大荔)刺史。晚居洛阳,自号醉吟先生、香山居士。其诗政治倾向鲜明,重讽喻,尚坦易,为中唐大家。也是早期词人中的佼佼者,所作对后世影响甚大。

注释
  • (1)据《乐府杂录》,此词又名《谢秋娘》,系唐李德裕为亡姬谢秋娘作。又名《望江南》、《梦江南》等。分单调、双调两体。单调二十七字,双凋五十四字,皆平韵。
  • (2)谙(音安):熟悉。
  • (3)蓝:蓝草,其叶可制青绿染料。
品评

此词写江南春色,首句“江南好”,以一个既浅切又圆活的“好”字,摄尽江南春色的种种佳处,而作者的赞颂之意与向往之情也尽寓其中。同时,唯因“好”之已甚,方能“忆”之不休,因此,此句又已暗逗结句“能不忆江南”,并与之相关阖。次句“风景旧曾谙”,点明江南风景之“好”,并非得之传闻,而是作者出牧杭州时的亲身体验与亲身感受。这就既落实了“好”字,又照应了“忆”字,不失为勾通一篇意脉的精彩笔墨。三、四两句对江南之“好”进  行形象化的演绎,突出渲染江花、江水红绿相映的明艳色彩,给人以光彩夺目的强烈印象。其中,既有同色间的相互烘托,又有异色间的相互映衬,充分显示了作者善于著色的技巧。篇末,以“能不忆江南”收束全词,既托出身在洛阳的作者对江南春色的无限赞叹与怀念,又造成一种悠远而又深长的韵味,把读者带入余情摇漾的境界中。

噢,很明显,我们加了2种背景,将标题字体变大并居中,将小标题加粗并变成红色,等等等等。所有这些,都是“表现”的作用。它使你的内容看上去漂亮、可爱多了!形象一点的比喻:内容是模特,结构标明头和四肢等各个部位,表现则是服装,将模特打扮得漂漂亮亮。(请原谅我用模特打比方,很多时候模特比web标准更具有吸引力。)

那么行为是什么?

3.行为(Behavior)

行为就是对内容的交互及操作效果。例如,我们最熟悉不过的javascript。使用javascript我们可以使内容动起来,可以判断一些表单提交,可以相应你的一些操作。这个我就不再举例子了。

所有HTML和XHTML页面就是由“结构、表现和行为”这三方面组成的。抽象一点理解,内容是基础层,然后是附加上去结构层和表现层,作后再对它们做点“行为”,示意草图如下:

标识语言3组成部分示意图

4.传统的HTML方法

传统的HTML3.2/4.0标签里既有控制结构的标签,例如,<p>,又有控制表现的标签,例如<font>,<b>,还有本意用于结构后来被滥用于控制表现的标签,例如:<h1>,<table>等。结构标签与表现标签混杂在一起。</P><P>例如上面举例的页面,你可能很熟练的2-5个表格来控制边框、背景和文本居中;用<h2><h3>来定义标题和小节标题;用<font>和<b>来控制字体大小、颜色和粗体。轻而易举地就能制作好页面。聪明些的设计师还采用CSS样式表来统一控制一些字体的表现。下面的代码是我们最熟悉不过的了:</P><SPAN class=code><table border="0" width="100%"><tr><td align="center"><h1><font color="#C61C18">忆江南</font></h1></td></tr></table></SPAN> <P>传统的方法看上去并没有什么问题。(我们已经很习惯了,从来没有想过会有什么问题。)但是既然W3C放弃HTML,推荐XHTML和XML就一定有它的道理和原因,问题出在哪里?</P><P>问题就出在结构层和表现层混杂在一起!当我们只发布一些简单页面,没什么影响。当我们发布了大量页面,问题就来了。</P><P>第一个问题是:如何改版。假如由于某些原因我们需要把背景替换成黑色,边框变成1px黄色,文字变成白色,所有文字居中。你可能就要一页一页的修改。好,你说你用了CSS,那么恭喜你,你可以直接修改样式表,轻松实现这样简单的改版。(复杂改版暂且不提。)</P><P>第二个问题是:数据的利用。本质上讲所有页面信息都是数据。当我发布了唐诗300首,宋词100首,就是一个可观的数据库,这个应该不难理解。那么好,是数据就存在数据查询,处理和交换的问题。假如我所有的页面上都不需要显示“品评”这一小节;假如我要将页面数据转成excel格式;假如我要打印一个干净内容的页面(不要背景、导航、版权等不相干信息)怎么办?传统的解决方法是:一页一页删除“品评”小节;一页一页地拷贝粘贴到excel,一页一页地制作"打印友好页"。这样做显然不是有效率的办法。</P><P>实际上,第一个问题实质是批量改变"表现"。由于传统HTML方法的结构并不明显,甚至可以视作只有表现,我们就象设计时尚杂志那样精心画出每一页。严谨的设计师可以控制到每1px的细节。内容与表格紧密的嵌套、混杂在一起,结构只是用表现来表现出来,而不是用标签。这种设计方法下,任何内容的变化,结构的变化都会影响整个页面的表现,都需要一点一点细节的修改。CSS的出现,一开始似乎就是用来解决"批量改表现"的问题。大部分的网页设计师已经能够熟练使用CSS来控制字体的大小颜色,超链接的效果,表格的边框等等,已经体会到CSS批量改变表现的效率。</P><P>第二个问题则是无法避免。由于结构和表现混杂在一起(内容被n层的表格拆分),你无法判断哪个td里面到那个td是你需要的数据,无法剥离其中夹杂的<font><b>的标签。上例中,从哪里开始是正文?哪里开始是“品评”小节?哪些是附加信息不需要打印?我们都无法让电脑自己去判断,唯一的方法是人工判断,手工处理。结构和表现混杂在一起,页面就好比是一张图片,你无法让电脑搜索其中的文字。(哦,我听见有人说:我的站点有全文检索啊。恩,我想说的是,第一,这样的检索效率非常低,你需要滤过整个内容,匹配到你的"检索关键字",例如,我要查找作者李白,搜索引擎会检索页面所有文字才能告诉你这页里面含有"李白",而且不一定出现在作者上。第二,这样的检索对数据处理和交换毫无用处。例如我要将所有作者李白的诗摘出来,我要给所有作者增加一个肖像图片,这样的搜索毫无帮助。)</P><P>对于第二个问题,要如何解决呢?解决的办法就是:结构清晰化,将内容、结构与表现相分离。</P><H3>5.web标准推荐的方法</H3><P>对于内容、结构与表现相分离,最早是在软件开发架构理论中提出来的。QQ用过吧,QQ面板的变更皮肤就是内容不变,外观表现在变化;还有winamp的skin也是这种原理的典型体现。其实我们大多数的设计师已经在实践中都接触到。我们的动态信息发布系统,实际上就是基于这个原理制作的,设计师只需要设计模版,程序员将数据(标题、作者、发布日期、摘要、相关文章、相关图片等等)从数据库中读出,嵌入你的模板,形成一个新的页面再展示给浏览者。其中的内容已经被结构化后分别保存在数据库的不同字段中。例如查找作者,我们只要在作者字段中搜索,这样的效率就提高很多了。</P><P>上面都是有赖于程序,如果页面文档本身就能实现表现和结构相分离,那么数据的交换和再利用不就更方便了。嘿嘿,其实XML就是奔着这个方向去的,XML允许你自己定制结构标识,还提供了XSLT用来格式化、查询和处理文档内容。例如上面的诗词页面,用XML写出来的代码就象这样:</P><SPAN class=code><标题>忆江南</标题><BR><作者>唐.白居易</作者><BR><正文>江南好...</正文><BR><作者介绍>772-846 ,字乐天...</作者介绍><BR><注释>据《乐府杂录》...</注释><BR><品评>此词写江南春色...</品评></SPAN> <P>这些<标题><作者>都是自己定义的标签,这样文档结构非常清晰,查询和处理也很简单。啊哦,说远了。还是回到目前能应用的web标准方法上。</P><P>web标准方法目前推荐大家使用XHTML+CSS来制作网站。目标是使结构与表现彻底相分离。</P><P>就是说,<STRONG>XHTML的标签只用来定义文档的结构</STRONG>,所有涉及表现的东西通通剥离出来,把它放到一个单独的文件里,这个单独的文件就是CSS。(CSS的好处上面已经讲到,可以批量处理表现)。采用这种方法后,上面的第二个问题中的3个假设困难就迎刃而解。我们可以利用样式表将所有"品评"结构不显示(DISPLAY: none);我们可以根据页面结构标签将内容自动导入到excel;我们可以设计一个专门的打印样式表,隐藏掉所有附加的信息,只打印干净的内容。就这么简单。</P><P>现在你明白了吧,为什么我们反对用表格设计布局。原因是<table>用于布局的时候,它是一个控制表现的标签。混杂在内容和结构中,使我们的内容数据无法再利用。结构与表现相分离带来的好处主要有:</P><UL><LI>1.数据的多样显示。通过不同的样式表适应不同的设备,做到内容与设备无关 <LI>2.保持整个站点的视觉一致性变得非常简单,修改样式表就可以轻松改版; <LI>3.由于结构清晰,数据的集成、更新和处理更加方便灵活; <LI>4.更有意义的搜索。 </LI></UL><P>好了,说到这,关于表现与结构相分离的概念,您是否有一点理解?如果还是模模糊糊,也不要紧,自己实际制作体验一把,在实践中逐步领会。学习web标准需要循序渐进,阿捷和您一样,也在努力学习中。</P><P>要一个符合web标准的实际例子?查看本页原代码,讲"表现"概念的那个例子就是用CSS+DIV实现的。样式表的内容直接在本页head区,没有另外单独调用,便于你的查看:)</P> </SPAN> </div> <nav class="navigation pagination" aria-label="文章" style="display: block;padding: 0px;border: 0px;"> <h2 class="screen-reader-text">文章导航</h2> <div class="nav-links"></div> </nav> <div class="single-credit"> 本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: <a href="https://www.1cn.cc/jianzhan/jingyan/10450.html">https://www.1cn.cc/jianzhan/jingyan/10450.html</a></div> <div class="entry-footer clear"> <div id="myModal" class="modal"> <div class="modal-content clear"> <h3>给这篇文章的作者打赏</h3> <div class="ht_grid_1_2_custom"> <img src="https://www.1cn.cc/skin/ecms312/images/weixin-code.png" alt="微信扫一扫打赏"/> 微信扫一扫打赏</div> <div class="ht_grid_1_2_custom"> <img src="https://www.1cn.cc/skin/ecms312/images/alipay-code.png" alt="微信扫一扫打赏"/> 支付宝扫一扫打赏</div> <span class="close">×</span></div> </div> <div class="entry-footer-right"> <span class="entry-sponsor"> <span id="myBtn"><i class="fa fa-jpy"></i> 打赏</span> </span> <span class="entry-like"> <span class="sl-wrapper"><a href="JavaScript:makeRequest('https://www.1cn.cc/e/public/digg/?classid=34&id=10450&dotop=1&doajax=1&ajaxarea=diggnum','EchoReturnedText','GET','');" class="sl-button sl-button-87" title="点赞这篇文章"><span class="sl-count" id="diggnum"><i class="fa fa-thumbs-o-up"></i> <script src=https://www.1cn.cc/e/public/ViewClick/?classid=34&id=10450&down=5></script><em>赞</em></span></a><span class="sl-loader"></span></span> </span></div> </div> <div class="entry-bottom clear"> <div class="entry-tags"> <span class="tag-links"><span>标签:</span></span></div> <span class="custom-share"> <span class="social-share" data-sites="wechat, weibo, qq, qzone"></span> </span></div> </article> <div id="zhutibaba-ad-13" class="single-bottom-ad widget_ad ad-widget"> <div class="adwidget"><div class="pcd_ad"><script src=https://www.1cn.cc/d/js/acmsd/thea16.js></script></div><div class="mbd_ad"><a href='https://www.1cn.cc/e/public/ClickAd?adid=17' target=_blank><img src='/d/file/2022/03-28/de6866d1e77780db6e0337db1bcfe8ac.png' border=0 width='468' height='60' alt=''></a></div></div> </div> <div class="post-nav clear"> <div class="post-nav-previous"><i class="fa fa-angle-left"></i> 上一篇<a href='https://www.1cn.cc/jianzhan/jingyan/10449.html'>Alexa世界网站排名详细研究(二)</a></div> <div class="post-nav-next">下一篇 <i class="fa fa-angle-right"></i><a href='https://www.1cn.cc/jianzhan/jingyan/10451.html'>怎样利用自助建站平台进行网站制作?</a></div> </div> <div class="author-box clear"> <img alt="admin" src="https://www.1cn.cc/skin/ecms312/images/avatar.jpg" class="avatar avatar-120 photo" height="120" width="120" /> <div class="author-meta"> <h4 class="author-name">作者: <span class="hover-underline"><a target="_blank" href="https://www.1cn.cc/">admin</a></span></h4> <div class="author-desc"> 这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!</div> </div> </div> <div class="entry-related clear"> <h3 class="section-title">为您推荐</h3> <div class="related-loop clear"> </div> </div> <div id="comments" class="comments-area"> <div id="respond" class="comment-respond"></div> <script src="https://www.1cn.cc/e/extend/infocomment/commentfrom.php?classid=34&id=10450&titleurl=https://www.1cn.cc/jianzhan/jingyan/10450.html"></script> <h3 class="comments-title"> 评论列表(<i id="infocommentnumarea"></i>)</h3> <ol class="comment-list" id="infocommentarea"></ol> <script src="https://www.1cn.cc/e/extend/infocomment/commentajax.php?classid=34&id=10450"></script> </div> </main> </div> <aside id="secondary" class="widget-area sidebar"> <div class="widget widget_ad ad-widget"> <div class="adwidget"><script src="https://www.1cn.cc/d/js/acmsd/thea11.js"></script></div> <h2 class="widget-title">广告</h2> </div> <div id="damenhu-views-2" class="widget widget-damenhu-views widget_posts_thumbnail"> <h2 class="widget-title">浏览最多的文章</h2> <ul> <li class="clear"><a href="https://www.1cn.cc/jianzhan/jingyan/39015.html" rel="bookmark"> <div class="thumbnail-wrap"><img width="300" height="150" src="https://www.1cn.cc/e/extend/timthumb.php?src=/d/file/2022/08-15/732d15f6dd1d47f7b5d9fc4fe2c81ff3.png&w=300&h=150&zc=1" class="attachment-widget_thumb size-widget_thumb wp-post-image" alt="小程序搭建对接教程" loading="eager" /></div> </a> <div class="entry-wrap"><a href="https://www.1cn.cc/jianzhan/jingyan/39015.html" rel="bookmark">小程序搭建对接教程</a></div> </li> <li class="post-list"><span>1</span><a href="https://www.1cn.cc/jianzhan/jingyan/39016.html" rel="bookmark">去水印小程序用户隐私保护指引设置教程</a></li> <li class="post-list"><span>2</span><a href="https://www.1cn.cc/jianzhan/jingyan/39017.html" rel="bookmark">小程序服务器域名request合法域名和downloadFile合法域名填写教程</a></li> <li class="post-list"><span>3</span><a href="https://www.1cn.cc/jianzhan/jingyan/786.html" rel="bookmark">企业和个人网站公安备案流程超详细图文讲解</a></li> <li class="post-list"><span>4</span><a href="https://www.1cn.cc/jianzhan/jingyan/39014.html" rel="bookmark">微信小程序注册教程【详细图文教程】</a></li> <li class="post-list"><span>5</span><a href="https://www.1cn.cc/jianzhan/jingyan/39023.html" rel="bookmark">帝国源码登陆后台时,弹出Cann't connect to DB!</a></li> </ul> </div> <div class="widget widget_ad ad-widget"> <div class="adwidget"><script src="https://www.1cn.cc/d/js/acmsd/thea12.js"></script></div> <h2 class="widget-title">广告</h2> </div> <div id="damenhu-popular-2" class="widget widget-damenhu-popular widget_posts_thumbnail"> <h2 class="widget-title">评论最多的文章</h2> <ul> <li class="clear"><a href="https://www.1cn.cc/jianzhan/jingyan/38979.html" rel="bookmark"> <div class="thumbnail-wrap"><img width="300" height="150" src="https://www.1cn.cc/e/extend/timthumb.php?src=/d/file/2022/07-14/050a136f1528e0b63d51626ec13ce374.png&w=300&h=150&zc=1" class="attachment-widget_thumb size-widget_thumb wp-post-image" alt="网站没有备案会被收录吗?" loading="eager" /></div> </a> <div class="entry-wrap"><a href="https://www.1cn.cc/jianzhan/jingyan/38979.html" rel="bookmark">网站没有备案会被收录吗?</a></div> </li> <li class="post-list"><span>1</span><a href="https://www.1cn.cc/jianzhan/jingyan/371.html" rel="bookmark">淘宝:960 时代的终结</a></li> <li class="post-list"><span>2</span><a href="https://www.1cn.cc/jianzhan/jingyan/770.html" rel="bookmark">360蜘蛛IP列表(可通过ctrl+F进行查找)</a></li> <li class="post-list"><span>3</span><a href="https://www.1cn.cc/jianzhan/jingyan/933.html" rel="bookmark">网站使用“微软雅黑”字体也会涉及版权问题</a></li> <li class="post-list"><span>4</span><a href="https://www.1cn.cc/jianzhan/jingyan/370.html" rel="bookmark">使用xampp搭建运行php虚拟主机的详细步骤</a></li> <li class="post-list"><span>5</span><a href="https://www.1cn.cc/jianzhan/jingyan/369.html" rel="bookmark">基于PHP安装zip拓展,以及libzip安装的问题</a></li> </ul> </div> <div class="widget widget_ad ad-widget"> <div class="adwidget"><script src="https://www.1cn.cc/d/js/acmsd/thea13.js"></script></div> <h2 class="widget-title">广告</h2> </div> <div id="tag_cloud-1" class="widget widget_tag_cloud"> <h2 class="widget-title">标签</h2> <div class="tagcloud"> <a href="/tag/SEO.html" class="tag-cloud-link" title="SEO (6013个项目)">SEO</a> <a href="/tag/jiaocheng.html" class="tag-cloud-link" title="教程 (2364个项目)">教程</a> <a href="/tag/fuwuqi.html" class="tag-cloud-link" title="服务器 (1863个项目)">服务器</a> <a href="/tag/xitong.html" class="tag-cloud-link" title="系统 (1150个项目)">系统</a> <a href="/tag/shezhi.html" class="tag-cloud-link" title="设置 (1105个项目)">设置</a> <a href="/tag/lianjie.html" class="tag-cloud-link" title="链接 (962个项目)">链接</a> <a href="/tag/qiye.html" class="tag-cloud-link" title="企业 (933个项目)">企业</a> <a href="/tag/wenjian.html" class="tag-cloud-link" title="文件 (856个项目)">文件</a> <a href="/tag/diguo.html" class="tag-cloud-link" title="帝国 (788个项目)">帝国</a> <a href="/tag/diguoCMS.html" class="tag-cloud-link" title="帝国CMS (724个项目)">帝国CMS</a> <a href="/tag/FTP.html" class="tag-cloud-link" title="FTP (563个项目)">FTP</a> <a href="/tag/Discuz.html" class="tag-cloud-link" title="Discuz (457个项目)">Discuz</a> <a href="/tag/diannao.html" class="tag-cloud-link" title="电脑 (315个项目)">电脑</a> <a href="/tag/shujuku.html" class="tag-cloud-link" title="数据库 (215个项目)">数据库</a> <a href="/tag/zhuce.html" class="tag-cloud-link" title="注册 (200个项目)">注册</a> <a href="/tag/xiazai.html" class="tag-cloud-link" title="下载 (173个项目)">下载</a> <a href="/tag/Discuzjiaocheng.html" class="tag-cloud-link" title="Discuz教程 (144个项目)">Discuz教程</a> <a href="/tag/aliyun.html" class="tag-cloud-link" title="阿里云 (141个项目)">阿里云</a> <a href="/tag/com.html" class="tag-cloud-link" title="com (123个项目)">com</a> <a href="/tag/woijingtai.html" class="tag-cloud-link" title="伪静态 (122个项目)">伪静态</a> <a href="/tag/jilu.html" class="tag-cloud-link" title="记录 (111个项目)">记录</a> <a href="/tag/beian.html" class="tag-cloud-link" title="备案 (99个项目)">备案</a> <a href="/tag/diguocmsjiaocheng.html" class="tag-cloud-link" title="帝国cms教程 (86个项目)">帝国cms教程</a> <a href="/tag/yidongduan.html" class="tag-cloud-link" title="移动端 (78个项目)">移动端</a> <a href="/tag/cunchu.html" class="tag-cloud-link" title="存储 (74个项目)">存储</a> <a href="/tag/guzhang.html" class="tag-cloud-link" title="故障 (67个项目)">故障</a> <a href="/tag/bijibon.html" class="tag-cloud-link" title="笔记本 (64个项目)">笔记本</a> <a href="/tag/jiage.html" class="tag-cloud-link" title="价格 (61个项目)">价格</a> <a href="/tag/sitemap.html" class="tag-cloud-link" title="sitemap (60个项目)">sitemap</a> <a href="/tag/lingdongbiaoqian.html" class="tag-cloud-link" title="灵动标签 (54个项目)">灵动标签</a> <a href="/tag/lanping.html" class="tag-cloud-link" title="蓝屏 (51个项目)">蓝屏</a> <a href="/tag/wangzhanditu.html" class="tag-cloud-link" title="网站地图 (50个项目)">网站地图</a> <a href="/tag/dedecmsjiaocheng.html" class="tag-cloud-link" title="dedecms教程 (42个项目)">dedecms教程</a> <a href="/tag/paixing.html" class="tag-cloud-link" title="排行 (39个项目)">排行</a> <a href="/tag/kehuduan.html" class="tag-cloud-link" title="客户端 (28个项目)">客户端</a> <a href="/tag/xiaochengxu.html" class="tag-cloud-link" title="小程序 (25个项目)">小程序</a> <a href="/tag/zizhujianzhan.html" class="tag-cloud-link" title="自助建站 (22个项目)">自助建站</a> <a href="/tag/request.html" class="tag-cloud-link" title="request (19个项目)">request</a> <a href="/tag/shoujiduan.html" class="tag-cloud-link" title="手机端 (19个项目)">手机端</a> <a href="/tag/HTML5.html" class="tag-cloud-link" title="HTML5 (17个项目)">HTML5</a> </div> </div> </aside> </div> </div> <div class="clear"></div> <footer id="colophon" class="site-footer container"> <div id="site-bottom" class="clear"> <div class="menu-botom-container"> <ul id="footer-menu" class="footer-nav"> <li><a href="https://www.1cn.cc/zixun/" target="_blank">资讯</a> </li><li><a href="https://www.1cn.cc/zhineng/" target="_blank">智能</a> </li><li><a href="https://www.1cn.cc/chuangye/" target="_blank">创业</a> </li><li><a href="https://www.1cn.cc/biancheng/" target="_blank">编程</a> </li><li><a href="https://www.1cn.cc/xiazai/" target="_blank">下载</a> </li><li><a href="https://www.1cn.cc/fwq/" target="_blank">服务器</a> </li><li><a href="https://www.1cn.cc/yunying/" target="_blank">运营</a> </li><li><a href="https://www.1cn.cc/jianzhan/" target="_blank">建站</a> </li><li><a href="https://www.1cn.cc/diannao/" target="_blank">电脑</a> </li><li><a href="https://www.1cn.cc/shouji/" target="_blank">手机</a> </li><li><a href="https://www.1cn.cc/yule/" target="_blank">娱乐</a> </li><li><a href="https://www.1cn.cc/cc/" target="_blank">储存</a> </li><li><a href="https://www.1cn.cc/dd/" target="_blank">待定</a> </li> </ul> </div> <div class="site-info"> © 2022 <a href="https://www.1cn.cc/">1号站长-站长学院|资讯交流平台</a> - <script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script> <script>LA.init({id: "JiLN6KXc4tiqOcQr",ck: "JiLN6KXc4tiqOcQr",autoTrack:true,hashMode:true})</script>-- - <script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script> <script>LA.init({id: "JiLN6KXc4tiqOcQr",ck: "JiLN6KXc4tiqOcQr",autoTrack:true,hashMode:true})</script>统计代码<a href="https://www.1cn.cc/sitemap/news_1.xml"><font color="#0000FF">百度地图</font></a>.<a href="https://www.1cn.cc/sitemap/news_2.xml"><font color="#0000FF">sitemap</font></a> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?344031d17476ebc7ab3a7975ded42d83"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </div> </div> </footer> </div> <div class="bottom-right"> <div class="icon-contact tooltip"> <span class="icon-link"> <span class="icon"><i class="fa fa-phone"></i></span> <span class="text">联系我们</span> </span> <div class="left-space"> <div class="left"> <div class="contact-info"> <h3>联系我们</h3> <strong>0898-88888888</strong> <p>在线咨询: <a href="http://wpa.qq.com/msgrd?v=3&uin=123456789&site=qq&menu=yes" target="_blank"><img src="https://www.1cn.cc/skin/ecms312/images/qqchat.gif" alt="QQ交谈"/></a></p> <p>邮箱: email@wangzhan.com</p> <p>工作时间:周一至周五,9:00-17:30,节假日休息</p> </div> <i></i></div> </div> </div> <div class="icon-weixin tooltip"> <span class="icon-link"> <span class="icon"><i class="fa fa-wechat"></i></span> <span class="text">关注微信</span> </span> <div class="left-space"> <div class="left"> <img src="https://www.1cn.cc/skin/ecms312/images/weixin-qrcode.png" alt="微信扫一扫关注我们"/> <h3>微信扫一扫关注我们</h3> <i></i></div> </div> </div> <div class="icon-weibo"> <a href="https://weibo.com/" target="_blank"> <span class="icon"><i class="fa fa-weibo"></i></span> <span class="text">关注微博</span> </a></div> <div id="back-top"> <a href="#top" title="返回顶部"> <span class="icon"><i class="fa fa-chevron-up"></i></span> <span class="text">返回顶部</span> </a></div> </div> <script type="text/javascript"> jQuery(document).ready(function() { jQuery('.sidebar').theiaStickySidebar({ // Settings additionalMarginTop: 30 }); }); </script> <script>// Get the modal var modal = document.getElementById('myModal'); // Get the button that opens the modal var btn = document.getElementById("myBtn"); // Get the <span> element that closes the modal var span = document.getElementsByClassName("close")[0]; // When the user clicks the button, open the modal btn.onclick = function() { modal.style.display = "block"; } // When the user clicks on <span> (x), close the modal span.onclick = function() { modal.style.display = "none"; } // When the user clicks anywhere outside of the modal, close it window.onclick = function(event) { if (event.target == modal) { modal.style.display = "none"; } }</script> <script>(function($){ //create closure so we can safely use $ as alias for jQuery $(document).ready(function(){ "use strict"; $(window).resize(function() { }); }); })(jQuery);</script> <script defer src="https://www.1cn.cc/skin/ecms312/js/main.js"></script> </body> </html>