作者翻译:阿捷

  原文作者:Roger Johansson

  作者简介:住在瑞典哥德堡,1994年开始接触和参与web设计,456 Berea Street是他的住址,因此采用这个名字作为他的个人主页域名

  原文出处:www.456bereastreet.com

  原文发表时间:2005年3月15日

  最近,经常有朋友问我一些工作中遇到的CSS问题。他们总是不能很好的控制CSS,影响CSS的效率发挥。我来分析总结一下错误所在,帮助大家更加容易使用CSS。

  本文总结了我开始使用CSS布局方法以来所有的技巧和兼容方案,我愿意把这些与你分享,我会重点解释一些新手容易犯的错误(包括我自己也犯过的),如果你已经是CSS高手,这些经验技巧可能已经都知道,如果你有更多的,希望可以帮我补充。

  一.使用css缩写

  使用缩写可以帮助减少你CSS文件的大小,更加容易阅读。css缩写的主要规则请参看《常用css缩写语法总结》,这里就不展开描述。

  二.明确定义单位,除非值为0

  忘记定义尺寸的单位是CSS新手普遍的错误。在HTML中你可以只写width="100",但是在CSS中,你必须给一个准确的单位,比如:width:100px width:100em。只有两个例外情况可以不定义单位:行高和0值。除此以外,其他值都必须紧跟单位,注意,不要在数值和单位之间加空格。

  三.区分大小写

  当在XHTML中使用CSS,CSS里定义的元素名称是区分大小写的。为了避免这种错误,我建议所有的定义名称都采用小写。

  class和id的值在HTML和XHTML中也是区分大小写的,如果你一定要大小写混合写,请仔细确认你在CSS的定义和XHTML里的标签是一致的。

  四.取消class和id前的元素限定

  当你写给一个元素定义class或者id,你可以省略前面的元素限定,因为ID在一个页面里是唯一的,而clas s可以在页面中多次使用。你限定某个元素毫无意义。例如:

  div#content { /* declarations */ }

  fieldset.details { /* declarations */ }

  可以写成

  #content { /* declarations */ }

  .details { /* declarations */ }

  这样可以节省一些字节。

  五.默认值

  通常padding的默认值为0,background-color的默认值是transparent。但是在不同的浏览器默认值可能不同。如果怕有冲突,可以在样式表一开始就先定义所有元素的margin和padding值都为0,象这样:

  * {

  margin:0;

  padding:0;

  }

  六.不需要重复定义可继承的值

  CSS中,子元素自动继承父元素的属性值,象颜色、字体等,已经在父元素中定义过的,在子元素中可以直接继承,不需要重复定义。但是要注意,浏览器可能用一些默认值覆盖你的定义。

  七.最近优先原则

  如果对同一个元素的定义有多种,以最接近(最小一级)的定义为最优先,例如有这么一段代码

  Update: Lorem ipsum dolor set

  在CSS文件中,你已经定义了元素p,又定义了一个class"update"

  p {

  margin:1em 0;

  font-size:1em;

  color:#333;

  }

  .update {

  font-weight:bold;

  color:#600;

  }

  这两个定义中,class="update"将被使用,因为class比p更近。你可以查阅W3C的《 Calculating a selector’s specificity》 了解更多。

  八.多重class定义

  一个标签可以同时定义多个class。例如:我们先定义两个样式,第一个样式背景为#666;第二个样式有10 px的边框。

  .one{width:200px;background:#666;}

  .two{border:10px solid #F00;}

  在页面代码中,我们可以这样调用

  <div class="one two"></div>

  这样最终的显示效果是这个div既有#666的背景,也有10px的边框。是的,这样做是可以的,你可以尝试一下。

  九.使用子选择器(descendant selectors)

  CSS初学者不知道使用子选择器是影响他们效率的原因之一。子选择器可以帮助你节约大量的class定义。我们来看下面这段代码:

  <div id="subnav">

  <ul>

  <li class="subnavitem"> <a href="#" class="subnavitem">Item 1</a></li>>

  <li class="subnavitemselected"> <a href="#" class="subnavitemselected"> Item 1</a> </li>

  <li class="subnavitem"> <a href="#" class="subnavitem"> Item 1</a> </li>

  </ul>

  </div>

  这段代码的CSS定义是:

  div#subnav ul { /* Some styling */ }

  div#subnav ul li.subnavitem { /* Some styling */ }

  div#subnav ul li.subnavitem a.subnavitem { /* Some styling */ }

  div#subnav ul li.subnavitemselected { /* Some styling */ }

  div#subnav ul li.subnavitemselected a.subnavitemselected { /* Some styling */ }

  你可以用下面的方法替代上面的代码

  <ul id="subnav">

  <li> <a href="#"> Item 1</a> </li>

  <li class="sel"> <a href="#"> Item 1</a> </li>

  <li> <a href="#"> Item 1</a> </li>

  </ul>

  样式定义是:

  #subnav { /* Some styling */ }

  #subnav li { /* Some styling */ }

  #subnav a { /* Some styling */ }

  #subnav .sel { /* Some styling */ }

  #subnav .sel a { /* Some styling */ }

  用子选择器可以使你的代码和CSS更加简洁、更加容易阅读。

  十.不需要给背景图片路径加引号

  为了节省字节,我建议不要给背景图片路径加引号,因为引号不是必须的。例如:

  background:url("images/***.gif") #333;

  可以写为

  background:url(images/***.gif) #333;

  如果你加了引号,反而会引起一些浏览器的错误。

  十一.组选择器(Group selectors)

  当一些元素类型、class或者id都有共同的一些属性,你就可以使用组选择器来避免多次的重复定义。这可以节省不少字节。

  例如:定义所有标题的字体、颜色和margin,你可以这样写:

  h1,h2,h3,h4,h5,h6 {

  font-family:"Lucida Grande",Lucida,Arial,Helvetica,sans-serif;

  color:#333;

  margin:1em 0;

  }

  如果在使用时,有个别元素需要定义独立样式,你可以再加上新的定义,可以覆盖老的定义,例如:

  h1 { font-size:2em; }

  h2 { font-size:1.6em; }

  十二.用正确的顺序指定链接的样式

  当你用CSS来定义链接的多个状态样式时,要注意它们书写的顺序,正确的顺序是::link :visited :hover :active。抽取第一个字母是"LVHA",你可以记忆成"LoVe HAte"(喜欢讨厌)。为什么这么定义,可以参考Eric Meyer的《Link Specificity》。

  如果你的用户需要用键盘来控制,需要知道当前链接的焦点,你还可以定义:focus属性。:focus属性的效果也取决与你书写的位置,如果你希望聚焦元素显示:hover效果,你就把:focus写在:hover前面;如果你希望聚焦效果替代:hover效果,你就把:focus放在:hover后面。

  十三.清除浮动

  一个非常常见的CSS问题,定位使用浮动的时候,下面的层被浮动的层所覆盖,或者层里嵌套的子层超出了外层的范围。

  通常的解决办法是在浮动层后面添加一个额外元素,例如一个div或者一个br,并且定义它的样式为clear: both。这个办法有一点牵强,幸运的是还有一个好办法可以解决,参看这篇文章《How To Clear Floats Without Structural Markup》。

  上面2种方法可以很好解决浮动超出的问题,但是如果当你真的需要对层或者层里的对象进行clear的时候怎么办?一种简单的方法就是用overflow属性,这个方法最初的发表在《Simple Clearing of Floats》,又在《Clearance》和《Super simple clearing floats》中被广泛讨论。

  上面那一种clear方法更适合你,要看具体的情况,这里不再展开论述。另外关于float的应用,一些优秀的文章已经说得很清楚,推荐你阅读:《Floatutorial》、《Containing Floats》和《Float Layouts》

  十四.横向居中(centering)

  这是一个简单的技巧,但是值得再说一遍,因为我看见太多的新手问题都是问这个:CSS如何横向居中?你需要定义元素的宽,并且定义横向的margin,如果你的布局包含在一个层(容器)中,就象这样:

  你可以这样定义使它横向居中:

  #wrap {

  width:760px; /* 修改为你的层的宽度 */

  margin:0 auto;

  }

  但是IE5/Win不能正确显示这个定义,我们采用一个非常有用的技巧来解决:用text-align属性。就象这样:

  body {

  text-align:center;

  }

  #wrap {

  width:760px; /* 修改为你的层的宽度 */

  margin:0 auto;

  text-align:left;

  }

  第一个body的text-align:center; 规则定义IE5/Win中body的所有元素居中(其他浏览器只是将文字居中) ,第二个text-align:left;是将#warp中的文字居左。

  十五.导入(Import)和隐藏CSS

  因为老版本浏览器不支持CSS,一个通常的做法是使用@import技巧来把CSS隐藏起来。例如:

  @import url("main.css");

  然而,这个方法对IE4不起作用,这让我很是头疼了一阵子。后来我用这样的写法:

  @import "main.css";

  这样就可以在IE4中也隐藏CSS了,呵呵,还节省了5个字节呢。想了解@import语法的详细说明,可以看这里《centricle’s css filter chart》

  十六.针对IE的优化

  有些时候,你需要对IE浏览器的bug定义一些特别的规则,这里有太多的CSS技巧(hacks),我只使用其中的两种方法,不管微软在即将发布的IE7 beta版里是否更好的支持CSS,这两种方法都是最安全的。

  1.注释的方法

  (a)在IE中隐藏一个CSS定义,你可以使用子选择器(child selector):

  html>body p {

  /* 定义内容 */

  }

  (b)下面这个写法只有IE浏览器可以理解(对其他浏览器都隐藏)

  * html p {

  /* declarations */

  }

  (c)还有些时候,你希望IE/Win有效而IE/Mac隐藏,你可以使用"反斜线"技巧:

  /* */

  * html p {

  declarations

  }

  /* */

  2.条件注释(conditional comments)的方法

  另外一种方法,我认为比CSS Hacks更加经得起考验就是采用微软的私有属性条件注释(conditional comments)。用这个方法你可以给IE单独定义一些样式,而不影响主样式表的定义。就象这样:

  <!--[if IE]>

  <link rel="stylesheet" type="text/css" href="ie.css" />

  <![endif]-->

  十七.调试技巧:层有多大?

  当调试CSS发生错误,你就要象排版工人,逐行分析CSS代码。我通常在出问题的层上定义一个背景颜色,这样就能很明显看到层占据多大空间。有些人建议用border,一般情况也是可以的,但问题是,有时候border 会增加元素的尺寸,border-top和boeder-bottom会破坏纵向margin的值,所以使用background更加安全些。

  另外一个经常出问题的属性是outline。outline看起来象boeder,但不会影响元素的尺寸或者位置。只有少数浏览器支持outline属性,我所知道的只有Safari、OmniWeb、和Opera。

  十八.CSS代码书写样式

  在写CSS代码的时候,对于缩进、断行、空格,每个人有每个人的书写习惯。在经过不断实践后,我决定采用下面这样的书写样式:

  selector1,

  selector2 {

  property:value;

  }

  当使用联合定义时,我通常将每个选择器单独写一行,这样方便在CSS文件中找到它们。在最后一个选择器和大括号{之间加一个空格,每个定义也单独写一行,分号直接在属性值后,不要加空格。

  我习惯在每个属性值后面都加分号,虽然规则上允许最后一个属性值后面可以不写分号,但是如果你要加新样式时容易忘记补上分号而产生错误,所以还是都加比较好。

  最后,关闭的大括号}单独写一行。

  空格和换行有助与阅读。
1、一条千古不变的真理————枪杆子里面出政权!
2、最鼓舞人心的一句话————星星之火,可以燎原。
3、最豪迈,最傲气的一句话————切反动派都是纸老虎!
4、最自负的一句问话————问苍茫大地,谁主沉浮?
5、最震憾人心震憾世界的一句话————中国人民从此站起来了!
6、最正气澶然的一句话————人不犯我,我不犯人,人若犯我,我必犯人!
7、最具鼓动性的一句话————一万年太久,只争朝夕。
8、最有煽动性的一句话————革命不是请客吃饭,破旧立新,造反有理!
9、最有志气的一句话————-自己动手,丰衣足食!
10、令贪官们最为警醒的一句话————为人民服务。


这只是万里长征的第一步!
敢上九天揽月,敢下五洋抓鳖!
数风流人物还看今朝。
无限风光在险峰。
一 买个闹钟,以便按时叫醒你。贪睡和不守时,都将成为你工作和事业上的绊脚石,任何时候都一样。不仅要学会准时,更要学会提前。就如你坐车去某地,沿途的风景很美,你忍不住下车看一看,后来虽然你还是赶到了某地,却不是准时到达。“闹钟”只是一种简单的标志和提示,真正灵活、实用的时间,掌握在每个人的心中。 

二 如果你不喜欢现在的工作,要么辞职不干,要么就闭嘴不言。初出茅庐,往往眼高手低,心高气傲,大事做不了,小事不愿做。不要养成挑三拣四的习惯。不要雨天烦打伞,不带伞又怕淋雨,处处表现出不满的情绪。记住,不做则已,要做就要做好。

三 每个人都有孤独的时候。要学会忍受孤独,这样才会成熟起来。年轻人嘻嘻哈哈、打打闹闹惯了,到了一个陌生的环境,面对形形色色的人和事,一下子不知所措起来,有时连一个可以倾心说话的地方也没有。这时,千万别浮躁,学会静心,学会忍受孤独。在孤独中思考,在思考中成熟,在成熟中升华。不要因为寂寞而乱了方寸,而去做无聊无益的事情,白白浪费了宝贵的时间。

四 走运时要做好倒霉的准备。有一天,一只狐狸走到一个葡萄园外,看见里面水灵灵的葡萄垂涎欲滴。可是外面有栅栏挡着,无法进去。于是它一狠心绝食三日,减肥之后,终于钻进葡萄园内饱餐一顿。当它心满意足地想离开葡萄园时,发觉自己吃得太饱,怎么也钻不出栅栏了。相信任何人都不愿做这样的狐狸。退路同样重要。饱带干粮,晴带雨伞,点滴积累,水到渠成。有的东西今天似乎一文不值,但有朝一日也许就会身价百倍。

五 不要像玻璃那样脆弱。有的人眼睛总盯着自己,所以长不高看不远;总是喜欢怨天尤人,也使别人无比厌烦。没有苦中苦,哪来甜中甜?不要像玻璃那样脆弱,而应像水晶一样透明,太阳一样辉煌,腊梅一样坚强。既然睁开眼睛享受风的清凉,就不要埋怨风中细小的沙粒。

六 管住自己的嘴巴。不要谈论自己,更不要议论别人。谈论自己往往会自大虚伪,在名不副实中失去自己。议论别人往往陷入鸡毛蒜皮的是非口舌中纠缠不清。每天下班后和你的那些同事朋友喝酒聊天可不是件好事,因为,这中间往往会把议论同事、朋友当做话题。背后议论人总是不好的,尤其是议论别人的短处,这些会降低你的人格。

七 机会从不会“失掉”,你失掉了,自有别人会得到。不要凡事在天,守株待兔,更不要寄希望于“机会”。机会只不过是相对于充分准备而又善于创造机会的人而言的。也许,你正为失去一个机会而懊悔、埋怨的时候,机会正被你对面那个同样的“倒霉鬼”给抓住了。没有机会,就要创造机会,有了机会,就要巧妙地抓砖

八 若电话老是不响,你该打出去。很多时候,电话会给你带来意想不到的收获,它不是花瓶,仅仅成为一种摆设。交了新朋友,别忘了老朋友,朋友多了路好走。交际的一大诀窍就是主动。好的人缘好的口碑,往往助你的事业更上一个台阶.

九 千万不要因为自己已经到了结婚年龄而草率结婚。想结婚,就要找一个能和你心心相萤相辅相携的伴侣。不要因为放纵和游戏而恋爱,不要因为恋爱而影响工作和事业,更不要因一桩草率而失败的婚姻而使人生受阻。感情用事往往会因小失大。

十 写出你一生要做的事情,把单子放在皮夹里,经常拿出来看。人生要有目标,要有计划,要有提醒,要有紧迫感。一个又一个小目标串起来,就成了你一生的大目标。生活富足了,环境改善了,不要忘了皮夹里那张看似薄薄的单子。
1、你是我的第一个男人
2、从后面抱着我睡觉,我乖乖地蜷成一团,不转过去看你
3、半夜醒来的时候替你掖好被子
4、吃你喂给我的你认为好吃的东西,并且也觉得好吃
5、不打听你不想我知道的任何事情
6、相信你的每一句话,不揭穿你的谎言
7、努力适应你的生活方式和生活的圈子
8、友好地对待你的朋友,把他们也当作是自己的朋友
9、在你的朋友面前给足你面子
10、继续做你喜欢我做的工作
11、把头发留长,不烫卷,不使用者哩水等让头发变硬的东东
12、控制饮食和锻炼身体,以保持身材的苗条和改变太平公主的现状
13、为你剪指甲,让你改掉有心事就咬指甲的习惯
14、拉你一起去广场上吹肥皂泡泡
15、收起我的坏情绪,自己擦干脸上的泪,你看到我的时候我会尽量多的微笑
16、在电台点《天使与海豚》送给你
17、珍惜每一次和你的会面
18、在卡拉ok唱《勇气》的时候打电话给你
19、买烟给你,但是只买一点点,因为吸烟有害健康
20、让你背着我在屋子里打转
21、趴在你的肚子上和你一起看电视
22、一起洗澡,帮你擦干
23、看a片,学习做一个解风情的女人,而不一直是天真的小女孩
24、为爱变成一个笨笨的小女人
25、替你洗衣服,特别是臭袜子
26、帮你擦所有的皮鞋,不管你什么时候需要穿哪一双它们都是干净的
27、陪你到菜市场去买菜
28、吃光并称赞你做的菜
29、跟爸爸学会做他的金牌红烧蹄膀
30、保证手机的畅通,你随时都能找到我
31、告诉妈妈和你的故事,她有权了解谁把女儿变成一个女人
32、和你在卫生间里你好
33、好好保存你送我的每一件东西
34、用一个pp的小本本记下你发给我的每一条短信
35、默默地等你回来
36、不再见网友
37、你开心时比你还开心,你难过时比你还难过
38、真心地认为你做的每一件事都是有道理的
39、去照相馆拍情侣照,做成漂亮的小册子,我还要穿婚纱
40、把那只小熊一直放在床头
41、介绍我所有的好朋友给你认识
42、保护你不受一点委屈
43、申请一个我们的邮箱,写好多情书放在里面等你去看
44、每年都从家来看你
45、倒水哄你吃药
46、偷偷扯你的衣服角,提醒你要少喝酒
47、在你苦难的时候绝不放弃你
48、随时做好准备跟着你背井离乡
49、答应你的求婚,哪怕没有玫瑰和戒指(如果有这么一天)
50、在你不再爱我的时候静静地走开


强烈建议:凡有女孩能作到以上任意10条那你娶她吧没错的
................................20条你要努力娶到她啊
................................30条死皮赖脸也要娶到她
................................40条拼了老命也要娶到她
................................50条估计这种女孩已经绝种了
据说天堂里有可能找得到
总则:
  
  1、不要再相信任何政府给你描绘的美好前景了。经历了房改、医改、教改以后,如果你还没醒过来,还以为以后的生活能越“改”越好,那是太天真啦。
  2、中国会饿死、病死、穷死人,但绝不能饿死、病死、穷死大部分人。不少官商要赚钱,所以政府会踩着这条底线走;这条底线,是估算政府以后改革方案的最好方法。
     
  
  关于工作:
  
  工作是生活收入之源,所以为了以后更好的活下去,哪里工作收入高,就跑哪里去,哪个区域政府搞活了,就去哪。跟着政策走,广州不行了去上海,上海不行了去北京,北京也不行了就去别的地方,总之要比别人先走一步。政策时时变,朝令夕改,千万别信什么远景,别做“永不生锈的螺丝钉”。
  
  现在一个城市的发展能力或经济状况,和当地政府官员的能力,和中央对地方的重视程度关联太大。而这些东西在一次会议上就能通通改变,我们平民无法控制的。
  
     
  关于身体:
  
  现在流行“45以前命换钱,45以后钱买命”的说法,因此很多年轻人因为对将来美好生活的渴望,不惜透支身体,这种做法是愚蠢的。看看现在的医保吧,一场大病,能把你毕生的钱耗光!然后你就等死吧。不用多说了,一个个血淋淋的故事。
  
  因此无论工作多忙,一定要注意身体,多锻炼,保持好的心境。如果一份工作看上去钱多点,但要用命去拼的,就建议你多考虑。没有钱可以省点花,没有老婆也可以过日子,但没有一个健康的身体,等待你的就只有死。
  
     
  关于房子:
  
  现在买房子有几个缺点:
  1、房价虚高;
  2、不平等条约和猫腻太多;
  3、管理费、治安费等等加起来,不比租房便宜多少;
  4、在一个地方买了房子,就相当于把你自己绑定在一个地方了,你以后就很难再移动。而政策时时变,很难说那个地方就一直受重视。举个例子,以前广州的商业中心都在人民路一带,南方大厦多出名啊,现在呢?我见到不少人都在不停买卖房子,一间又一间,被政府牵着鼻子走,亏死了。
  5、中国的城市规划还存在很大的问题,一直在不停的变,将来必定还有一次次的“重新规划”,因此说不准哪一天,你发毕生积储,供上10年20年买下来的房子,会被贴上个大大的“拆”字,逼迁你,然后给你一小笔赔偿。
  
  房价在中国无限走高是不可能的(市中心除外,但在中国,连“迁都”这样的事都讨论过了,其实你还是不能确定,哪里会是将来的市中心吧?),只要保持自己的购买力不低于大众,看看手头上有多少钱,将来找个可以安度晚年的地方,或者遇上房价低谷,再买不迟。
     
  
  关于伴侣:
  
  恋爱的成本很高,无论金钱还是时间,尤其对于男人而言。所以如果你不是太有钱,那么认认真真的找个人结婚,比什么都好。千万别因为寂寞而找朋友,玩来玩去,最后你会发觉是虚梦一场,梦里耗掉的,是你的钱、时间、前途和理想。
     
  
  关于教育:
  
  可以这么说,中国的教育是浪费金钱,我没听说谁是从大学里学到有用东西的。但在中国,不读个大学也确实不行,但大学就足以。刚出来工作的时候,学历好象看起来很重要,因此容易有误导,学生们拼命的读,硕士、博士...其实只要你工作上5年,就会发现,你的工作经验和社会关系比什么都重要。一个好的社会关系网绝对比什么博士学位重要。
  
  社会关系靠什么积累?主要靠的是工作中的接触!
    
  关于车子:
  
  车子在中国的作用真的不大,特别是“鼓励买车,控制用车”的政策即将出台,不知道你将要为自己的爱车付出怎样的代价。



 大家看完帖子,感觉不错的话,就顺手顶一下,让所有的人都看看。。

谢谢啦。。。
分页: 357/361 第一页 上页 352 353 354 355 356 357 358 359 360 361 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐