[关闭]
@buoge 2017-12-01T12:00:35.000000Z 字数 15848 阅读 877
放到 标签下, 然后为div 指定一个类, 然后CSS 这样设计: #container{ min-width: 600px; width:e-xpression(document.body.clientWidth

p 对象中的内容

some text here
放到 标签下,然后为div 指定一个类: 然后CSS 这样设计:
#container{ min-width: 600px; width:expression(document.body.clientWidth

p 对象中的内容

CSS:#box {background-color:#eee; }

...

...

Buy widgets

Buy widgets

...
...
来围上所有元素。这很简单,但不够好,IE6 之前版本会显示 不出这种效果。改CSS 如下: body { text-align: center } #content { text-align: left; width: 700px; margin: 0 auto } 这会把网页内容都居中,所以在Content 中又加入了 text-align: left 。 8、用CSS 来处理垂直对齐 垂直对齐用表格可以很方便地实现,设定表格单元vertical-align: middle 就可以了。但对 CSS 来说这没用。如果你想设定一个导航条是2em 高,而想让导航文字垂直居中的话,设 定这个属性是没用的。 CSS 方法是什么呢?对了,把这些文字的行高设为2em:line-height: 2em ,这就可以了。 9、CSS 在容器内定位 CSS 的一个好处是可以把一个元素任意定位,在一个容器内也可以。比如对这个容器:
#container { position: relative } 这样容器内所有的元素都会相对定位,可以这样用:
如果想定位到距左30 点,距上5 点,可以这样:
#navigation { position: absolute; left: 30px; top: 5px } 当然,你还可以这样: margin: 5px 0 0 30px 注意4 个数字的顺序是:上、右、下、左。当然,有时候定位的方法而不是边距的方法更好 些。 10、直通到屏幕底部的背景色 在垂直方向是进行控制是CSS 所不能的。如果你想让导航栏和内容栏一样直通到页面底部, 用表格是很方便的,但如果只用这样的CSS:
#navigation { background: blue; width: 150px } 较短的导航条是不会直通到底部的,半路内容结束时它就结束了。该怎么办呢? 不幸的是,只能采用欺骗的手段了,给这较短的一栏加上个背景图,宽度和栏宽一样,并让 它的颜色和设定的背景色一样。 body { background: url(/blog/blue-image.gif) 0 0 repeat-y } 此时不能用em 做单位,因为那样的话,一旦读者改变了字体大小,这个花招就会露馅,只 能使用px。 HTML 的SPAN 和DIV 的区别 SPAN 和DIV 的区别在于,DIV(division)是一个块级元素,可以包含段落、标题、表格, 乃至诸如章节、摘要和备注等。而SPAN 是行内元素,SPAN 的前后是不会换行的,它没 有结构的意义,纯粹是应用样式,当其他行内元素都不合适时,可以使用SPAN。 SPAN 标记有一个重要而实用的特性,即它什么事也不会做,它的唯一目的就是围绕 你的HTML 代码中的其它元素,这样你就可以为它们指定样式了。在此例中,标识 符允许你将一个段落分成不同的部分。还有一个标识符具有类似的功能,
DIV 也 被用来在HTML 文件中建立逻辑部分。但与
SPAN 不同,
工作于文本块一级,它 在它所包含的HTML 元素的前面及后面都引入了行分隔。 SPAN 标记有一个重要而实用的特性,即它什么事也不会做,它的唯一目的就是围绕你的 HTML 代码中的其它元素,这样你就可以为它们指定样式了。在此例中,标识符允许你将 一个段落分成不同的部分。还有一个标识符具有类似的功能, DIV 也被用来在HTML 文件中建立逻辑部分。但与SPAN 不同, 工作于文本块一级,它在它所包含的HTML 元素 的前面及后面都引入了行分隔。 div 布局时不能居中、居中失灵的解决 一般情况下,div 不能居中,div 居中失灵是因为页面没有声明引起的:加上 即可 使用margin-left:auto;margin-right:auto; 可以让你的div 居中对齐。如 .style{margin-left:auto;margin-right:auto;} 缩写形式为: .style{margin:0 auto;} 数字0 表示上下边距是0。可以按照需要设置成不同的值。 查看下面的例子: 以下为引用的内容: 居中div 演示效果 .align-center{ margin:0 auto; /* 居中这个是必须的,,其它的属性非必须*/ width:500px; /* 给个宽度顶到浏览器的两边就看不出居中效果了*/ background:red; /* 背景色*/ text-align:center; /* 文字等内容居中*/ }
居中div 演示效果
注意,需要加上上面的那句 才能生效,要是不想要这句的话,也可以给body 加一个属性: body{text-align:center;} 另外,让div 内的内容(包括文字及图片)居中的代码是: text-align:center; 解决Flash 在Div 中无法居中 以下为引用的内容: /* -----页面统一设置----- */ html,body{ margin:0px; padding:0px; background:url(images/boydBg.gif) repeat-x;} img{ border:0px; } /* -----开始顶部统一设置----- */
#head{ width:1000px; height:364px; text-align:center; }
#logo{ height:110px; background-color:#0099CC; background:url(images/home01.jpg) repeat-x; text-align:right; padding-right:420px;}
#nav{ height:54px;}
#banner{ width:950px; height:200px; text-align:center;} /* -----顶部设置完毕----- */
#banner{margin:0 auto;} -----用这个动画是距中了
#head{margin:0 auto;} ------用这个整个页面都距中啦~~ FireFox 和IE 浏览器对于DIV+CSS 设计的区别及对策 1、实际像素 IE/Opera:对象的实际宽度= (margin-left) + width + (margin-right) Firefox/Mozilla:对象的实际宽度= (margin-left) + (border-left-width) + (padding- left) + width + (padding-right) + (border-right-width) + (margin-right) 所以排列好及列的表格时ie 和ff 显示宽度稍有区别 2、水平居中 问题:div 里的内容,ie 默认为center,而ff 默认left 解决:mairgin:0px auto; 3、高度问题 问题:如果设置了一个DIV 的高度,当DIV 里实际内容大于所设高度,ie 会自动拉伸以适 应DIV 容器大小,ff 会固定DIV 的告诉,超过部分超出DIV 底线以外,出现和下面的内容 重叠的现象 解决:控制恰当的高度,或者不写,让浏览器自动调节高度,或者设置overflow:hidden; 4、clear:both; 问题:如果上面用float 控制了n 列DIV,下面ie 会自动检测自动排列,ff 则可能很不老实, 到处乱动 解决:float 结束后的下一个标签加clear:both;以结束float 的控制 5、最大/小宽度问题 问题:min-width,max-width 只是ff 的命令,如何让ie 实现同样的效果 解决:ie 不认识min-和max-,实际ie 认为min-width、max-width 和width 效果一样,可以 用下面方法解决
#cctext{ min-width: 700px; max-width: 1000px; width:expression(document.body.clientWidth1000 ? "1000px" : "auto"); } 6、!important 支持 问题:ff 支持ie6.0 不支持 解决:无。ie 会忽略。 7、游标状态 问题:cursor:hand;仅ie 支持,显示手指状态 解决:使用cursor:pointer;ie 和ff 都支持 8、单位问题 问题:任何距离的数值ie 可以不加单位,ff 必须要求写单位(0 除外) 解决:写全单位如padding:0px; 查看文章 /zz/div+css - Firefox 和IE 浏览器兼容问题- padding-right 在IE6 下导致抖动2008-01-11 17:33 由于IE6 的盒模型计算缺陷,padding-right 在特定的情况会下导致抖动。 [出现抖动的代码] 最近在写一个Div+Css 布局的网站首页,以前写的页面都统一width:900px;不存在什么布局 呀什么float 的设置。现在没办法呀!要对页面进行切割,分块。幸好,有点css 的基础, 不过用起来就比较郁闷了。在ie 和firefox 下,相同的属性值往往会有不同的显示效果。没 办法要兼容浏览器只得一个一个bug 去找。但完全兼容浏览器是无法做到的,所以也只能 将个大概的效果展示出来,不要偏差太大太明显就行。 首先,需要提出的是float 这个浮动属性,这是div+css 布局的关键所在。float:left;float:right; 是常用的浮动属性。为了使div 能在一行排列,不得补用到它们。呵呵!不就是个float 吗? 这有什么好提的,要浮动我就float 一下呀。哎!话是这么说,但真正用到时却出问题了。 在ie 下,只要前一个div 有float:left;后面的div 宽度不超过(总body 的宽度)-(前一个div 的宽度),后面的div 就自动浮动,并排列在同一行。ie 和firefox 下,这点效果是一样。好, 接着往下,下一行也这样布局,就分两栏吧。
#div1{}{width:200px;height:80px;float:left;border:1px solid blue;}
#div2{}{width:600px;height:80px;border:1px solid blue;}

这样的布局,在ie 下和火狐下的显示效果就不同了在firefox 下的margin-top:20px;没效
果。。。。
在ie 下div3 的margin-top 有效果,而在firefox 下却没效果。为什么?
翻来覆去的想,终究没有想明白。没办法了,后来我有改css.偶然,给div2 加上了float:left
属性,然后margin-top:20px 都有效果了。郁闷吧呵呵不过还是没弄明白为什么会这样,
问题解决了就ok 了!
下一个问题是ul 的问题。在ie 下和firefox 下注意了ul{margin-left:10px;}的效果是不同
的,这样设置的效果才会相同
ul{padding:0;margin-left:10px;}在火狐下默认的padding!=0 所以需要这样来设置下...
呵呵愚昧的个人见解!
div+css 扩展框问题浮动下降IE 与Firefox 兼容性整理2008-08-14 10:57div+css 扩展框问题
浮动下降IE 与Firefox 兼容性整理
图文混排容易导致扩展框问题.

扩展框问题
这样排版容易导致扩展框问题. 尽量定义宽高给定值 * 浮动下降问题[size=+0] 加上{float:left;} 即可``` IE6 的双倍边距BUG 解决办法是加上display:inline IE6 下为什么图片下方有空隙产生 解决这个BUG 的方法也有很多,可以是改变html 的排版,或者设置img 为display:block 或者设置vertical-align 属性为vertical-align:top | bottom |middle |text-bottom 都可以解决. IE6 下这两个层中间怎么有间隙 这个IE 的3PX BUG 也是经常出现的,解决的办法是给.right 也同样浮动float:left 或者相对 IE6 定义.left 如何对齐文本与文本输入筐 遇到此种问题,设置文本框的vertical-align:middle 就可以了 为什么FF 下文本无法撑开容器的高度 [size=+0] 标准浏览器中固定高度值的容器是不会象IE6 里那样被撑开的,那我又想固定高度,又想能 被撑开需要怎样设置呢?办法就是去掉height 设置min-height:200px; 这里为了照顾不认识 min-height 的IE6 可以这样定义: { height:auto!important; height:200px; min-height:200px; } 怎么样才能让层显示在FLASH 之上呢 解决的办法是给FLASH 设置透明或者 怎样使一个层垂直居中于浏览器中 使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二. 方法二:首先在父级元素定义TEXT-ALIGN: center;这个的意思就是在父级元素内的内容居 中;对于IE 这样设定就已经可以了。 但在mozilla 中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ” 需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个DIV 里,你可 以依次拆出多个div, 只要在每个拆出的div 里定义MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。 { width:300px; margin-left:auto; margin-right:auto; } 针对firefox ie6 ie7 的css 样式 现在大部分都是用!important 来hack,对于ie6 和firefox 测试可以正常显示, 但是ie7 对!important 可以正确解释,会导致页面没按要求显示!找到一个针 对IE7 不错的hack 方式就是使用“*+html”,现在用IE7 浏览一下,应该没有问题了。 现在写一个CSS 可以这样:
#1 { color: #333; } /* Moz */ * html #1 { color: #666; } /* IE6 */ *+html #1 { color: #999; } /* IE7 */ 那么在firefox 下字体颜色显示为#333,IE6 下字体颜色显示为#666,IE7 下字体颜色显示为
#999。 页面的最小宽度 min-width 是个非常方便的CSS 命令,它可以指定元素最小也不能小于某个宽度,这样就能 保证排版一直正确。但IE 不认得这个, 而它实际上把width 当做最小宽度来使。为了让这一命令在IE 上也能用,可以把一个
放到 标签下,然后为div 指定一个类: 然后CSS 这样设计:
#container{ min-width: 600px; width:expression(document.body.clientWidth
#outer {height: 100%; overflow: hidden; position: relative;width: 100%; background:ivory;}
#outer[id] {display: table; position: static;}
#middle {position: absolute; top: 50%;} /* for explorer only*/
#middle[id] {display: table-cell; vertical-align: middle; position: static;}
#inner {position: relative; top: -50%;width: 400px;margin: 0 auto;} /* for explorer only */ div.greenBorder {border: 1px solid green; background-color: ivory;}



以上CSS 代码的优点是没有hacks,采用了IE 不支持的CSS2 选择器#value[id]。
CSS2 选择器#value[id]相当于选择器#value,但是Internet Explorer 不支持这种类型的选择器。
同样地.value[class],相当于.value,这些只有标准浏览器能读懂。
div+css 实现Firefox 和IE6 兼容的垂直居中2008 年03 月10 日星期一02:06div+css 实现
Firefox 和IE6 兼容的垂直居中
Firefox 中使用display: table-cell; vertical-align: middle;可以实现div 垂直居中,而IE6 中则需
要借助IE6 中css 的特点实现垂直居中。为了实现Firefox 和IE6 兼容的垂直居中,还需要借
助于!important 标记。Firefox 支持!important 标记,而IE6 忽略!important 标记,因此可以使
用! important 标记区别Firefox 和IE6。
[示例代码]

垂直居中,Firefox only

垂直居中,Firefox only

垂直居中,Firefox only

垂直居中,IE6 only

垂直居中,IE6 only

垂直居中,IE6 only


垂直居中,Firefox IE6 only

垂直居中,Firefox IE6 only

垂直居中,Firefox IE6 only

IE VS FireFox CSS 兼容要点:DOCTYPE 影响CSS 处理 FF: div 设置margin-left, margin-right 为auto 时已经居中, IE 不行 FF: body 设置text-align 时, div 需要设置margin: auto(主要是margin-left,margin-right) 方 可居中 FF: 设置padding 后, div 会增加height 和width, 但IE 不会, 故需要用!important 多设 一个height 和width FF: 支持!important, IE 则忽略, 可用!important 为FF 特别设置样式 div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行 cursor: pointer 可以同时在IE FF 中显示游标手指状, hand 仅IE 可以 FF: 链接加边框和背景色,需设置display: block, 同时设置float: left 保证不换行。参照 menubar, 给a 和menubar 设置高度是为了避免底边显示错位, 若不设height, 可以在 menubar 中插入一个空格XHTML+CSS 兼容性解决方案小集 使用XHTML+CSS 构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思 路不清晰,我就先把一些我遇到的问题写在下面。 1.在mozilla firefox 和IE 中的BOX 模型解释不一致导致相差2px 解决方法: div css xhtml xml Example Source Code Example Source Code [www.52css.com] div{margin:30px!important;margin:28px;} 注意这两个margin 的顺序一定不能写反,据阿捷的说法!important 这个属性IE 不能识别, 但别的浏览器可以识别。所以在IE 下其实解释成这样: div css xhtml xml Example Source Code Example Source Code [www.52css.com] div{maring:30px;margin:28px} 重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important; 2.IE5 和IE6 的BOX 解释不一致IE5 下div{width:300px;margin:0 10px 0 10px;}div 的宽度会 被解释为300px- 10px(右填充)-10px(左填充)最终div 的宽度为280px,而在IE6 和其他浏览 器上宽度则是以300px+10px(右填充)+10px (左填充)=320px 来计算的。这时我们可以做如 下修改: div css xhtml xml Example Source Code Example Source Code [www.52css.com] div{width:300px!important;width /**/:340px;margin:0 10px 0 10px} 关于这个/**/是什么我也不太明白,只知道IE5 和firefox 都支持但IE6 不支持,如果有人理 解的话,请告诉我一声,谢了!:) 3.ul 标签在Mozilla 中默认是有padding 值的,而在IE 中只有margin 有值所以先定义 div css xhtml xml Example Source Code Example Source Code [www.52css.com] ul{margin:0;padding:0;} 就能解决大部分问题 4.关于脚本,在xhtml1.1 中不支持language 属性,只需要把代码改为 div css xhtml xml Example Source Code Example Source Code [www.52css.com] div+css 编辑网页firefox 下错位的解决方法{clear 和float 属性}好不容易编辑好的网页导航, 在FIREFOX 下测试发现错位的厉害,毫无美感可言{原因找出,原来是当时测试的一个代 码,测试完了忘记改了过来,额的个神,用了我一个多小时} 没办法,做为使用比较多的浏览器之一,不能不考虑适应它。出现错位混乱的原因主要是因 为IE 和FIREFOX 的标准不同,某些属性的释义出现相差所致。 没办法只好边学边用了。clear 和float 属性 在css 文件里定义的容器时加入clear 属性来控制页面 clear 属性说明:该属性的值指出了不允许有浮动对象的边。 注意这里要注意和float 属性的区分 float:该属性的值指出了对象是否及如何浮动。 当该属性不等于none 引起对象浮动时,对象将被视作块对象(block-level),即display 属性等 于block。也就是说,浮动对象的display 特性将被忽略。 clear 属性支持的参数有下面4 个: none : 允许两边都可以有浮动对象 both : 不允许有浮动对象 left : 不允许左边有浮动对象 right : 不允许右边有浮动对象 而float 属性支持的参数有下面3 个: none : 对象不浮动 left : 对象浮在左边 right : 对象浮在右边DOCTYPE 影响CSS 处理 FF: div 设置margin-left, margin-right 为auto 时已经居中, IE 不行 FF: body 设置text-align 时, div 需要设置margin: auto(主要是margin-left,margin-right) 方 可居中 FF: 设置padding 后, div 会增加height 和width, 但IE 不会, 故需要用!important 多设 一个height 和width FF: 支持!important, IE 则忽略, 可用!important 为FF 特别设置样式 div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行 cursor: pointer 可以同时在IE FF 中显示游标手指状, hand 仅IE 可以 FF: 链接加边框和背景色,需设置display: block, 同时设置float: left 保证不换行。参照 menubar, 给a 和menubar 设置高度是为了避免底边显示错位, 若不设height, 可以在 menubar 中插入一个空格 XHTML+CSS 兼容性解决方案小集 使用XHTML+CSS 构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思 路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找^^ 1.在mozilla firefox 和IE 中的BOX 模型解释不一致导致相差2px 解决方法: div{margin:30px!important;margin:28px;}注意这两个margin 的顺序一定不能写反,据阿捷的 说法!important 这个属性IE 不能识别,但别的浏览器可以识别。所以在IE 下其实解释成这 样: div{maring:30px;margin:28px} 重复定义的话按照最后一个来执行, 所以不可以只写 margin:XXpx!important; 2.IE5 和IE6 的BOX 解释不一致IE5 下div{width:300px;margin:0 10px 0 10px;}div 的宽度会 被解释为300px-10px(右填充)-10px(左填充)最终div 的宽度为280px,而在IE6 和其他浏览 器上宽度则是以300px+10px(右填充)+10px(左填充)=320px 来计算的。这时我们可以做如下 修改 div{width:300px!important;width /**/:340px;margin:0 10px 0 10px},关于这个/**/是什么我也 不太明白,只知道IE5 和firefox 都支持但IE6 不支持,如果有人理解的话,请告诉我一声, 谢了!:) 3.ul 标签在Mozilla 中默认是有padding 值的,而在IE 中只有margin 有值所以先定义 ul{margin:0;padding:0;}就能解决大部分问题 4.关于脚本,在xhtml1.1 中不支持language 属性,只需要把代码改为 1、div+css 如何使网站兼容不同字体 使用utf-8 内码进行编写 (右键-编码-选择一种其它国家的编码-查看效果) asp 代码如下: 使用方法: 2、关于div+css 兼容IE 和firefox 的问题 好不容易建立的div+css 网页完全符合W3C 标准。在ie7 下显示非常完美,用firefox 一测 试,乖乖一探糊涂惨不忍睹。经过一番研究发现兼容很 简单。 1、增加div {overflow: hidden;},目的就是让div 自动适应内容高度 2、横排的div 外套div 另外设定 ul { margin: 0px; padding: 0px; } 是消除li 前面的空格 3、div+css 兼容性问题 CSS 兼容要点:DOCTYPE 影响CSS 处理 FF: div 设置margin-left, margin-right 为auto 时已经居中, IE 不行 FF: body 设置text-align 时, div 需要设置margin: auto(主要是margin-left,margin-right) 方 可居中 FF: 设置padding 后, div 会增加height 和width, 但IE 不会, 故需要用!important 多设 一个height 和width FF: 支持!important, IE 则忽略, 可用!important 为FF 特别设置样式 div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是 要控制内容不要换行 cursor: pointer 可以同时在IE FF 中显示游标手指状, hand 仅IE 可以 FF: 链接加边框和背景色,需设置display: block, 同时设置float: left 保证不换行。参照 menubar, 给a 和menubar 设置高度是为了 避免底边显示错位, 若不设height, 可以在menubar 中插入一个空格XHTML+CSS 兼容性 解决方案小集 使用XHTML+CSS 构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思 路不清晰,我就先把一些我遇到的问题写在下面。 1.在mozilla firefox 和IE 中的BOX 模型解释不一致导致相差2px 解决方法: div css xhtml xml Example Source Code Example Source Code [www.52css.com] div{margin:30px!important;margin:28px;} 注意这两个margin 的顺序一定不能写反,据阿捷的说法!important 这个属性IE 不能识别, 但别的浏览器可以识别。所以在IE 下其实解释成这样 : div css xhtml xml Example Source Code Example Source Code [www.52css.com] div{maring:30px;margin:28px} 重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important; 2.IE5 和IE6 的BOX 解释不一致IE5 下div{width:300px;margin:0 10px 0 10px;}div 的宽度会 被解释为300px- 10px(右填充)-10px(左填充)最终 div 的宽度为280px,而在IE6 和其他浏览器上宽度则是以300px+10px(右填充)+10px (左填 充)=320px 来计算的。这时我们可以做如下修改: div css xhtml xml Example Source Code Example Source Code [www.52css.com] div{width:300px!important;width /**/:340px;margin:0 10px 0 10px} 关于这个/**/是什么我也不太明白,只知道IE5 和firefox 都支持但IE6 不支持,如果有人理 解的话,请告诉我一声,谢了!:) 3.ul 标签在Mozilla 中默认是有padding 值的,而在IE 中只有margin 有值所以先定义 div css xhtml xml Example Source Code Example Source Code [www.52css.com] ul{margin:0;padding:0;} 就能解决大部分问题 4.关于脚本,在xhtml1.1 中不支持language 属性,只需要把代码改为 div css xhtml xml Example Source Code Example Source Code [www.52css.com] 4、div+css 兼容问题解决方案(IE5/5.5/6/7/FF) 之前找了几个不同版本的可独立运行的IE 浏览器,正好拿来试试页面的兼容性问题。不试 不知道,在IE6 和FF 中没问题的页面在IE5 和IE5.5 中乱 成一团,一直听说IE5 是WEB 标准制作的一个“钉子户”,现在不得不相信了。 既然有问题,那就找找解决的方法咯,在网上一搜,相关的文章还是不少的,觉得最直接的 方法还是“IE 条件注释”,很方便的就能为IE 的不 同版本写样式。但这样就得为每个版本写一个样式,不利于文件的优化。 找了一些相关的CSS HACK 后,觉得应该可以把IE5/IE5.5/IE6/FF 的HACK 写到一起的, 经过测试,终于找到了一个不错的方法,下面我们来看看 怎么实现: 大家都知道用!important 声明可以提升指定样式规则的应用优先权,如下面的例子: E1{ background-color: red !important;/*提升优先权*/ background-color: blue; } 但这样写在IE 中会有个问题,看过我的《关于CSS 样式表优先级》和《关于CSS 样式表优 先级补遗》,你会知道在IE6 和FF 中用! important 声明 可以提高优先级别,但在IE6 中的!important 声明并不是绝对的,它会被之后的同名属性定 义所替换。也就是说在上面的例子中,IE6 所应用的 是最后一个背景色的值,即“blue”;而在FF 中背景色的值为“red”。根据这一点,我们就可 以把FF 和IE 的样式分离开。 OK ,解决了FF 和IE 的问题,现在来解决IE 自己的问题。 看过了嘟嘟的《绕过IE6 支持IE5 的别一种写法-IE 也支持">"》后有感而发,使用“>”IE 是否真的可以认得?我们来看个例子: E1{ background-color: red; >background-color: blue; } 在FF 中得到的是背景色红色,而在IE 中得到的背景色是蓝色,根据样式重定义的规则, 如果浏览器可以识别“>”,则应该得到的蓝色的背景 ,因此可以知道“>”只有IE 可以识别,这点是很重要的哦!在后面大家就会知道了。(注: 我测试过其它的一些符号,如“~”、“`”、“ <”等,都只有IE 可以识别,在此为了感谢嘟嘟,推荐使用“>”) 我们再来看个例子: E1{ >/*IE only*/background-color: black; >/*IE only*/background-color /*IE5.5*/: green; } 这个例子在IE6 中得到了黑色的背景;而在IE5.5 中得到的绿色的背景;在IE5 中也得到了 黑色的背景。这就说明了第二句定义只有IE5.5 能识别 ,这是个很早就公布的HACK,可以在网上找到相关的资料,要注意的就是在属性名之后 是有一个空格的。到此我们已经把FF、IE5.5、IE6 分离 出来了,那IE5 呢?其实现在我们只要把IE5 跟IE6 分开就OK 了,来看看例子: E1{ >/*IE only*/background-color: red;/*IE5*/ } E1/*IE5.5+*/{ >/*IE only*/background-color: black; } 这里我们又用到一个HACK,就是“E1/**/{}”,这个定义在IE5 以上的版本才能识别出来。 这个例子得到的结果是,在IE5 中的背景色为红色; 在IE5 以上版本中得到的是黑色背景。 终于把不同版本的浏览器都分离出来了,这样我们就可以为不同的浏览器定义不同的样式 了。来看个完整的例子: E1{ width: 500px; height: 50px; background-color: red !important;/*FF*/ background-color: blue;/*IE5*/ text-align:center; } E1/*IE5.5+*/{ >/*IE only*/background-color: black;/*IE6*/ >/*IE only*/background-color /*IE5.5*/: green; } 需要注意的是,在上面例子中“background-color”定义的顺利不能改变,即FF-IE5-IE6-IE5.5。 对于IE 的定义在属性前要加“>”,因为 “E1/**/{}”这个HACK 在FF 中可以识别。也许你会想,上面的例子不是可以写成: E1{ width: 500px; height: 50px; background-color: red;/*FF*/ >background-color: blue;/*IE5*/ text-align:center; } E1/*IE5.5+*/{ >/*IE only*/background-color: black;/*IE6*/ >/*IE only*/background-color /*IE5.5*/: green; } 这样不就又可以省下几个字节?是没错,可是HACK 不是标准,如果滥用HACK,那只会 离标准越来越远! 6、div+css 实现Firefox 和IE6 兼容的垂直居中 Firefox 中使用display: table-cell; vertical-align: middle;可以实现div 垂直居中,而IE6 中则需 要借助IE6 中css 的特点实现垂直居中。为 了实现Firefox 和IE6 兼容的垂直居中,还需要借助于!important 标记。Firefox 支持!important 标记,而IE6 忽略!important 标记,因此可以使 用! important 标记区别Firefox 和IE6。 [示例代码]

垂直居中,Firefox only

垂直居中,Firefox only

垂直居中,Firefox only

垂直居中,IE6 only

垂直居中,IE6 only

垂直居中,IE6 only


垂直居中,Firefox IE6 only

垂直居中,Firefox IE6 only

垂直居中,Firefox IE6 only





7、div+css 的浏览器兼容问题
水平居中,Firefox 使用margin-left: auto; margin-right: auto; IE6 使用text-align: center;
垂直居中,Firefox 中使用display: table-cell; vertical-align: middle;可以实现div 垂直居中,而
IE6 中则需要借助IE6 中css 的特点实现垂
直居中。
!important 标记,Firefox 支持!important 标记,IE6 忽略!important 标记
使用div+css 建站的朋友一定都知道CSS 兼容的问题。由其是初学者在IE 环境下好不容易
写出了一个像模像样的网站来,一拿到FF 下就变样了。所以在这里建议新手写代码时切忌
要在IE 和FF 两个环境下去测试。今天教大家五招方法完全可以解决浏览器兼容问题。
这里大家要知道CSS 不兼容的原因是因为各浏览器给CSS 默认属性值不一样造成的。
第一招:给常用CSS 规定属性值。
body,div,dl,dt,dd,ol,h1,h2,h3,h4,h5,h6,form,input,p,th,td{margin:0;padding:0;}
img{border:0px;}
ul {margin:0px;padding:0px;}/
ul li {list-style:none;}
上面的建站常用代码就相是格式化CSS 样式,让各浏览器按照我们设置的属性值渲染网页
第二招:IE 和FF 下对象居中问题
IE 下大家应该知道只要设置body{text-align:center;}这样就可以居中显示。
但是这样的方法在FF 不行的。这里就需要给修改成body:{text-align:center;margin:0px
auto;}Margin 的意思就是上下距离为0 像素,左右为自动。所以FF 就会居中显示。
第三招:垂直居中(仅只用于一行)
比如说一个高30px 的div,问题默认是会显示在左上角,如果想垂直居中对其可以加个lineheight:
30px;样式。如果你想让他居下方则在修改line-height:30px;数值越大越局下,为了防
止撑破层,还需要再给一个样式overflow:hidden;(超出的部分不显示)
第四招:给每一个块对象设置三个样式
width:**px;height:**px;overflow:hidden;即便高、宽是属性值是自动那么也需要去设置这三个
样式。目的就是解决浏览器默认值的问题。
第五招:针对IE6、IE7、FF 的css 样式(这一招在特殊情况下经常用到)
原来建设网站经常使用!important 来设置优先权,但有了IE7 之后就不行了。下面给大家个
可以解决IE6、IE7、FF 各个CSS 优先权的方法

1 { color: #333; } /* FF 环境*/

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注