[CSS Hack] display: inline-block hack for IE6, IE7 & FF2

源地址: http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/

[CSS Hack] 水平居中和垂直居中

1、水平居中

水平居中在现代浏览器中的实现非常简单,只要使用 margin:0 auto; 即可轻松实现,但是在早期浏览器(IE6等)中,需要使用在父元素中使用text-align:center;属性,然后在需要居中的元素中使用text-align:left;即可;

这是因为在Internet Explorer中text-align属性是可继承的,所以我们需要恢复为我们习惯的左对齐浏览习惯。

2、垂直居中

中国解决钓鱼岛问题的关键不在动用武力而在于加快国内政治体制改革

此文是转自天涯的一篇文章,仔细读来,我发现作者对当前问题的分析很中要害,看来这位作者确实是一位还可以独立思考之人,能够站在一定的高度理性地分析问题,指出解决问题的关键。

在抗日热情高涨的今天,大家兴奋的头脑不一定能受得住这盆“冷水”的相对温度,但我还是希望朋友们能仔细把文章看完,之后安静地做一下自我反省,当然,如果当政者能考虑到文章所提及的内容,并能接受和理解,钓鱼岛的问题将会是一个容易解决的问题,至少在以后中国再也不会出现类似钓鱼岛这样的问题。下面是转发的文章全文:

昨日,我作文“中国绝不应抱有武力解决钓鱼岛争端的危险想法”,指出对日动武的危险性,但并未说明如何解决钓鱼岛争端。今天试为大家分析。

钓岛风波牵动全国人民的敏感神经,官方发言抗议,民间YX砸车,忙的不亦乐乎。但在一片喊打喊杀声中却难以掩饰中国人对于钓鱼岛的焦灼和无力感,不知在好整以暇、占据优势的日方面前,怎样才能合理解决这一老大难问题。其实细细梳理,解决钓鱼岛问题的关键不在军事上战胜攻取,封狼居胥,也不在外交上折冲樽俎,纵横捭阖,而在修明内政,加快国家政治体制改革,实现国内和解和宪政秩序。

中国要想解决钓鱼岛问题,存在着理想和现实间的五大矛盾:

一、宣传导向与历史事实的矛盾。

中国人对于钓鱼岛问题的观点基本上来自于政府宣传的塑造,而这一以“钓鱼岛是中国固有领土”为目的的塑造其实颇多盲点和扭曲,正是由于得不到完整、全面的历史事实,才造成中国人对于钓岛问题有很多不合理的理解和想象,反过来捆绑了政府的手脚。对比史实,中国最先发现钓鱼岛不假,但其依据都在遥远的古代。试举几例。细考中方资料,中文中文文献对钓鱼岛的记载,最晚到1871年的《重纂福建通志》;最后的巡视记录在1722年的《台海使槎录》,以后即无记载可言。而日方1885年“发现”钓鱼岛是个“无人岛”,这中间确实有个时间差。此其一。中方言之凿凿,称钓鱼岛是在甲午战后,《马关条约》中作为台湾附属岛屿被割让的。其实钓鱼岛被日占和甲午战争确有关系,因日方下定占岛决心,的确是考虑到中方大败之时无力提出反对。但钓鱼岛确实不是《马关条约》割让的,因《马关条约》所定交割范围并不包括钓鱼岛。如果当时清方稍稍用心,将钓鱼岛列入《马关条约》,或对日方超出《马关条约》占据钓鱼岛提出抗议,则没有后来的麻烦。可惜清方未有此举。现在中国将钓鱼岛和《马关条约》联在一起,不过是为了证明它应在二战后由中国收回,可惜这中间并非没有瑕疵。此其二。另一问题是,中方在宣传中从1945年二战结束马上跳到1951年的《旧金山和约》,对中间这6年的事情语焉不详。其实,既然台湾澎湖作为《马关条约》割让地在二战后马上收回,何以钓鱼岛没有收回?就是因为钓鱼岛实际上不在《马关条约》内,而国共两党忙于内战,也无从了解,更无暇顾及钓鱼岛问题,事实上把它当做冲绳的一部分看待。现在宣传中反复提及中国大陆“坚决反对《旧金山和约》”,给人的印象是中国大陆反对美国托管钓鱼岛。其实不然,大陆当时的抗议根本没有提及钓鱼岛的问题,反对“冲绳托管”,其目的反而是要美国将冲绳归还日本。这是当时反美的大背景下为了“联日抗美”而做的决定。两岸政府对钓鱼岛完全遗忘的状况一直持续到70年代,海外留学生发起保钓运动才让他们如梦初醒,倒逼两岸政府跟进“拿香跟着拜”。所有这些造成了今日中国在钓鱼岛问题上的被动状态。

当前的宣传对于与中国不利的事实采取完全屏蔽的态度,把中国描叙得完全无辜,美、日则是恶贯满盈,之所以如此就是因为如果客观描叙的话,就要牵扯到追究当时政府颟顸无能的责任的问题。而这一问题在政治体制改革前,由于牵动统治合法性是不可能的,又由于新闻不独立不自由,由此造成中国在宣传导向与历史事实上的矛盾。如果政府能加快政治体制改革,取消对于日本的“妖魔化”宣传,向民众真实客观的披露事实真相,引导国民理性看待钓岛争端,为可能的妥协或者国际司法裁定做好心理准备,则为政府解了套,这才是长久之计。

二、民族情绪与现实外交的矛盾。

90年代以来,中国民族主义情绪上升得到官方或明或暗的支持,使得对外抗议成为中国人唯一的情绪宣泄点。几次没有受到禁止的YX,分别发生在1999年、2008年和2012年,矛头都是向外的,这当然不是偶然。可是民族主义情绪过分高涨,而国家外交还要讲法律、讲道理、讲策略,形成了很大矛盾。这次钓岛风波,除了砸车之外,还有人打出“宁可大陆不长草,也要收复钓鱼岛”“哪怕华夏遍地坟,也要杀光日本人”“血洗东京”之类骇人听闻的大字横幅招摇过市,说这是法西斯的兆头也不为过。国内呼吁理性对待钓鱼岛争端的人士动辄被扣上亲日、汉奸的帽子,民意绑架外交的征兆日益明显。如果不改变利用民族主义支撑合法性的做法,民族情绪与现实外交的矛盾就会不断扩大,不排除玩火自焚的可能。

三、领土诉求与国际形象的矛盾。

中国的国际环境并不理想。如果说以前中国受“欺负”是因为落后就要挨打的话,那在今天中国“崛起”,GDP坐二望一的情况下,中国在国际上还是处处吃瘪,就不好解释了。有人从不反省自己的问题,把中国和国际社会的矛盾一概归为阴谋论。其实任何阴谋不可能忽悠几十亿人,更简单的解释是中国的威权体制和国际社会格格不入。不论中国人多么的无奈和不理解,事实就是,中国在国际上的形象远远低于二战战败国日本。日本作为一个民主、发达的国家,其成就、其产品、其文化在国际上有口皆碑;而中国,再有钱也只是个暴发户的形象,即使在第三世界也是如此。由于国际形象不佳,中国在国际领土争端中得不到什么支持,而与中国有矛盾的印度、东盟、日本等国则可同声相应同气相求。

当然就算以上几国,即使合起来也未必是中国的对手,但更重要的一点是,中国的威权制度把唯一超级大国美国逼到了日本那一边。美国在二战后本来希望帮助中国实现民主和繁荣,从而作为美国在亚洲抵制苏联扩张的帮手,同时压制日本的复兴。奈何天不从人愿,中国历史性的倒向共产主义,从此和美国割袍断义。由于《日美安保条约》的存在,更由于美国具有支持民主和自由的义务,美国必然不可能帮助中国得到钓鱼岛,任何中日之间的领土争端,客观上就会变成“民主”和“集权”的对决。美国作为世界民主的堡垒,只能站在日本一边。鉴于在今后几十年中美国都仍将是世界第一大国,这对中国按照自己的意志解决钓鱼岛问题造成了不可逾越的障碍。因此,中国只有接受普世价值,进行政治体制改革,实行民主宪政,和美国与其他民主国家在共同价值观的基础上联合起来,到那时美国就会像英国废除英日同盟那样废除《日美安保条约》,成为中国解决钓鱼岛问题的助力而不是阻力。毕竟中国比日本大得多,孰轻孰重美国是分得清的。

四、一致对外与分裂国家的矛盾。

中国解决钓鱼岛问题,还有个特殊的结构性矛盾就是国家不统一。试问如果两岸统一,中华儿女团结一心,解决钓鱼岛问题岂不是水到渠成?可惜,虽然大家都主张中国拥有钓鱼岛主权,但由于政治理念不同,互相防范,互相猜忌,使得事倍功半。不但大陆和台湾之间隔阂很深,就是大陆和香港这个保钓先锋,也是矛盾重重。从最近的“孔庆东骂狗事件”、“国民教育事件”可见一斑。其实大家同文同种,血浓于水,本不应有这样的隔阂。究其原因,就在于大陆政治体制改革滞后,距离港台业已接受普世价值、落实民主制度的民众距离越来越远。强扭的瓜不甜,使用强力压服台湾实现统一不但得不到钓鱼岛,连台湾都会失去。因此,大陆只有加快政治体制改革进程,以民主、自由、均富的成功实践拉近和台湾民众的距离,实现和平统一,才是解决钓鱼岛问题的正道。

五、国内维稳与国际冲突的矛盾。

当前的中国内部矛盾重重,民族主义愤青虽然气势汹汹,当局者对外采取强硬态度却不免投鼠忌器。因为以民族主义巩固统治是一把双刃剑,搞得不好会伤到自身。当年日俄战争俄国战败,首都就爆发革命;阿根廷马岛战败,加尔铁里黯然下台,都是前车之鉴。何况新、藏大后方不稳,分离主义分子、恐怖分子随时都会发难。如果真和日本撕破脸,日方会不会效仿明石元二郎的故技,在后方煽动动乱让我收尾难顾?这绝不是危言耸听。政府虽然希望通过爱国主义宣传巩固自身合法性,但不受控制的极端民族主义如何操控却是难以拿捏,因此在保钓问题上政府常常显得首鼠两端。最近苏州保钓人士被打一事就暴露出这一软肋。究其根源,还是在于政治体制改革停滞不前,国内经不得一点风吹草动,但以消极维稳为能事,虚弱得很。如通过政治体制改革纾缓民困,使国家治理走上民主、法制轨道,则国内矛盾就能缓解,大家可以专心对外。否则,“吾恐季孙之忧,不在颛臾,而在萧墙之内也!”

以上五点,是中国保钓的结构性障碍,只有通过政治体制改革内强素质,外树形象,以中国地大人多,怎么会斗不过蕞尔小国日本!但如果继续苟且粉饰,则甲午之祸不难重演。何去何从,愿诸君详查!

各种浏览器的Hack写法(chrome firefox ie等)[转载]

虽然和大家在一起学习各浏览器的Hack的写法,但我还是要说“Hack对于一位专业的前端攻程师来说并不是一样很好的东西,我力求处理浏览器兼容,尽量不使用Hack写法来处理,除非实在没有办法的情况下,再加以使用。”下面我们先来简单的了解一下什么是CSS Hack。

Hack是针对不同的浏览器去写不同的CSS样式,从而让各浏览器能达到一致的渲染效果,那么针对不同的浏览器写不同的CSS CODE的过程,就叫CSS HACK,同时也叫写CSS Hack。然后将Hack放在浏览器特定的CSS文件中,让其符合条件的浏览器解析这些代码,就如前面所说的条件样式,我们将CSS Hack代码放入条件样式文件中,符合条件的浏览器就解析,不符合的将不解析,从面达到您所需要的页面渲染效果。总的一句话来说使用CSS Hack将会使用你的CSS代码部分失去作用,然后借助条件样式,使用其原CSS代码在一些浏览器解析,而CSS Hack代码在符合条件要求的浏览器中替代原CSS那部分代码。常见的就是在IE6下使用,不具体说,我想大家都有碰到过了。下面我们就一起来看看所有浏览器都具有什么Hack,换句话说,各种浏览器都能识别哪些CSS的写法。

下面是我收集有关于各浏览器下Hack的写法

1、Firefox

上面是仅仅被Firefox浏览器识别的写法,具体如:

支持Firefox的还有几种写法:

2、Webkit枘核浏览器(chrome and safari)

上面写法主要是针对Webkit内核的浏览器,如Google Chrome 和 Safari浏览器:

3、Opera浏览器

上面则是Opera浏览器的Hack写法:

4、IE9浏览器

上面是IE9的写法,具体应用如下:

5、IE9以及IE9以下版本

这种写法只有IE9以及IE9以下版本能识别,这里需要注意此处“9”只能是“9”不能是别的,比如说“8”,不然会失去效果的,如:

6、IE8浏览器

上面写法只有IE能识别,如:

7、IE8以及IE8以上的版本

这种写法只有IE8以及IE8以上版本支持,如

8、IE7浏览器

上面两种是IE7浏览器下才能识别,如:

9、IE7及IE7以下版本浏览器

上面的写法在IE7以及其以下版本都可以识别,如:

10、IE6浏览器

具体应用如下:

上面具体介绍了各种版本浏览器下如何识别各种的Hack写法,包括了IE6-9以及现代版本的浏览器写法。综合上面的所述,我们针对不同浏览器的Hack写法主要分为两种从CSS选择器和CSS属性上来区别不同的Hack写法。下面我们分别来看这两种的不同写法:

CSS选择器的Hack写法

下面我们主要来看CSS选择器和CSS属性选择器在不同浏览器的支持情况。下面先来看CSS选择器支持情况。

CSS选择器的Hack写法

1、IE6以及IE6以下版本浏览器

2、仅仅IE7浏览器

3、除IE6之外的所有浏览器(IE7-9, Firefox,Safari,Opera)

4、IE8-9,Firefox,Safari,Opear

5、IE9+

6、Firefox浏览器

6、Webkit内核浏览器(Safari和Google Chrome)

7、Opera浏览器

8、iPhone / mobile webkit

CSS属性Hack写法

1、IE6浏览器

2、IE6-7浏览器识别

3、所有浏览器除IE6浏览外

4、IE6-9浏览器

5、IE7-8浏览器

上面罗列的都是各种浏览器下的有关于CSS的Hack的写法,基中有针对于现代浏览器Safari,Google Chrome和Firefox的写法,而且也有针对于我们前端人员最讨厌的IE6-9的各版本浏览器的Hack的写法,而且这些Hack我们又分为CSS选择器的Hack写法和CSS属性的Hack写法。然而具体何种适用,大家可以要据自己的需求来定,下面列出我个人的两种写法:

一、经济实惠型定法:

这种写法注重单独的CSS的Hack写法。不同的浏览器使用不同的Hack写法,其实也只是以IE的Hack写法比较多(因为我们写Hack也主要是针对IE的浏览器)特别是IE6下的浏览器。单独为各种浏览器写Hack的好处是:针对各种浏览顺的Hack写法省力易记。因为其他的浏览器主要是针对现代浏览器,相对来说是比较少的。针对于这种Hack的使用,我推荐使用下面的方法:

二、完美主义写法

这种方法是追求完美主义的写法,主要是配合我们上一节所说的IE条件注释,全部采用选择器Hack的写法。这种写法分两步:

1、创建条件样式表,并在HTML中body里添加相应的class类名:

2、接着创建对应的样式

上面就是目前各种浏览器下,相关CSS的Hack的写法,下面我们具体来看一个实例:

HTML Markup

CSS Code

请看最终效果图:

请面罗列了各浏览器下的Hack的写法,大家写浏览的CSS Hack时也可以参考下面的图表

注:上图要是看不清楚,可以点击鼠标右键,将图片保存到本地后浏览,效果会更佳。上图也可以前往centricle.com在线查看。

那么到此就介绍完了有关于各浏览器的CSS Hack的写法,大家在平时需要使用Hack时可以根据CSS的选择器Hack和CSS的属性Hack对号入坐,不过我还是强调在Web页面制作中尽量不要使用CSS Hack来处理兼容问题。因为任何浏览器下出现渲染不一致都极有可能是我们自己的结构或样式不符合W3C的某些要求,或者说违背了浏览器的某些规则而先造成的,所以我们应该尽量通过结构或CSS的修改来达到各浏览器渲染一致效果,除非到了万不得已情况下,才考虑CSS的Hack。

 

文章出处:W3CPLUS