div css hack兼容与兼容代码。
一. 引见
这篇文章包括了8个十分有用的设计办法, 在发展css设计碰着问题时你就会用到它们.
二. 针对阅读器的选择器
这些选择器在你需要针对某款浏览器发展css设计时将尤其有用.
IE6及其更低版本
- * html {}
IE7及其更低版本
- *:first-child+html {} * html {}
仅针对IE7
- *:first-child+html {}
IE7和现代浏览器
- html>body{}
仅现代浏览器(IE7不实用)
- html>/**/body{}
Opera9及其更低版本
- html:first-child {}
Safari
- html[xmlns*=""] body:last-child {}
要使用这些选择器,请将它们放在花色此前. 譬如:
- #content-box {width:300px;height:150px;}
- * html
- #content-box {width: 250px; } /* overrides the above style and changes the width to 250px in IE 6 and below */
三. 让IE6赞成PNG透明
一个IE6的Bug惹起了毒品烦, 他不支持通明的PNG图片.(css完成ie6 png图片透明)
你须要应用一个css滤镜
- *html #image-style {bac千克round-image: none;
- filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="fil
- ename.png", sizingMethod="scale");}
四. 移除超链接的虚线(仅对FF有用)
FireFox下,当你点击一个超链接时可在外围泛起一个虚线外表. 这很容易筹画, 只须要在标签花式中问鼎 outline:none .
- a{outline: none;}
五. 给行内元素界说宽度
若是你给一个行内元素定义宽度,那末它只是在IE6下有用. 全体的HTML元素要末是行内元素要末就好是块元素. 行内元素包括: <span>, <a>, <strong> 和 <em>. 块元素包括<div>, <p>, <h1>, <form>和<li> . 你不克不及定义行内元素的宽度, 为了整治这个问题你可以将行内元素转酿成块元素.
- span { width: 150px; display: block }
六. 让固定宽度的页面居中
为了让页面在涉猎器居中闪现, 须要相对定位外层div, 尔后把margin配置为auto.
- #wrapper {margin: auto;position: relative;}
七. 图片变革技术手段
用文字总比用图片做标题问题好一些. 文字对屏幕阅读机和SEO都曲直短长常朋友的.
HTML:
- <h1><span>Main heading one</span></h1>
CSS:
- h1 { bac千克round:url(heading-image.gif) no-repeat; }
- h1 span {position:absolute;text-indent:-5000px;}
你可以看到咱们对标题问题应用了标准的<h1>作为标签并且用css来将文本替换为图片. text-indent属性将笔墨推到了阅读器右侧5000px处, 多么对于涉猎者来说就看不见了.
关掉css,然后看识破部会是什么边幅的.
八. 最小宽度
IE6另外一个马脚便是它不赞成 min-width 属性. min-width又是相称有用的, 特别是对于弹性模板来讲, 它们有一个100%的宽度,min-width 可以告诉浏览器何时就不要再压缩宽度了.
除IE6以外全体的涉猎器你只必要一个 min-width: Xpx; 譬如:
- .container {min-width:300px;}
为了让他在IE6下任务, 我们需要一些特别的任务. 匹面的时刻咱们需求建设两个div, 一个蕴含另一个:
- <div class="container">
- <div class="holder">Content</div>
- </div>
尔后你必要界说外层div的min-width属性
- .container {min-width:300px;}
这时候该是IE hack大显才力的时候了. 你需要包含以下的代码:
- * html .container {border-right: 300px solid #FFF;}
- * html .holder {display: inline-block;position: relative;margin-right: -300px;}
随着涉猎器窗口大小的外层div宽度飞扬,以顺应直到它放大到了边框的宽度,此时它不会进一步萎缩的。持有人DIV跟风,也中断萎缩。外层的div边框宽度成为内div的最小宽度。
九. 潜藏程度转折条
为了避免泛起水平动弹条, 在body里插手 overflow-x:hidden .
- body { overflow-x: hidden; }
当你决定应用一个比浏览器窗口大的图片也许flash时, 这个技巧将尤其有用
屏障IE涉猎器(也便是IE下不浮现) *:lang(zh) select {font:12px !important;} /*FF,OP可见,特别提醒:由于Opera近来的降级,当前此句只为FF所辨认*/ select:empty {font:12px !important;} /*safari可见*/ 这里select是选择符,按照情况更换。第二句是MAC上safari浏览器独占的。仅IE7与IE5.0可以识别 *+html select {…} 劈面临紧要只针对IE7与IE5.0做样式的时刻便可以采纳这个HACK。仅IE7可以辨认 *+html select {…!important;} 对面对必要只针对IE7做款式的时辰便可以采取这个HACK。 IE6及IE6以下辨认 * html select {…} 这个中央要特别留意不少博客都写成了是IE6的HACK着实IE5.x同样可以识别这个HACK。其它阅读器不识别。 html/**/ >body select {…} 这句与上一句的感化相斥。仅IE6不识别,屏蔽IE6 select { display /*屏障IE6*/:none;} 这里首要是经过CSS评释分隔隔离分散一个属性与值,注解在冒号前。仅IE6与IE5不识别,屏障IE6与IE5 select/**/ { display /*IE6,IE5不识别*/:none;} 这里与上面一句一致的是在选择符与花括号之间多了一个CSS剖明。不屏障IE5.5 仅IE5不识别,屏蔽IE5 select/*IE5不辨认*/ {…} 这一句是在上一句中去掉了属性区的抒发。只有IE5不辨认,IE5.5可以辨认。盒模型方案方法 selct {width:IE5.x宽度; voice-family :"\"}\""; voice-family:inherit; width:正确宽度;} 盒模子的清除方法不是经过!important来处置的。这点要明了。肃清浮动 select:after {content:"."; display:block; height:0; clear:both; visibility:hidden;} 在Firefox中,当子级都为浮动时,那么父级的高度就没法彻底的包住整个子级,那么这时用这个铲除浮动的HACK来对父级做一次界说,那末即可以妄想这个问题。截字省略号 select { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; } 这个是在越出长度后会自行的截掉多出一部分的文字,并以省略号末了,很好的一个技艺。只不过目前Firefox并不支持。只有Opera识别 @media all and (min-width: 0px){ select {……} } 针对Opera阅读器做独自的设定。以上但凡写CSS中的一些HACK,这些凡是用来贪图局部的兼容性问题,若是但愿把兼容性的内容也松散出来,不妨试一下下面的几种过滤器。这些过滤器有的是写在CSS中经过过滤器导入特其他名目,有了的是写在HTML中的经由前提来链接或是导入需求的补丁款式。
IE5.x的过滤器,只有IE5.x可见 @media tty { i{content:"\";/*" "*/}} @import ''ie5win.css''; /*";} }/* */ IE5/MAC的过滤器,一般用不着 /*\*//*/ @import "ie5mac.css"; /**/ IE的if前提Hack Only IE 一切的IE可识别
只有IE5.0可以辨认 Only IE 5.0+ IE5.0包换IE5.5均可以辨认
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/jiqiao/j52138.shtml