Welcome to Goldenfaith official website
请忽视,这只是一张测试帖!
张爱玲前辈曾说里一句非常精辟的白癜风话:每个男人的心里都有两朵玫瑰一朵红玫瑰牛皮癣,一朵白玫瑰。
我认为对皮炎男人而言:他该有三个女人。
一个是白莲花,那是男孩的鱼鳞病初恋,冰清玉洁,美丽如梦。只可远观而不可亵玩焉。对很多男人来说,那都是一朵在青春青涩的梦里一湿疹再摇曳的遥不可及的白莲。
一个是红玫瑰。那是男人的热恋。[/go][/go][/go][/go]
火红热烈,震憾如电。不但白癜风医院可以紧拥入怀,还可以尽情亲吻。男孩经过红玫瑰的洗涤,变成了一个男人。红玫瑰对成熟的男人来讲,是爱不释手的酒。
一个是康乃馨。那是男人的妻子。
温馨淡雅,温情脉脉。她是男硬皮病人奋斗的动力,是男人心灵的依靠,是男人回归的港弯。她是男人的第二个母亲。男银屑病 人的天性都是儿童。而康乃馨白癜风治疗会含笑纵容他的顽皮并耐心等待他在玩累时回家。
于是,男人一牛皮癣专业医院生的成长中,他会暗恋一朵白莲,他会热恋一朵红玫瑰。但是他会选择一支康乃馨来共渡人生。
白莲是牛皮癣治疗不适合共同生活的,因为她是如治疗白癜风此超凡脱俗,不食人间烟火。红玫瑰能激起男人的征服欲和分泌雄性激素,但是要与一个真正热情如火的红玫瑰生活,很多男人并没有这样的信心。牛皮癣医院因为他会担心要么引火烧身,要么殃及鱼池。而很多男人需要的只是一个如康乃馨般温情宽容的妻子。
但是,如果你是个足够幸运的男人,你有机会遇到你梦中的白莲,然后让她变成红玫瑰,最后再演变成一朵康乃馨。
其它信息:白癜风 牛皮癣 皮炎 湿疹 鱼鳞病 硬皮病 银屑病 白癜风治疗 牛皮癣专业医院 牛皮癣治疗 牛皮癣医院 治疗白癜风 白癜风医院
我认为对皮炎男人而言:他该有三个女人。
一个是白莲花,那是男孩的鱼鳞病初恋,冰清玉洁,美丽如梦。只可远观而不可亵玩焉。对很多男人来说,那都是一朵在青春青涩的梦里一湿疹再摇曳的遥不可及的白莲。
一个是红玫瑰。那是男人的热恋。[/go][/go][/go][/go]
火红热烈,震憾如电。不但白癜风医院可以紧拥入怀,还可以尽情亲吻。男孩经过红玫瑰的洗涤,变成了一个男人。红玫瑰对成熟的男人来讲,是爱不释手的酒。
一个是康乃馨。那是男人的妻子。
温馨淡雅,温情脉脉。她是男硬皮病人奋斗的动力,是男人心灵的依靠,是男人回归的港弯。她是男人的第二个母亲。男银屑病 人的天性都是儿童。而康乃馨白癜风治疗会含笑纵容他的顽皮并耐心等待他在玩累时回家。
于是,男人一牛皮癣专业医院生的成长中,他会暗恋一朵白莲,他会热恋一朵红玫瑰。但是他会选择一支康乃馨来共渡人生。
白莲是牛皮癣治疗不适合共同生活的,因为她是如治疗白癜风此超凡脱俗,不食人间烟火。红玫瑰能激起男人的征服欲和分泌雄性激素,但是要与一个真正热情如火的红玫瑰生活,很多男人并没有这样的信心。牛皮癣医院因为他会担心要么引火烧身,要么殃及鱼池。而很多男人需要的只是一个如康乃馨般温情宽容的妻子。
但是,如果你是个足够幸运的男人,你有机会遇到你梦中的白莲,然后让她变成红玫瑰,最后再演变成一朵康乃馨。
其它信息:白癜风 牛皮癣 皮炎 湿疹 鱼鳞病 硬皮病 银屑病 白癜风治疗 牛皮癣专业医院 牛皮癣治疗 牛皮癣医院 治疗白癜风 白癜风医院
传统治疗白癜风弊端
纵观传统的白癜风治疗发现,以往传统治疗白癜风的任意单一疗法对白癜风病情好转、缓解临床症状和有效杜绝白癜风复发起到了一定的作用,但都没能以全基因组关联分析研究(GWAS)为理论指导,而是绝对性的治疗。另外有些综合性治疗,因其规避了临床康复数据、使其多种疗法的结合性治疗并未达到到预期效果。这就是为什么有的患者接受治疗,白斑区好转,但在其他部位又不断有新斑生成;有一部分患者,接受治疗一段时间后,白斑部位明显康复,但不久后再次复发;另外一些患者尝试了各种办法,但怎么治疗都没有效果的根本原因所在。
白癜风治疗新技术
CMMT治疗白癜风将面向全球推广
2010年6月,继国际著名学术期刊《自然--遗传》发表了中国皮肤病遗传学研究团队的最新科研成果,首次在国际范围内确认白癜风为一种自身免疫性疾病这一学说之后,北京中鼎国际白癜风医学研究院正式对外公布了该院科研成果--微生态类黑色素活体技术体系(推广官方网站:http://www.baidianfeng120.net)。该科研项目是在国家“863”计划、“973”计划以及专项科研基金的资助下以全基因组关联分析研究(GWAS)为理论依据,由北京中鼎国际白癜风医学研究院和国内外多家国家重点医疗机构共同完成,该项目经过上万例中外白癜风患者临床验证,同时还密切关注患者白癜风治疗前后的基因状况,包括人类白细胞抗原(HLA)的2个等位基因,6号染色体的RNASET2、FGFR1OP和CCR6,10号染色体的ZMIZ1,治疗白癜风效果显著,在北京中鼎国际白癜风医学研究院正式推广。专家指出,微生态类黑色素活体技术(CMMT)可以实现HLA基因调节进而平衡人类免疫反应,从而优化皮肤黑素细胞发育和功能,在世界上首次解决了白癜风久治不愈、反复发作及遗传问题,实现了白癜风的完全治愈。这一科研成果的发布顿时在国际医学界掀起轩然大波,也必将会引领一次科学治疗白癜风的革命。据悉,目前该科研成功已成功提交国家专利局申请知识产权保护,同时还将通过正常渠道面向海内外进行推广。
微生态类黑色素活体技术统领世界
微生态类黑色素活体技术(CMMT)是一项活性黑色素生长体系,在特定的环境下,具有极强的黑色素膨胀繁殖能力,并且具有短期深度解决白癜风久治不愈、快速控制白斑蔓延扩散、有效预防白癜风间断复发、显著提高免疫,永久剔除白癜风等特点。同时还具有疗程短、费用低、安全性高、绿色无副作用等技术优势。因此,国际医学界曾预言,世界白癜风治疗将进入微生态治疗时代。
三大核心技术治愈白癜风
在实际治疗中,微生态类黑色素活体技术(CMMT)主要通过三大核心技术实现白癜风的最终彻底治愈:首先,药物分子水溶补给技术针对白癜风是由易感基因所引起的自身免疫性疾病这一根本原因,该技术体系能强力穿透并吞噬机体内的“免疫复合物”,掐断致病根源,并在24小时内保证持续有效作用于病变部位,时刻处于待命状态,为人体的健康站岗放哨;其次,类黑素细胞增殖技术亲和异常白细胞,抑制变异白细胞释放异常蛋白,能够在短时间内阻止白斑外延扩散。同时,修复带有基因生物链断裂的黑色素细胞,祛除导致黑色素细胞代谢紊乱凋亡的诱因,使有病变的黑色素细胞恢复正常代谢功能,白斑处毛囊外毛根鞘处的“休眠状态”黑素细胞被激活、分裂、增殖并沿着毛囊自下而上,自主移行,均匀弥散到黑色素脱失(白斑)部位;最后,双波球蛋白光化平衡技术,以其极强的穿透性、亲和性和抑制性可以快速激活功能低下的黑色素细胞,健康黑色素细胞成活,形成自主色素区,最后定居在表皮的基底层,形成黑素细胞储库,持久保持皮肤的正常肤色。并能使病变组织受损的末梢神经得以完全的修复,抑制患者体内异常的自体免疫反应,防止细胞免疫功能低下及体液免疫功能亢进。以其超强活性对机体进行双向免疫调节,改善人体各项功能指标,促使机体均衡,重新建立起皮肤免疫屏障,达到彻底克服白癜风的目的。
临床证实,患者接受治疗7-15天左右,皮肤颜色明显改变,患处白色皮肤向红色转变,向深红色转变,向暗褐色转变。治疗45天左右,在患处皮肤的汗毛孔处,出现针尖、米粒大小不等的色素斑点,并在患处皮肤呈现散在性分布,斑点逐步扩大面积。黑色素群将患处皮肤全部融合遮盖,皮肤永久恢复颜色。
微生态类黑色素活体技术统领世界远涉重洋造福世界
截止到发稿前,记者获悉,北京中鼎国际白癜风医学研究院全面启动了“CMMT白癜风青少年患者国际康复营”活动,活动当天就有德国、美国、英国、荷兰、希腊、俄罗斯、卢旺达等27个国家和地区的医疗机构与该院达成了国际医疗合作意向,届时微生态类黑色素活体技术体系(CMMT)将远涉重洋,造福世界白癜风患者。同时活动主办方还开通了专家咨询热线:010-51280111和官方网站:http://www.baidianfeng120.net接受白癜风患者的咨询。
同时该项活动针对国内患者中还将投入巨资面向青少年白癜风患者开展公益救助治疗活动,力争让更多的青少年患者能够在暑假结束前结束自己的白斑病生涯。北京中鼎(新科)国际白癜风医学研究院提醒广大青少年患者,暑期就诊高峰患者较多,来院前请先拨打咨询热线:010-51280111提前预约,同时也可以登录该院官网:http://www.baidianfeng120.net进行在线预约,以免长时间等候,给患者带来不必要的麻烦。
纵观传统的白癜风治疗发现,以往传统治疗白癜风的任意单一疗法对白癜风病情好转、缓解临床症状和有效杜绝白癜风复发起到了一定的作用,但都没能以全基因组关联分析研究(GWAS)为理论指导,而是绝对性的治疗。另外有些综合性治疗,因其规避了临床康复数据、使其多种疗法的结合性治疗并未达到到预期效果。这就是为什么有的患者接受治疗,白斑区好转,但在其他部位又不断有新斑生成;有一部分患者,接受治疗一段时间后,白斑部位明显康复,但不久后再次复发;另外一些患者尝试了各种办法,但怎么治疗都没有效果的根本原因所在。
白癜风治疗新技术
CMMT治疗白癜风将面向全球推广
2010年6月,继国际著名学术期刊《自然--遗传》发表了中国皮肤病遗传学研究团队的最新科研成果,首次在国际范围内确认白癜风为一种自身免疫性疾病这一学说之后,北京中鼎国际白癜风医学研究院正式对外公布了该院科研成果--微生态类黑色素活体技术体系(推广官方网站:http://www.baidianfeng120.net)。该科研项目是在国家“863”计划、“973”计划以及专项科研基金的资助下以全基因组关联分析研究(GWAS)为理论依据,由北京中鼎国际白癜风医学研究院和国内外多家国家重点医疗机构共同完成,该项目经过上万例中外白癜风患者临床验证,同时还密切关注患者白癜风治疗前后的基因状况,包括人类白细胞抗原(HLA)的2个等位基因,6号染色体的RNASET2、FGFR1OP和CCR6,10号染色体的ZMIZ1,治疗白癜风效果显著,在北京中鼎国际白癜风医学研究院正式推广。专家指出,微生态类黑色素活体技术(CMMT)可以实现HLA基因调节进而平衡人类免疫反应,从而优化皮肤黑素细胞发育和功能,在世界上首次解决了白癜风久治不愈、反复发作及遗传问题,实现了白癜风的完全治愈。这一科研成果的发布顿时在国际医学界掀起轩然大波,也必将会引领一次科学治疗白癜风的革命。据悉,目前该科研成功已成功提交国家专利局申请知识产权保护,同时还将通过正常渠道面向海内外进行推广。
微生态类黑色素活体技术统领世界
微生态类黑色素活体技术(CMMT)是一项活性黑色素生长体系,在特定的环境下,具有极强的黑色素膨胀繁殖能力,并且具有短期深度解决白癜风久治不愈、快速控制白斑蔓延扩散、有效预防白癜风间断复发、显著提高免疫,永久剔除白癜风等特点。同时还具有疗程短、费用低、安全性高、绿色无副作用等技术优势。因此,国际医学界曾预言,世界白癜风治疗将进入微生态治疗时代。
三大核心技术治愈白癜风
在实际治疗中,微生态类黑色素活体技术(CMMT)主要通过三大核心技术实现白癜风的最终彻底治愈:首先,药物分子水溶补给技术针对白癜风是由易感基因所引起的自身免疫性疾病这一根本原因,该技术体系能强力穿透并吞噬机体内的“免疫复合物”,掐断致病根源,并在24小时内保证持续有效作用于病变部位,时刻处于待命状态,为人体的健康站岗放哨;其次,类黑素细胞增殖技术亲和异常白细胞,抑制变异白细胞释放异常蛋白,能够在短时间内阻止白斑外延扩散。同时,修复带有基因生物链断裂的黑色素细胞,祛除导致黑色素细胞代谢紊乱凋亡的诱因,使有病变的黑色素细胞恢复正常代谢功能,白斑处毛囊外毛根鞘处的“休眠状态”黑素细胞被激活、分裂、增殖并沿着毛囊自下而上,自主移行,均匀弥散到黑色素脱失(白斑)部位;最后,双波球蛋白光化平衡技术,以其极强的穿透性、亲和性和抑制性可以快速激活功能低下的黑色素细胞,健康黑色素细胞成活,形成自主色素区,最后定居在表皮的基底层,形成黑素细胞储库,持久保持皮肤的正常肤色。并能使病变组织受损的末梢神经得以完全的修复,抑制患者体内异常的自体免疫反应,防止细胞免疫功能低下及体液免疫功能亢进。以其超强活性对机体进行双向免疫调节,改善人体各项功能指标,促使机体均衡,重新建立起皮肤免疫屏障,达到彻底克服白癜风的目的。
临床证实,患者接受治疗7-15天左右,皮肤颜色明显改变,患处白色皮肤向红色转变,向深红色转变,向暗褐色转变。治疗45天左右,在患处皮肤的汗毛孔处,出现针尖、米粒大小不等的色素斑点,并在患处皮肤呈现散在性分布,斑点逐步扩大面积。黑色素群将患处皮肤全部融合遮盖,皮肤永久恢复颜色。
微生态类黑色素活体技术统领世界远涉重洋造福世界
截止到发稿前,记者获悉,北京中鼎国际白癜风医学研究院全面启动了“CMMT白癜风青少年患者国际康复营”活动,活动当天就有德国、美国、英国、荷兰、希腊、俄罗斯、卢旺达等27个国家和地区的医疗机构与该院达成了国际医疗合作意向,届时微生态类黑色素活体技术体系(CMMT)将远涉重洋,造福世界白癜风患者。同时活动主办方还开通了专家咨询热线:010-51280111和官方网站:http://www.baidianfeng120.net接受白癜风患者的咨询。
同时该项活动针对国内患者中还将投入巨资面向青少年白癜风患者开展公益救助治疗活动,力争让更多的青少年患者能够在暑假结束前结束自己的白斑病生涯。北京中鼎(新科)国际白癜风医学研究院提醒广大青少年患者,暑期就诊高峰患者较多,来院前请先拨打咨询热线:010-51280111提前预约,同时也可以登录该院官网:http://www.baidianfeng120.net进行在线预约,以免长时间等候,给患者带来不必要的麻烦。
一天,时间管理专家为湿疹一群商学院学生讲课。他现场做了演示,给学生们留下了一生难以磨灭的印象。
站在那些高智商高学历的学生前面,他说:“我们来个小测验”,拿出一个一加仑白癜风治疗的广口瓶放在他面前的桌上。随后,他取出一白癜风堆拳头大小的石块,仔细地一块块放进玻璃瓶里。直到石块高出瓶口,再也放不下了,他问道:“瓶子满了吗?”所有学生应道:“满了”。时间管理专家反问:“真的?”他伸手从桌下拿出一桶砾石,倒了一些进去,并敲击玻璃瓶壁使砾石填满下面石块的间隙。“现在瓶子满了吗?”他第二次问道。但这白癜风医院一次学生有些明白了,“可能还没有”,一位学生应道。“很好!”专家说。他伸手从桌下硬皮病拿出一桶沙子,开始慢慢倒进玻璃瓶。沙子填满了石块和砾石的所有间隙。他又一次问学生:“瓶子满了吗?”“没满!”学生们大声说。他再一次说:“很好。皮炎”然后他拿过一壶水倒进玻璃瓶直到水面与瓶口平。抬头看着学生,问道:“这个例子说明什么?”一个银屑病心急的学生举手发言:“它告诉我们:无论你的时间表多么紧凑,如果你确实努力,你可以鱼鳞病做更多的事!”。“不!”,时间管理专家说,“那不是它真正的意思。这个例子牛皮癣医院告诉我们:如果你不是先放大石块,那你就再也不能牛皮癣专业医院把它放进瓶牛皮癣治疗子里。那么,什么是你生命中的大石块呢,与你爱的人共度时光,你的信仰,教育,梦想,或是和我一样,教育指导其他人?切切记得先去治疗白癜风处理这些”大石块“,否则,一辈子你都不能做到。”
那么,你正在阅读这篇短文,可曾试着问自己这个问题:我今生的“大石头”是什么?然后,请把它们先放进你人生的瓶子。
其它信息:
白癜风 牛皮癣 皮炎 湿疹 鱼鳞病 硬皮病 银屑病 白癜风治疗 牛皮癣专业医院 牛皮癣治疗 牛皮癣医院 治疗白癜风 白癜风医院
站在那些高智商高学历的学生前面,他说:“我们来个小测验”,拿出一个一加仑白癜风治疗的广口瓶放在他面前的桌上。随后,他取出一白癜风堆拳头大小的石块,仔细地一块块放进玻璃瓶里。直到石块高出瓶口,再也放不下了,他问道:“瓶子满了吗?”所有学生应道:“满了”。时间管理专家反问:“真的?”他伸手从桌下拿出一桶砾石,倒了一些进去,并敲击玻璃瓶壁使砾石填满下面石块的间隙。“现在瓶子满了吗?”他第二次问道。但这白癜风医院一次学生有些明白了,“可能还没有”,一位学生应道。“很好!”专家说。他伸手从桌下硬皮病拿出一桶沙子,开始慢慢倒进玻璃瓶。沙子填满了石块和砾石的所有间隙。他又一次问学生:“瓶子满了吗?”“没满!”学生们大声说。他再一次说:“很好。皮炎”然后他拿过一壶水倒进玻璃瓶直到水面与瓶口平。抬头看着学生,问道:“这个例子说明什么?”一个银屑病心急的学生举手发言:“它告诉我们:无论你的时间表多么紧凑,如果你确实努力,你可以鱼鳞病做更多的事!”。“不!”,时间管理专家说,“那不是它真正的意思。这个例子牛皮癣医院告诉我们:如果你不是先放大石块,那你就再也不能牛皮癣专业医院把它放进瓶牛皮癣治疗子里。那么,什么是你生命中的大石块呢,与你爱的人共度时光,你的信仰,教育,梦想,或是和我一样,教育指导其他人?切切记得先去治疗白癜风处理这些”大石块“,否则,一辈子你都不能做到。”
那么,你正在阅读这篇短文,可曾试着问自己这个问题:我今生的“大石头”是什么?然后,请把它们先放进你人生的瓶子。
其它信息:
白癜风 牛皮癣 皮炎 湿疹 鱼鳞病 硬皮病 银屑病 白癜风治疗 牛皮癣专业医院 牛皮癣治疗 牛皮癣医院 治疗白癜风 白癜风医院
一天,时间管理专家为湿疹一群商学院学生讲课。他现场做了演示,给学生们留下了一生难以磨灭的印象。
站在那些高智商高学历的学生前面,他说:“我们来个小测验”,拿出一个一加仑白癜风治疗的广口瓶放在他面前的桌上。随后,他取出一白癜风堆拳头大小的石块,仔细地一块块放进玻璃瓶里。直到石块高出瓶口,再也放不下了,他问道:“瓶子满了吗?”所有学生应道:“满了”。时间管理专家反问:“真的?”他伸手从桌下拿出一桶砾石,倒了一些进去,并敲击玻璃瓶壁使砾石填满下面石块的间隙。“现在瓶子满了吗?”他第二次问道。但这白癜风医院一次学生有些明白了,“可能还没有”,一位学生应道。“很好!”专家说。他伸手从桌下硬皮病拿出一桶沙子,开始慢慢倒进玻璃瓶。沙子填满了石块和砾石的所有间隙。他又一次问学生:“瓶子满了吗?”“没满!”学生们大声说。他再一次说:“很好。皮炎”然后他拿过一壶水倒进玻璃瓶直到水面与瓶口平。抬头看着学生,问道:“这个例子说明什么?”一个银屑病心急的学生举手发言:“它告诉我们:无论你的时间表多么紧凑,如果你确实努力,你可以鱼鳞病做更多的事!”。“不!”,时间管理专家说,“那不是它真正的意思。这个例子牛皮癣医院告诉我们:如果你不是先放大石块,那你就再也不能牛皮癣专业医院把它放进瓶牛皮癣治疗子里。那么,什么是你生命中的大石块呢,与你爱的人共度时光,你的信仰,教育,梦想,或是和我一样,教育指导其他人?切切记得先去治疗白癜风处理这些”大石块“,否则,一辈子你都不能做到。”
那么,你正在阅读这篇短文,可曾试着问自己这个问题:我今生的“大石头”是什么?然后,请把它们先放进你人生的瓶子。
其它信息:
牛皮癣 皮炎 湿疹 鱼鳞病 硬皮病 银屑病 白癜风治疗 牛皮癣专业医院 牛皮癣治疗 牛皮癣医院 治疗白癜风 白癜风医院
站在那些高智商高学历的学生前面,他说:“我们来个小测验”,拿出一个一加仑白癜风治疗的广口瓶放在他面前的桌上。随后,他取出一白癜风堆拳头大小的石块,仔细地一块块放进玻璃瓶里。直到石块高出瓶口,再也放不下了,他问道:“瓶子满了吗?”所有学生应道:“满了”。时间管理专家反问:“真的?”他伸手从桌下拿出一桶砾石,倒了一些进去,并敲击玻璃瓶壁使砾石填满下面石块的间隙。“现在瓶子满了吗?”他第二次问道。但这白癜风医院一次学生有些明白了,“可能还没有”,一位学生应道。“很好!”专家说。他伸手从桌下硬皮病拿出一桶沙子,开始慢慢倒进玻璃瓶。沙子填满了石块和砾石的所有间隙。他又一次问学生:“瓶子满了吗?”“没满!”学生们大声说。他再一次说:“很好。皮炎”然后他拿过一壶水倒进玻璃瓶直到水面与瓶口平。抬头看着学生,问道:“这个例子说明什么?”一个银屑病心急的学生举手发言:“它告诉我们:无论你的时间表多么紧凑,如果你确实努力,你可以鱼鳞病做更多的事!”。“不!”,时间管理专家说,“那不是它真正的意思。这个例子牛皮癣医院告诉我们:如果你不是先放大石块,那你就再也不能牛皮癣专业医院把它放进瓶牛皮癣治疗子里。那么,什么是你生命中的大石块呢,与你爱的人共度时光,你的信仰,教育,梦想,或是和我一样,教育指导其他人?切切记得先去治疗白癜风处理这些”大石块“,否则,一辈子你都不能做到。”
那么,你正在阅读这篇短文,可曾试着问自己这个问题:我今生的“大石头”是什么?然后,请把它们先放进你人生的瓶子。
其它信息:
牛皮癣 皮炎 湿疹 鱼鳞病 硬皮病 银屑病 白癜风治疗 牛皮癣专业医院 牛皮癣治疗 牛皮癣医院 治疗白癜风 白癜风医院
译文地址:http://www.csspeople.cn/archives/86
原文地址:http://www.smashingmagazine.com/2009/07/15/clever-png-optimization-techniques
引言
做为一名网页设计师你或许已经对 png 格式非常熟悉,它提供了完整的透明度,这是一种无损的,功能强大的图像格式。能够很好代替 gif 图像格式。但是绝大多数人认为它不可被压缩,带着这样的疑问我们来认真看完下面这篇文章。
每一种图像格式都有自己的优缺点,如果掌握了相关知识,在进行图像优化时能够针对不同图像格式进行相应处理,以得到高品质的图像和高压缩率,这是图像优化的关键所在。
png 被称为开源的 gif 图像格式,它们之间有很多相同的地方(如:索引色),但 png 在每一个方面都要强于 gif。它介绍了一些非常酷的功能,图像封装和压缩,但对网页设计师来说最重要的还是线性过滤(也称为“三角过滤”)。
什么是线性过滤?
这里来介绍下它的原理,假如我们有一张5*5像素水平渐变的图片,如下图(每个数字代表了一种颜色)
通过上图你会发现相同的颜色都是在垂直方向上扩展,而不是水平方向。这样的图片如果用 gif 格式将很难获得高压缩率,它只压缩水平方向扩展的颜色(图像尺寸越大,越能说明问题)。让我们看看线性过滤是怎样将这类图像压缩的:
以数字2为标识的每一行都经过了“Up过滤”,“Up过滤”向 png 解码器发送信息:“对于当前的像素,提取上方像素的值,并将其添加到当前值”。图中2-5行垂直方向都拥有相同的值。所以它们的值都是0,如果这样的图片越大那么压缩比率也越大。
在理想情况下,“Sub过滤”能提供更好的结果:
以数字1为标识的每一行都经过了“Sub过滤”,它发送信息给解码器:“当前像素提取左侧像素的值,添加到当前值”。例子中的值全为1,我想你大概也猜到这样的数据肯定能被有效的压缩。
线性过滤是非常重要的概念,尤其是在图片处理时可以针对过滤特点进行处理以便得到更好的过滤效果。有5种过滤器:None(无过滤),Sub(当前值减去左侧像素的值),Up(减去上方像素的值),Average(减去左侧和上方像素的平均值)和Paeth(替换上方,左边或者上方的左边像素值,并重新以Alan Paeth命名)。
通过比较下面的图片,我想大家应该都能明白“线性过滤”的魅力所在。
gif:2568字节
png:372字节
图片类型
png 是一种存储元数据信息的图片类型。如果你是 Photoshop 用户,你应该已经对 png8(索引图像)和 png24(真彩色图像)非常熟悉,如果你是 Fireworks 用户,或许已经知道 png32(真彩色透明图像)。但是 Photoshop 的 png24 格式也能存储真彩色透明图像,其实这些命名都不是官方的,所以在 png 图像格式说明面并不能找到这些概念,为了方便起见,在这次讨论中我们采用Photoshop 的命名方式。
png 可提供5种图片类型:灰度,真彩色,索引色,带alpha通道的灰度,带alpha通道的真彩色。遗憾的是 Photoshop 只能导出3种图像类型:带透明的索引颜色,真彩色,带透明度的真彩色。这就是为什么大家一直认为 Fireworks 是 Png 图像最好处理工具。其实不然,Fireworks 并没有足够的工具来处理导出的 png 图像,它仅仅是在导出时做一些微小的优化工作。
那还有没有更好的 png 压缩工具呢?答案是肯定的。OptiPNG 和 pngcrush 都是非常有效的工具,从本质上来看,这些工具主要做以下优化:
1. 1.选择最合适的图像类型(例如:如果图像中没有太多的颜色,真彩色图像会被转化为索引色图像)
2. 2.选择最合适的过滤方式
3. 3.选择最合适的压缩策略以及选择性的减少颜色深度
所有这些操作都不会影响到图像质量,却能减小 png 图像文件的大小,所以我强烈建议您每次保存 png 图像时都使用这些工具。
下面来介绍几种处理图像的方法,使图片更好的执行“线性过滤”。
1.色调分离
色调分离的优化方法已经广为人知。在 Photoshop 中打开样例图片,点击图层面板中的“”,并选择色调分离:
选择尽可能小的数值(通常40就够了)并保存图片:
原图:84K
压缩后:53K
优化原理:有效的减少色彩数,合并相似的颜色,创建出色调区域,更好的执行“线性过滤”,得到高压缩率。
这种方法有一定的局限性,尤其是优化的图片与 html 背景融合的情况下须慎用(蓝色为 html 背景)。
2.多余的透明
看看下面的图片:
75K
30K
两张图片都是用 Photoshop 导出的,而且没有经过任何优化。即使对比图中的每个像素,你都不会发现它们之间存在任何区别。但是为什么前者居然是后者的2.5倍大?
在探寻奥秘之前,你必须安装一个“Remove Transparency”的 Photoshop 插件才可以看到隐藏的细节。
在 Photoshop 中打开上面的两张图片,选择 Filer -> Photo Wiz -> Remove Trasparency。现在,你就可以看到保存在图像中的真实像素信息了:
这是怎么回事?其实很简单。带 alpha 通道的真彩色图像每个像素都用了4个字节来表示:RGBA。最后一个是 alpha 通道,控制该像素透明度:值为0则完全透明,255则完全不透明。这意味着每一个像素(任何RGB值)只要 alpha 值设为0就可以完全隐藏。但是这些 RGB 数据仍然存在,而且,它不利于 PNG 编码器对数据流进行有效的封装和编码。因
此,我们必须在导出图像前删除这些隐藏数据(例如上图中填充的黑色)。下面是一个比较便捷的方法:
1.在 Photoshop 中打开上面例子中第一张图片;
2.Ctrl+单击(Mac系统中为 ?+单击)图层面板中的缩略图,建立选区 -> 单击选择栏目 -> 选中反向。
3.切换到快速蒙版模式,按Q键:
4.我们已经建立了一个半透明图像的蒙版,但我们只需要完全透明的图像。图像 -> 调整 -> 阈值,并将阈值色阶滑到最右端,从而使选区完全透明:
5.退出快速蒙版模式(按Q键),并用黑色填充选区:
6.再次反选(选择 -> 反向),点击图层面板的“”图标,添加蒙版。
对于上述这些操作我们只须了解即可,因为png二次压缩工具内已经内置了该项操作。
3.透明分离
有时候因为图片中存在一些半透明像素,你不得不保存一个“重量级”的PNG-24文件。如果将此类图像一分为二,一部分是不透明像素,另一部分则为半透明,然后各以适当格式保存。比如你可以用 PNG-24 格式保存半透明像素,而不透明像素则用 PNG-8 甚至 JPEG 格式保存。这样操作下来在实际应用中你将会节省很大的图片流量。看一下实际案例:
PNG24 62K
1.在图层面板中 Ctrl+单击(或 ?+单击)图像缩略图建立选区:
2.在通道面板中选择“将选区存储为通道”:
3.取消(Ctrl+D 或 ?+D)选区,选择新建的通道,然后打开阈值(图像 -> 调整 -> 阈值)。将滑块尽量向右拖动:
4.我们已经为不透明的像素创建了蒙版。现在利用这个蒙版来分离原始图层。Ctrl+单击(或 ?+单击)alpha1通道,转到图层面板,选择原始图层层,打开图层 -> 新建 -> 通过剪切的图层。这样我们就分离出了不透明和半透明像素。
现在你需要将这两个文件分别存储为不同的文件格式:不透明像素保存为 PNG-8,半透明像素保存为 PNG-24。针对半透明像素图层你还可以使用色调分离技术让文件变得更小。
PNG-8 17KB
PNG-24 色调分离(色阶=35) 6KB
最终对比结果:
原图:63K
优化后:23KB
优化后的图片大小几乎只有原图的1/3,在原来的基础上能够节省2/3的流量。但是这种方法有一个明显的缺点:将一个图片分成两个图片,增加了重构人员的工作量,减少图片大小的同时却又增加了 Http 连接数。
这里只是介绍些优化方法,在实际应用中请大家多去尝试,发现不同方法的应用规律,总结出来大家一起分享!
在原文中Sergey Chikuyonok提到还会有第二部分的内容,将进一步探讨更高层次的技术,会谈到灰度模式的图像,使用更少的颜色,降低细节,并讨论进一步优化 PNG 的小技巧,以及 PNG 优化的实例。让我们一起期待下一篇大作。
原文地址:http://www.smashingmagazine.com/2009/07/15/clever-png-optimization-techniques
引言
做为一名网页设计师你或许已经对 png 格式非常熟悉,它提供了完整的透明度,这是一种无损的,功能强大的图像格式。能够很好代替 gif 图像格式。但是绝大多数人认为它不可被压缩,带着这样的疑问我们来认真看完下面这篇文章。
每一种图像格式都有自己的优缺点,如果掌握了相关知识,在进行图像优化时能够针对不同图像格式进行相应处理,以得到高品质的图像和高压缩率,这是图像优化的关键所在。
png 被称为开源的 gif 图像格式,它们之间有很多相同的地方(如:索引色),但 png 在每一个方面都要强于 gif。它介绍了一些非常酷的功能,图像封装和压缩,但对网页设计师来说最重要的还是线性过滤(也称为“三角过滤”)。
什么是线性过滤?
这里来介绍下它的原理,假如我们有一张5*5像素水平渐变的图片,如下图(每个数字代表了一种颜色)
通过上图你会发现相同的颜色都是在垂直方向上扩展,而不是水平方向。这样的图片如果用 gif 格式将很难获得高压缩率,它只压缩水平方向扩展的颜色(图像尺寸越大,越能说明问题)。让我们看看线性过滤是怎样将这类图像压缩的:
以数字2为标识的每一行都经过了“Up过滤”,“Up过滤”向 png 解码器发送信息:“对于当前的像素,提取上方像素的值,并将其添加到当前值”。图中2-5行垂直方向都拥有相同的值。所以它们的值都是0,如果这样的图片越大那么压缩比率也越大。
在理想情况下,“Sub过滤”能提供更好的结果:
以数字1为标识的每一行都经过了“Sub过滤”,它发送信息给解码器:“当前像素提取左侧像素的值,添加到当前值”。例子中的值全为1,我想你大概也猜到这样的数据肯定能被有效的压缩。
线性过滤是非常重要的概念,尤其是在图片处理时可以针对过滤特点进行处理以便得到更好的过滤效果。有5种过滤器:None(无过滤),Sub(当前值减去左侧像素的值),Up(减去上方像素的值),Average(减去左侧和上方像素的平均值)和Paeth(替换上方,左边或者上方的左边像素值,并重新以Alan Paeth命名)。
通过比较下面的图片,我想大家应该都能明白“线性过滤”的魅力所在。
gif:2568字节
png:372字节
图片类型
png 是一种存储元数据信息的图片类型。如果你是 Photoshop 用户,你应该已经对 png8(索引图像)和 png24(真彩色图像)非常熟悉,如果你是 Fireworks 用户,或许已经知道 png32(真彩色透明图像)。但是 Photoshop 的 png24 格式也能存储真彩色透明图像,其实这些命名都不是官方的,所以在 png 图像格式说明面并不能找到这些概念,为了方便起见,在这次讨论中我们采用Photoshop 的命名方式。
png 可提供5种图片类型:灰度,真彩色,索引色,带alpha通道的灰度,带alpha通道的真彩色。遗憾的是 Photoshop 只能导出3种图像类型:带透明的索引颜色,真彩色,带透明度的真彩色。这就是为什么大家一直认为 Fireworks 是 Png 图像最好处理工具。其实不然,Fireworks 并没有足够的工具来处理导出的 png 图像,它仅仅是在导出时做一些微小的优化工作。
那还有没有更好的 png 压缩工具呢?答案是肯定的。OptiPNG 和 pngcrush 都是非常有效的工具,从本质上来看,这些工具主要做以下优化:
1. 1.选择最合适的图像类型(例如:如果图像中没有太多的颜色,真彩色图像会被转化为索引色图像)
2. 2.选择最合适的过滤方式
3. 3.选择最合适的压缩策略以及选择性的减少颜色深度
所有这些操作都不会影响到图像质量,却能减小 png 图像文件的大小,所以我强烈建议您每次保存 png 图像时都使用这些工具。
下面来介绍几种处理图像的方法,使图片更好的执行“线性过滤”。
1.色调分离
色调分离的优化方法已经广为人知。在 Photoshop 中打开样例图片,点击图层面板中的“”,并选择色调分离:
选择尽可能小的数值(通常40就够了)并保存图片:
原图:84K
压缩后:53K
优化原理:有效的减少色彩数,合并相似的颜色,创建出色调区域,更好的执行“线性过滤”,得到高压缩率。
这种方法有一定的局限性,尤其是优化的图片与 html 背景融合的情况下须慎用(蓝色为 html 背景)。
2.多余的透明
看看下面的图片:
75K
30K
两张图片都是用 Photoshop 导出的,而且没有经过任何优化。即使对比图中的每个像素,你都不会发现它们之间存在任何区别。但是为什么前者居然是后者的2.5倍大?
在探寻奥秘之前,你必须安装一个“Remove Transparency”的 Photoshop 插件才可以看到隐藏的细节。
在 Photoshop 中打开上面的两张图片,选择 Filer -> Photo Wiz -> Remove Trasparency。现在,你就可以看到保存在图像中的真实像素信息了:
这是怎么回事?其实很简单。带 alpha 通道的真彩色图像每个像素都用了4个字节来表示:RGBA。最后一个是 alpha 通道,控制该像素透明度:值为0则完全透明,255则完全不透明。这意味着每一个像素(任何RGB值)只要 alpha 值设为0就可以完全隐藏。但是这些 RGB 数据仍然存在,而且,它不利于 PNG 编码器对数据流进行有效的封装和编码。因
此,我们必须在导出图像前删除这些隐藏数据(例如上图中填充的黑色)。下面是一个比较便捷的方法:
1.在 Photoshop 中打开上面例子中第一张图片;
2.Ctrl+单击(Mac系统中为 ?+单击)图层面板中的缩略图,建立选区 -> 单击选择栏目 -> 选中反向。
3.切换到快速蒙版模式,按Q键:
4.我们已经建立了一个半透明图像的蒙版,但我们只需要完全透明的图像。图像 -> 调整 -> 阈值,并将阈值色阶滑到最右端,从而使选区完全透明:
5.退出快速蒙版模式(按Q键),并用黑色填充选区:
6.再次反选(选择 -> 反向),点击图层面板的“”图标,添加蒙版。
对于上述这些操作我们只须了解即可,因为png二次压缩工具内已经内置了该项操作。
3.透明分离
有时候因为图片中存在一些半透明像素,你不得不保存一个“重量级”的PNG-24文件。如果将此类图像一分为二,一部分是不透明像素,另一部分则为半透明,然后各以适当格式保存。比如你可以用 PNG-24 格式保存半透明像素,而不透明像素则用 PNG-8 甚至 JPEG 格式保存。这样操作下来在实际应用中你将会节省很大的图片流量。看一下实际案例:
PNG24 62K
1.在图层面板中 Ctrl+单击(或 ?+单击)图像缩略图建立选区:
2.在通道面板中选择“将选区存储为通道”:
3.取消(Ctrl+D 或 ?+D)选区,选择新建的通道,然后打开阈值(图像 -> 调整 -> 阈值)。将滑块尽量向右拖动:
4.我们已经为不透明的像素创建了蒙版。现在利用这个蒙版来分离原始图层。Ctrl+单击(或 ?+单击)alpha1通道,转到图层面板,选择原始图层层,打开图层 -> 新建 -> 通过剪切的图层。这样我们就分离出了不透明和半透明像素。
现在你需要将这两个文件分别存储为不同的文件格式:不透明像素保存为 PNG-8,半透明像素保存为 PNG-24。针对半透明像素图层你还可以使用色调分离技术让文件变得更小。
PNG-8 17KB
PNG-24 色调分离(色阶=35) 6KB
最终对比结果:
原图:63K
优化后:23KB
优化后的图片大小几乎只有原图的1/3,在原来的基础上能够节省2/3的流量。但是这种方法有一个明显的缺点:将一个图片分成两个图片,增加了重构人员的工作量,减少图片大小的同时却又增加了 Http 连接数。
这里只是介绍些优化方法,在实际应用中请大家多去尝试,发现不同方法的应用规律,总结出来大家一起分享!
在原文中Sergey Chikuyonok提到还会有第二部分的内容,将进一步探讨更高层次的技术,会谈到灰度模式的图像,使用更少的颜色,降低细节,并讨论进一步优化 PNG 的小技巧,以及 PNG 优化的实例。让我们一起期待下一篇大作。
头次拜访,发现CSS Forest很是惊艳的一个小特色:鼠标选择的区块会变绿色 文字会变白色 研究了一下 原来是 *::selection{background-color:#80D31A;color:#FFFFFF;} 这一句 但是百度了很久都没有度出来*::selection 是啥意思 烦请GHOST指点一下啊 谢啦 很不错的效果 可惜ie8又不支持~~
说不清楚是什么,大家看我下面的举例吧!
如果一个css文件用的是css sprite,里面的所有图片都是在一个文件上的!
你们是把所都定义在一起然后background-position,还是每个样式都background:url(images/pic.png) no-repeat 0 0;
第一种例如:
.div1 ,
.div2,
h1,h2, {background:url(images/pic.png) no-repeat 0 0;}
然后在下面需要的时候再:
.div1 {background-position:0 -100px;}
.div2 {background-position:0 -300px;}
h1 {background-position:0 -400px;}
h2 {background-position:0 -500px;}
还是第二种:
.div1 {background:url(images/pic.png) no-repeat 0 -100px;}
.div2 {background:url(images/pic.png) no-repeat 0 -300px;}
h1 {background:url(images/pic.png) no-repeat 0 -400px;}
h2 {background:url(images/pic.png) no-repeat 0 -500px;}
你是用第一种还是第二种呢?为什么?
还是有第三种的也可以探讨!
如果一个css文件用的是css sprite,里面的所有图片都是在一个文件上的!
你们是把所都定义在一起然后background-position,还是每个样式都background:url(images/pic.png) no-repeat 0 0;
第一种例如:
.div1 ,
.div2,
h1,h2, {background:url(images/pic.png) no-repeat 0 0;}
然后在下面需要的时候再:
.div1 {background-position:0 -100px;}
.div2 {background-position:0 -300px;}
h1 {background-position:0 -400px;}
h2 {background-position:0 -500px;}
还是第二种:
.div1 {background:url(images/pic.png) no-repeat 0 -100px;}
.div2 {background:url(images/pic.png) no-repeat 0 -300px;}
h1 {background:url(images/pic.png) no-repeat 0 -400px;}
h2 {background:url(images/pic.png) no-repeat 0 -500px;}
你是用第一种还是第二种呢?为什么?
还是有第三种的也可以探讨!
有股强烈的欲望要深入了解有关前端部署
有无相关的资料共享
谢谢!
有无相关的资料共享
谢谢!
《Google Chrome Browser CSS Selector Suppor》
原文地址:http://www.evotech.net/blog/2008/09/google-chrome-browser-css-selector-support/
原文地址:http://www.evotech.net/blog/2008/09/google-chrome-browser-css-selector-support/
今天在blueidea里看了一篇关于css优先级的帖子,我感觉不错,就收藏起来了!
css优先级的四大原则:
原则一: 继承不如指定
如果某样式是继承来的永远不如具体指定的优先级高。
例子1:
CODE:
<style type="text/css">
<!--
*{font-size:20px}
.class3{ font-size: 12px; }
-->
</style>
<span class="class3">我是多大字号?</span>
运行结果:.class3{ font-size: 12px; }
例子2:
CODE:
<style type="text/css">
<!--
#id1 #id2{font-size:20px}
.class3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
运行结果:.class3{ font-size: 12px; }
注意:后面的几大原则都是建立在“指定”的基础上的。
原则二: #ID > .class > 标签选择符
例子:
CODE:
<style type="text/css">
<!--
#id3 { font-size: 25px; }
.class3{ font-size: 18px; }
span{font-size:12px}
-->
</style>
<span id="id3" class="class3">我是多大字号?</span>
运行结果:#id3 { font-size: 25px; }
原则三:越具体越强大。
解释:当对某个元素的CSS选择符样式定义的越具体,层级越明确,该定义的优先级就越高。
CODE:
<style type="text/css">
<!--
.class1 .class2 .class3{font-size: 25px;}
.class2 .class3{font-size:18px}
.class3 { font-size: 12px; }
-->
</style>
<div class="class1">
<p class="class2"> <span class="class3">我是多大字号?</span> </p>
</div>
运行结果:.class1 .class2 .class3{font-size: 25px;}
原则四:标签#id >#id ; 标签.class > .class
上面这条原则大家应该也都知道,看例子
CODE:
<style type="text/css">
<!--
span#id3{font-size:18px}
#id3{font-size:12px}
span.class3{font-size:18px}
.class3{font-size:12px}
-->
</style>
<span id="id3">我是多大字号?</span>
<span class="class3">我是多大字号?</span>
运行结果:span#id3{font-size:18px} | span.class3{font-size:18px}
很多人会有这样的疑问,为什么不把这个原则四归入原则一形成:
【 标签#ID > #ID > 标签.class > .class > 标签选择符 > 通配符 】 呢?或者将 “标签.class” 看作多更为具体的 “.class” 从而归入原则二呢?后面我将解答各位的疑惑,这就涉及到CSS的解析规律---------这四大原则间也是有优先级的,是不是有些糊涂了?别急,继续看。
*四大原则的权重
相信很多人都知道上面的四大原则,不要以为知道了这四大原则就能分辨css中那条代码是起作用的,不信?那你5秒内能肯定的知道下面这段代码,测试中的文字的字号吗?
CODE:
<style type="text/css">
<!--
.class1 p#id2 .class3{font-size:25px}
div .class2 span#id3{font-size:18px}
#id1 .class3{font-size:14px}
.class1 #id2 .class3{font-size:12px}
#id1 #id2{font-size:10px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
为了大家方便阅读,我去掉了一些代码。
四大原则的权重就是: 原则一 > 原则二 > 原则三 > 原则四
解释:
首先遵循原则一
有指定开始使用下面的原则,无指定则继承离他最近的定义。
然后开始原则二
1、比较最高优先级的选择符
例子:
CODE:
<style type="text/css">
<!--
#id3{font-size:18px}
.class1 .class2 .class3{font-size:12px} /* 描述的再具体也不起作用 --- 原则二 */
.class3{font-size:18px}
div p span{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
运行结果:#id3{font-size:18px}
删掉上面CSS中的前两行可以得出,如果没有最高级别的#ID会寻找.class 即使后面的CSS按照“原则二” 描述的再具体也无法突破原则一。
2、如果两条CSS的如果最高选择符优先级一样,则比较他们的数量
例子:
CODE:
<style type="text/css">
<!--
.class1 #id3{font-size:12px}
.class1 .class2 #id3{font-size:14px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
运行结果:.class1 .class2 #id3{font-size:14px}
3、如果最高选择符级别和数量都一样,则按照原则二比较他们下一级,以此类推。
例子1:
CODE:
<style type="text/css">
<!--
#id1 .class2 .class3{font-size:14px}
div .class2 #id3{font-size:12px
}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
运行结果:#id1 .class2 .class3{font-size:14px}
*最高级选择符的位置没有高下之分,论证:
<?php CODE:
<style type="text/css">
<!--
#id1 .class2 .class3{font-size:18px}
.class1 #id2 .class3{font-size:14px}
.class1 .class2 #id3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
上例中更换3条CSS的先后可以得出,哪条位于最后,哪条起作用。说明他们的级别一样,后面的将覆盖前面的。
*将原则四归入原则二的不合理性,论证:
CODE:
<style type="text/css">
<!--
.class1 span#id3{font-size:14px}
#id1 .class2 .class3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
#id1 .class2 .class3{font-size:12px}
可以看到span#id3并不比#id1高出一个级别。
无结果开始原则三
如果比较结果,选择符从最高级开始都对应,级别上的数量也相同,则开始比较谁更具体。
例子:
CODE:
<style type="text/css">
<!--
#id1 .class2 span{font-size:14px}
.class1 #id3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
#id1 .class2 span{font-size:14px}
当然也可以理解为在原则二层层比较中“少一个层级的样式”,缺少的那个层级没有“层级较多的样式”多出的那个层级的级别高。(绕口令)
*将原则四归入原则三的不合理性,论证:
CODE:
<style type="text/css">
<!--
.class2 .class3{font-size:14px}
span.class3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
上例中可以看出,如果将原则四并入原则三,将span.class3看作两层,那么应该和.class2 .class3层级一样多,那么应该显示12px,而事实不是这样。
最终对决原则四
如果还分不出结果,则开始原则四的比较:
例子1:
CODE:
<style type="text/css">
<!--
.class1 p.class2 .class3{font-size:14px}
.class1 .class2 .class3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
.class1 p.class2 .class3{font-size:14px}
css优先级的四大原则:
原则一: 继承不如指定
如果某样式是继承来的永远不如具体指定的优先级高。
例子1:
CODE:
<style type="text/css">
<!--
*{font-size:20px}
.class3{ font-size: 12px; }
-->
</style>
<span class="class3">我是多大字号?</span>
运行结果:.class3{ font-size: 12px; }
例子2:
CODE:
<style type="text/css">
<!--
#id1 #id2{font-size:20px}
.class3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
运行结果:.class3{ font-size: 12px; }
注意:后面的几大原则都是建立在“指定”的基础上的。
原则二: #ID > .class > 标签选择符
例子:
CODE:
<style type="text/css">
<!--
#id3 { font-size: 25px; }
.class3{ font-size: 18px; }
span{font-size:12px}
-->
</style>
<span id="id3" class="class3">我是多大字号?</span>
运行结果:#id3 { font-size: 25px; }
原则三:越具体越强大。
解释:当对某个元素的CSS选择符样式定义的越具体,层级越明确,该定义的优先级就越高。
CODE:
<style type="text/css">
<!--
.class1 .class2 .class3{font-size: 25px;}
.class2 .class3{font-size:18px}
.class3 { font-size: 12px; }
-->
</style>
<div class="class1">
<p class="class2"> <span class="class3">我是多大字号?</span> </p>
</div>
运行结果:.class1 .class2 .class3{font-size: 25px;}
原则四:标签#id >#id ; 标签.class > .class
上面这条原则大家应该也都知道,看例子
CODE:
<style type="text/css">
<!--
span#id3{font-size:18px}
#id3{font-size:12px}
span.class3{font-size:18px}
.class3{font-size:12px}
-->
</style>
<span id="id3">我是多大字号?</span>
<span class="class3">我是多大字号?</span>
运行结果:span#id3{font-size:18px} | span.class3{font-size:18px}
很多人会有这样的疑问,为什么不把这个原则四归入原则一形成:
【 标签#ID > #ID > 标签.class > .class > 标签选择符 > 通配符 】 呢?或者将 “标签.class” 看作多更为具体的 “.class” 从而归入原则二呢?后面我将解答各位的疑惑,这就涉及到CSS的解析规律---------这四大原则间也是有优先级的,是不是有些糊涂了?别急,继续看。
*四大原则的权重
相信很多人都知道上面的四大原则,不要以为知道了这四大原则就能分辨css中那条代码是起作用的,不信?那你5秒内能肯定的知道下面这段代码,测试中的文字的字号吗?
CODE:
<style type="text/css">
<!--
.class1 p#id2 .class3{font-size:25px}
div .class2 span#id3{font-size:18px}
#id1 .class3{font-size:14px}
.class1 #id2 .class3{font-size:12px}
#id1 #id2{font-size:10px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
为了大家方便阅读,我去掉了一些代码。
四大原则的权重就是: 原则一 > 原则二 > 原则三 > 原则四
解释:
首先遵循原则一
有指定开始使用下面的原则,无指定则继承离他最近的定义。
然后开始原则二
1、比较最高优先级的选择符
例子:
CODE:
<style type="text/css">
<!--
#id3{font-size:18px}
.class1 .class2 .class3{font-size:12px} /* 描述的再具体也不起作用 --- 原则二 */
.class3{font-size:18px}
div p span{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
运行结果:#id3{font-size:18px}
删掉上面CSS中的前两行可以得出,如果没有最高级别的#ID会寻找.class 即使后面的CSS按照“原则二” 描述的再具体也无法突破原则一。
2、如果两条CSS的如果最高选择符优先级一样,则比较他们的数量
例子:
CODE:
<style type="text/css">
<!--
.class1 #id3{font-size:12px}
.class1 .class2 #id3{font-size:14px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
运行结果:.class1 .class2 #id3{font-size:14px}
3、如果最高选择符级别和数量都一样,则按照原则二比较他们下一级,以此类推。
例子1:
CODE:
<style type="text/css">
<!--
#id1 .class2 .class3{font-size:14px}
div .class2 #id3{font-size:12px
}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
运行结果:#id1 .class2 .class3{font-size:14px}
*最高级选择符的位置没有高下之分,论证:
<?php CODE:
<style type="text/css">
<!--
#id1 .class2 .class3{font-size:18px}
.class1 #id2 .class3{font-size:14px}
.class1 .class2 #id3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
上例中更换3条CSS的先后可以得出,哪条位于最后,哪条起作用。说明他们的级别一样,后面的将覆盖前面的。
*将原则四归入原则二的不合理性,论证:
CODE:
<style type="text/css">
<!--
.class1 span#id3{font-size:14px}
#id1 .class2 .class3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
#id1 .class2 .class3{font-size:12px}
可以看到span#id3并不比#id1高出一个级别。
无结果开始原则三
如果比较结果,选择符从最高级开始都对应,级别上的数量也相同,则开始比较谁更具体。
例子:
CODE:
<style type="text/css">
<!--
#id1 .class2 span{font-size:14px}
.class1 #id3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
#id1 .class2 span{font-size:14px}
当然也可以理解为在原则二层层比较中“少一个层级的样式”,缺少的那个层级没有“层级较多的样式”多出的那个层级的级别高。(绕口令)
*将原则四归入原则三的不合理性,论证:
CODE:
<style type="text/css">
<!--
.class2 .class3{font-size:14px}
span.class3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
上例中可以看出,如果将原则四并入原则三,将span.class3看作两层,那么应该和.class2 .class3层级一样多,那么应该显示12px,而事实不是这样。
最终对决原则四
如果还分不出结果,则开始原则四的比较:
例子1:
CODE:
<style type="text/css">
<!--
.class1 p.class2 .class3{font-size:14px}
.class1 .class2 .class3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字号?</span> </p>
</div>
.class1 p.class2 .class3{font-size:14px}
原文地址:http://www.cssforest.org/blog/index.php?id=52
今天在群(CSS森林:30247792)里讨论了border的样式写法,发现border的写法还真是灵活,做了一下总结,希望对大家有用:
<?php border : border-width || border-style || border-color ?>
复制代码
border是一个复合的属性,它可以同时定义上右下左四个边框,当四个边都是同个样式时可以使用,如:
<?php border:1px solid #FF00FF
复制代码
这是最简单的应用,如果四个边的样式不是相同的怎办?一般会有下面几种情况,写法差不多:
/*边框样式、宽度、颜色都不同*/
.div1{
border-top:1px solid #FF00FF;
border-right:2px solid #0000FF;
border-bottom:1px double #FF00FF;
border-left:1px solid #FF0000;
}
.div2{
border-width:1px 2px 1px 1px;
border-style:solid solid double solid;
border-color:#FF00FF #0000FF #FF00FF #FF0000;
}
/*边框样式不同*/
.div1{
border-top:1px solid #FF00FF;
border-right:1px solid #FF00FF;
border-bottom:1px double #FF00FF;
border-left:1px solid #FF00FF;
}
.div2{
border:1px #FF00FF;
border-style:solid solid double solid;
}
/*边框宽度不同*/
.div1{
border-top:1px solid #FF00FF;
border-right:2px solid #FF00FF;
border-bottom:1px solid #FF00FF;
border-left:1px solid #FF00FF;
}
.div2{
border-width:1px 2px 1px 1px;
border:solid #FF00FF;
}
/*边框颜色不同*/
.div1{
border-top:1px solid #FF00FF;
border-right:1px solid #0000FF;
border-bottom:1px solid #FF00FF;
border-left:1px solid #FF0000;
}
.div2{
border:1px solid;
border-color:#FF00FF #0000FF #FF00FF #FF0000;
}
复制代码
还有就是有些边框是没有的,比如只有底边:
.div1{
/*错误的*/
border:none;
border-bottom:1px solid #FF00FF;
}
.div2{
border:1px #FF00FF;
border-style:none none solid;
}
复制代码
注意:
如果提供全部四个参数值,将按上-右-下-左的顺序作用于四边。
如果只提供一个,将用于全部的四条边。
如果提供两个,第一个用于上-下,第二个用于左-右。
如果提供三个,第一个用于上,第二个用于左-右,第三个用于下。
今天在群(CSS森林:30247792)里讨论了border的样式写法,发现border的写法还真是灵活,做了一下总结,希望对大家有用:
<?php border : border-width || border-style || border-color ?>
border是一个复合的属性,它可以同时定义上右下左四个边框,当四个边都是同个样式时可以使用,如:
<?php border:1px solid #FF00FF
这是最简单的应用,如果四个边的样式不是相同的怎办?一般会有下面几种情况,写法差不多:
/*边框样式、宽度、颜色都不同*/
.div1{
border-top:1px solid #FF00FF;
border-right:2px solid #0000FF;
border-bottom:1px double #FF00FF;
border-left:1px solid #FF0000;
}
.div2{
border-width:1px 2px 1px 1px;
border-style:solid solid double solid;
border-color:#FF00FF #0000FF #FF00FF #FF0000;
}
/*边框样式不同*/
.div1{
border-top:1px solid #FF00FF;
border-right:1px solid #FF00FF;
border-bottom:1px double #FF00FF;
border-left:1px solid #FF00FF;
}
.div2{
border:1px #FF00FF;
border-style:solid solid double solid;
}
/*边框宽度不同*/
.div1{
border-top:1px solid #FF00FF;
border-right:2px solid #FF00FF;
border-bottom:1px solid #FF00FF;
border-left:1px solid #FF00FF;
}
.div2{
border-width:1px 2px 1px 1px;
border:solid #FF00FF;
}
/*边框颜色不同*/
.div1{
border-top:1px solid #FF00FF;
border-right:1px solid #0000FF;
border-bottom:1px solid #FF00FF;
border-left:1px solid #FF0000;
}
.div2{
border:1px solid;
border-color:#FF00FF #0000FF #FF00FF #FF0000;
}
还有就是有些边框是没有的,比如只有底边:
.div1{
/*错误的*/
border:none;
border-bottom:1px solid #FF00FF;
}
.div2{
border:1px #FF00FF;
border-style:none none solid;
}
注意:
如果提供全部四个参数值,将按上-右-下-左的顺序作用于四边。
如果只提供一个,将用于全部的四条边。
如果提供两个,第一个用于上-下,第二个用于左-右。
如果提供三个,第一个用于上,第二个用于左-右,第三个用于下。
原文地址:http://www.catswhocode.com/blog/10-astonishing-css-hacks-and-techniques
1 - Cross browser inline block
<style>
li {
width: 200px;
min-height: 250px;
border: 1px solid #000;
display: -moz-inline-stack;
display: inline-block;
margin: 5px;
zoom: 1;
*display: inline;
_height: 250px;
}
</style>
<ul>
<li>
<div>
<h4>This is awesome</h4>
<img src="http://farm4.static.flickr.com/3623/3279671785_d1f2e665b6_s.jpg" alt="lobster" width="75" height="75"/>
</div>
</li>
<li>
<!-- etc ... -->
</li>
</ul>
Source: Cross browser inline-block property
2 - Disable Textarea resizing for Safari
/ * Supports: car, both, horizontal, none, vertical * /
textarea }
resize: none;
}
3 - Cross browser rounded corners
.rounded{
-moz-border-radius: 5px; /* Firefox */
-webkit-border-radius: 5px; /* Safari */
}
Source: Border-radius: create rounded corners with CSS!
4 - Cross browser min-height property
<?php selector {
min-height:500px;
height:auto !important;
height:500px;
}
Source: Min-height fast hack
5 - Image Rollover Borders That Do Not Change Layout
#example-one a img, #example-one a {
border: none;
overflow: hidden;
float: left;
}
#example-one a:hover {
border: 3px solid black;
}
#example-one a:hover img {
margin: -3px;
}
Source: Image rollovers that do not change layout
6 - Cross browser transparency
.transparent_class {
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
Source: CSS transparency settings for all browsers
7 - Lighbox in pure CSS: No Javascript needed!
Source: Lightbox effect in pure CSS: No javascript needed!
8 - Cross browser pure css tooltips
<style type="text/css">
a:hover {
background:#ffffff;
text-decoration:none;} /*BG color is a must for IE6*/
a.tooltip span {
display:none;
padding:2px 3px;
margin-left:8px;
width:130px;
}
a.tooltip:hover span{
display:inline;
position:absolute;
background:#ffffff;
border:1px solid #cccccc;
color:#6c6c6c;
}
</style>
Easy <a class="tooltip" href="#">Tooltip<span>This is the crazy little Easy Tooltip Text.</span></a>.
Source: Easy CSS Tooltip
9 - Set color of selected text (Firefox/Safari only)
[img]http://www.cats
whocode.com/blog/wp-content/uploads/2009/03/text-selection.png[/img]
::selection {
background: #ffb7b7; /* Safari */
}
::-moz-selection {
background: #ffb7b7; /* Firefox */
}
Source: Use CSS to Override Default Text Selection Color
10 - Add File Type Icons next to your links
<?php a[href^="http://"] {
background:transparent url(../images/external.png) center right no-repeat;
display:inline-block;
padding-right:15px;
}
Source: Add File Type Icons next to your links with CSS
1 - Cross browser inline block
<style>
li {
width: 200px;
min-height: 250px;
border: 1px solid #000;
display: -moz-inline-stack;
display: inline-block;
margin: 5px;
zoom: 1;
*display: inline;
_height: 250px;
}
</style>
<ul>
<li>
<div>
<h4>This is awesome</h4>
<img src="http://farm4.static.flickr.com/3623/3279671785_d1f2e665b6_s.jpg" alt="lobster" width="75" height="75"/>
</div>
</li>
<li>
<!-- etc ... -->
</li>
</ul>
2 - Disable Textarea resizing for Safari
/ * Supports: car, both, horizontal, none, vertical * /
textarea }
resize: none;
}
.rounded{
-moz-border-radius: 5px; /* Firefox */
-webkit-border-radius: 5px; /* Safari */
}
4 - Cross browser min-height property
<?php selector {
min-height:500px;
height:auto !important;
height:500px;
}
5 - Image Rollover Borders That Do Not Change Layout
#example-one a img, #example-one a {
border: none;
overflow: hidden;
float: left;
}
#example-one a:hover {
border: 3px solid black;
}
#example-one a:hover img {
margin: -3px;
}
6 - Cross browser transparency
.transparent_class {
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
7 - Lighbox in pure CSS: No Javascript needed!
Source: Lightbox effect in pure CSS: No javascript needed!
8 - Cross browser pure css tooltips
<style type="text/css">
a:hover {
background:#ffffff;
text-decoration:none;} /*BG color is a must for IE6*/
a.tooltip span {
display:none;
padding:2px 3px;
margin-left:8px;
width:130px;
}
a.tooltip:hover span{
display:inline;
position:absolute;
background:#ffffff;
border:1px solid #cccccc;
color:#6c6c6c;
}
</style>
Easy <a class="tooltip" href="#">Tooltip<span>This is the crazy little Easy Tooltip Text.</span></a>.
9 - Set color of selected text (Firefox/Safari only)
[img]http://www.cats
whocode.com/blog/wp-content/uploads/2009/03/text-selection.png[/img]
::selection {
background: #ffb7b7; /* Safari */
}
::-moz-selection {
background: #ffb7b7; /* Firefox */
}
10 - Add File Type Icons next to your links
<?php a[href^="http://"] {
background:transparent url(../images/external.png) center right no-repeat;
display:inline-block;
padding-right:15px;
}

搜索
英汉词典
帮助文档
Shuffle 首页
Remix 首页
Google Custom Search
最新注册会员
友情连接

GF









































