1、自定义字段必须归类,并且把归类在栏目设置中捆绑起来才能存储数据。否则保存不了。
2、自定义字段是个单独的表,在FS_ms系列中单独存储,不与现有表混合。
1、自定义字段必须归类,并且把归类在栏目设置中捆绑起来才能存储数据。否则保存不了。
2、自定义字段是个单独的表,在FS_ms系列中单独存储,不与现有表混合。
当指定A标记为块并用背景替换文字时,常常要设定块大小(比如常见的“更多”)。在IE下这个时候容易出现问题:当A中的字比块大时,块将被撑大。FOX下没这个问题。解决方法:单独为A设置溢出隐藏,或者将A的字体设置得够小,小到不足以撑破块。
修正一个重要误解:网上流传的不换行自动加省略号的样式代码存在重大缺陷。那段代码中使用了
一个测试了N久发现的IE/FOX兼容问题:在带时间的新闻列表中一般用
做到目前的地步,回想一下起初在手外网站应用标准的困难和女子医院的排版失误,其根结都在不懂得使用“清除”,一味的浮动,结果造成了FOX下的严重排版故障。 “清除”非常非常重要,不懂它,就不懂CSS排版。仔细想想,这个经验似乎也是《CSS禅意花园》中看来的。
图片导航一般由LI组成,保持内联模式不边,然后让A成为块显示,将链接文字缩进设定为负数,并指定A快大小、边距,然后用图片作为背景,形成图片导航效果。
在这个过程中要特别注意几点:
1、fox下A块中缩进的文字会显示出来,需要设定“溢出隐藏”。这个隐藏应该加在li的身上。如果加在A的身上也没有问题,但是在DW下会导致显示混乱。
2、LI不需要设置成块属性,本身是内联属性,块属性的重任已经交给A标签了。
又碰到一个兼容性问题。IE下,当块向左移动时,左边距按两倍计算。解决方法是把块设置成内联属性。我看网易的解决方法是用父元素的内边距来空位,而不使用浮动块的外边距。
当两个DIV块嵌套时,如果父套无内容,则fox中上边距重叠。在BI咨询了一下,似乎本该如此。我奇怪的是既然边距重叠,为神什么左边距不重叠呢?搞了个CSS2中文文档看,据说里面有答案,不过近期是没可能去详读了。
IE和fox在版面处理上总是存在差异,好在这次发现的差异基本都是1像素级的,能带就带过去了。倒是DW和两浏览器的差异值得注意了。在处理表单物件的时候,DW总不能根据样式表的设定正常显示,这个差别比IE和FOX的差别大得多得多,甚至影响了版面效果,我不得不以溢出隐藏的方式对待它,否则后面的排版无法进行下去。
深刻领会到“定位”的重要。 以前我对他的成见太严重,不是《css禅意花园》的引导,可能只有通过阅读大量源码才能领会它是如此普遍而正确,并且非常好用。这几十块钱花得值。
得出一个教训:测试样式表时不要用外联方式。直接内嵌做测试,可以减少很多不必要的麻烦,避免一些调试的问题。或者,把DW的预览设置成临时文件预览,也可以避免调试的不确定性给工作带来的麻烦。
第一次比较完整的贯彻标准概念。感觉是以前把标准看得太“干净”了。实际工作中并不是每个内容都能在HTML中找到语义的,如果彻底迁就语义,那么现有的设计方式都需要更新,彻底忘记以前用的方法,胡略掉客户对你的要求。这不现实。通过查看分析网易的做法,确实觉得他的折中方案不错,大型门户也只有这么干了。否则HTML是干净了,但是CSS将变得一塌糊涂,再加上HACK,那简直就是密码文件。光鲜其外败絮其中就是指这种状态了。如果HTML的标准能让搜索引擎迅速提升PAGE值也还罢了,关键是能否达到这种效果目前看来都是一厢情愿。再说了,真正的客户谁管这些。
最好的学习是抄袭。
网易的标准化做得好,自然样式表的构建也可以成为教材。为了构建自己的样式表,从解读网易样式表开始。
网易的样式表是全部内嵌的,这点比较费解,完全牺牲了样式表的共用优势。可能是页面设计牵涉的部门众多,唯恐牵一发动全身造成页面显示问题。
样式表的第一段,把一些常用的标签去掉了默认属性,免得以后涉及这些标签的时候造成费解的默认样式问题。看上去比较合理:
/* CSS Document */
body { text-align: center; font-family:”宋体”, arial;margin:0; padding:0; background: #FFF; font-size:12px; color:#000;}
div,form,img,ul,ol,li,dl,dt,dd {margin: 0; padding: 0; border: 0;}
h1,h2,h3,h4,h5,h6 { margin:0; padding:0;}
table,td,tr,th{font-size:12px;}
定义链接样式。以往这四项链接是HTML标签解决问题,如今这段CSS就是顶替原来的HTML功能。其中的参数需要根据自己的定义做调整,这个功能段落还是满合理的:
a:link {color: #1f3a87; text-decoration:none;}
a:visited {color: #83006f;text-decoration:none;}
a:hover {color: #bc2931; text-decoration:underline;}
a:active {color: #bc2931;}
网易对标签使用了大量的多重定义方式,这有点象WORD里的方式。比如16像素的红色粗体字,就是先赋予字体16像素的大小属性,再赋予他粗细的样式属性,最后给他颜色属性。网易分别定义了自己的规则:
/* 颜色属性 [定义规则,小写c加颜色名称] */
.cRed,a.cRed:link,a.cRed:visited{ color:Red; }
.cBlue,a.cBlue:link,a.cBlue:visited{color:#1f3a87;}
.cDRed,a.cDRed:link,a.cDRed:visited{ color:#bc2931;}
.cGray,a.cGray:link,a.cGray:visited{ color: #4F544D;}
.cDGray,a.cDGray:link,a.cDGray:visited{ color: #666;}
.cWhite,a.cWhite:link,a.cWhite:visited{ color:#fff;}
.cBlack,a.cBlack:link,a.cBlack:visited{color:#000;}
a.cBlack:hover{color:#bc2931;}
.cYellow,a.cYellow:link,a.cYellow:visited{color:#ff0;}
.cGreen,a.cGreen:link,a.cGreen:visited{color:#008000;}
/* 字体属性 [定义规则,小写f加属性名称] */
.fB {font-weight: bold;}
.fI {font-style: italic;}
/* 字体大小*/
.f12px{ font-size:12px;}
.f14px{ font-size:14px;}
/* 其他属性 */
.left{ float: left;}
.right{ float: right;}
.clear{ clear: both; font-size:1px; width:1px; height:0; visibility: hidden; }
.hidden {display: none;}
.unLine ,.unLine a{text-decoration: none;}
.noBorder{border:none; }
可以说排版属性基本上都全了。这种组织方式可以不用去定义很多排版用的专用类,作为编辑人员来说也比较好阅读,思路不错。不过,我怎么觉得又好像回到HTML标签的时代了呢?到时候源代码列中必然充斥大量的CLASS。作为大站,这种方式可能是保持协同性的考虑。毕竟如果真的按语义来做“瘦身”的页面,对于网易这种门户来说太难了。再想想,这些标签其实有满大的发挥空间,比如红色在全局定义的时候是大红色,与别的标签组合嵌套后可以继承红色,并加上加粗属性,同时又不影响其他标签。
接下来,网易给类取名字的方式可以借鉴一下:先为要处理的大区域取一个类名,再在类名下套子类,一层层套下去。可读性确实不错。可惜在DW8下,样式的排列依然是一个问题。如果要看上去井然有序,必然要切换到代码模式下调整。按照网易这个思路,依然是类套类的方式,可读性问题确实解决得很好:
/* 左边内容 */
.leftContent{ clear:both;}
.leftContent .menu{ clear:both;height:22px;}
.leftContent .menu ul{}
.leftContent .menu li{ float:left; height:22px; list-style-type:none;cursor:pointer;}
.leftContent .menu li h6{font-size:12px;padding:6px 0 2px 11px; font-weight:normal; float:left;}
.leftContent .menu li h5{font-size:12px;padding:6px 0 0; font-weight:normal; }
了解了这些大方法,其他的就不用拘泥了,否则什么也干不了。
第一件事情就是定义站头。按照惯例,用id,名字叫“head”。英文单词不记得几个,这个倒是很顺手。其实名字严格来说没什么具体的含义,只是英文单词不认得几个,勉强就叫这个名字了。
把DW生成的外边距改成了简写的样式。发现,如果没有数值的话,不用填写单位;否则就一定要加单位,比如PX,否则IE认,FOX不认,认为是错误标签,直接无视。
<strong>修正以前对简写的一个误区</strong>:原来以为简写只能对称,比如0 2 0 2,简写成0 2;通过看网易代码发现,0 2px 9px 2px这种我认为要写全的格式,可以简写成0 2px 9px,即:如果左右相等,则可胡略最后一个数字。如果上下相等呢?……这个……逻辑上似乎无法简写。
<strong>修正以前对“绝对定位”的一个错误看法</strong>:从DW2开始我一直认为绝对定位是基于BODY为参照点,而BODY随很多因素变化,所以绝对定位没有实用价值。但是从《CSS禅意花园》上看,绝对定位被大量使用,因为他是基于“包含块”工作的,比”相对定位“更符合我们对相对定位的期待。但是今天准备用绝对定位来解决一个兼容性问题的时候才发现,它根本不认它的“爹元素”。于是把2001出的《CSS权威指南》翻出来看,在352页的一个不起眼的段落终于找到了答案。原来“包含块”并不就是上级元素,“包含块”本身必须要有“定位”属性,不管是相对还是绝对。根据这个特点,可以任意的定义包含块,只要将那个元素设置成“相对定位”属性就行了,这样不显山露水的就成为了具备定位属性的“包含块”,可以行使为“绝对定位”这个孩子导航的重任了。尽信书不如无书,作为实践性很强的科目,“看”书是没用的。
系统和内容大约地搞定,进入最重要的表面工夫:模板。目前来说完全照标准还有难度,所以采取以标准为目标,先期杂和TABLE的方式,以最快速度上线。
风讯405提供的整合模板版本非常垃圾,甚至新闻列表的每一行都是一个TABLE,不知道是不是因为他的在线编辑器的原因,造成样式无法单独使用TR标签。感觉风讯的编辑器对于标准执行非常严格,而且智能化程度太高。比如段落开始的地方如果有半角空格就会被自动清除,而全角空格则不然。
风讯在发布的时候会在文件中加入一个JS调用标签和一个注释。JS是一个注明的JS类,对于重新制作模板的用户来说,这个前台的类应该用不着,需要去除。注释里有风讯的版权标志,也可以清除,避免“君子”太容易识别出网站所用的CMS系统。如果要清除的话,整站中有两个文件需要修改:
1、\Admin\PublicSite\Public_Function.asp 的最后一段。
2、\FS_InterFace\MF_LoadLabel.asp 的最后一段。
将其中引号包含起来的值换成空格。