﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-忆风-随笔分类-Div &amp; CSS</title><link>http://www.blogjava.net/yifeng/category/34314.html</link><description>光是知道是不够的，必须要加以应用；光是希望是不够的，非去做不可。</description><language>zh-cn</language><lastBuildDate>Wed, 10 Dec 2008 07:06:05 GMT</lastBuildDate><pubDate>Wed, 10 Dec 2008 07:06:05 GMT</pubDate><ttl>60</ttl><item><title>几个经典的css技巧</title><link>http://www.blogjava.net/yifeng/archive/2008/12/10/245410.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Wed, 10 Dec 2008 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/12/10/245410.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/245410.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/12/10/245410.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/245410.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/245410.html</trackback:ping><description><![CDATA[<p><strong>使用 line-height 垂直居中</strong></p>
<p><span class="code">line-height:24px;</span></p>
<p>使用固定宽度的容器并且需要一行垂直居中时，使用 line-height 即可（高度与父层容器一致），更多的垂直居中总结可以看这里。</p>
<p><strong>清除容器浮动</strong></p>
<p><span class="code">#main {<br />
&#160;&#160;&#160; overflow:hidden;<br />
}</span></p>
<p>期前也提到过这样的问题，更多信息可以看这里。</p>
<p><strong>不让链接折行</strong></p>
<p><span class="code">a {<br />
&#160;&#160;&#160; white-space:nowrap;<br />
}</span></p>
<p>上面的设定就能避免链接折行，不过个人建议长链接会有相应的这行（有关换行方面的讨论，参看圆心的记录）。</p>
<p><strong>始终让 Firefox 显示滚动条</strong></p>
<p><span class="code">html {<br />
&#160;&#160;&#160;
overflow:-moz-scrollbars-vertical;<br />
}</span></p>
<p>更多的 Mozilla/Firefox 私有 CSS 属性可以参考这里。需跨浏览器的支持，也可以使用</p>
<p><span class="code">body, html {<br />
&#160;&#160;&#160; min-height:101%;<br />
}</span></p>
<p><strong>使块元素水平居中</strong></p>
<p><span class="code">margin:0 auto;</span></p>
<p>其实就是</p>
<p><span class="code">margin-left: auto;<br />
margin-right: auto;</span></p>
<p>这个技巧基本上所有的 CSS 教科书都会有说明，别忘记给它加上个宽度。Exploer 下也可以使用</p>
<p><span class="code">body{<br />
&#160;&#160;&#160; text-align: center;<br />
}</span></p>
<p>然后定义内层容器</p>
<p><span class="code">text-align: left;</span></p>
<p>恢复。</p>
<p><strong>隐藏 Exploer textarea 的滚动条</strong></p>
<p><span class="code">textarea {<br />
&#160;&#160;&#160; overflow:auto;<br />
}</span></p>
<p>Exploer 默认情况下 textarea 会有垂直滚动条（不要问我为什么）。</p>
<p><strong>设置打印分页</strong></p>
<p><span class="code">h2 {<br />
&#160;&#160;&#160; page-break-before:always;<br />
}</span></p>
<p>page-break-before 属性能设置打印网页时的分页。</p>
<p><strong>删除链接上的虚线框</strong></p>
<p><span class="code">a:active, a:focus {<br />
&#160;&#160;&#160; outline:none;<br />
}</span></p>
<p>Firefox 默认会在链接获得焦点（或者点击时）加上条虚线框，使用上面的属性可以删除。</p>
<p><strong>最简单的 CSS 重置</strong></p>
<p><span class="code">* {<br />
&#160;&#160; margin: 0; padding: 0<br />
}</span></p>
<img src ="http://www.blogjava.net/yifeng/aggbug/245410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-12-10 09:53 <a href="http://www.blogjava.net/yifeng/archive/2008/12/10/245410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>引入样式表(css)的四种方式</title><link>http://www.blogjava.net/yifeng/archive/2008/12/10/245409.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Wed, 10 Dec 2008 01:51:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/12/10/245409.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/245409.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/12/10/245409.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/245409.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/245409.html</trackback:ping><description><![CDATA[<p><strong>一、使用STYLE属性： 将STYLE属性直接加在个别的元件标签里。 <br />
&lt;元件(标签) STYLE="性质(属性)1: 设定值1;
性质(属性)2: 设定值2; ...}<br />
例如： <br />
&lt;TD STYLE="COLOR:BLUE; font-size:9pt;
font-family:"标楷体"; line-height:150%><br />
这种用法的优点
是可灵巧应用样式於各标签中，但是缺点则是没有整篇文件的『统一性』。<br />
<br />
二、使用STYLE标签：
将样式规则写在&lt;STYLE>...&lt;/STYLE>标签之中。 <br />
&lt;STYLE
TYPE="text/css"><br />
&lt;!--<br />
样式规则表<br />
--> <br />
&lt;/STYLE><br />
例如：
<br />
&lt;STYLE TYPE="text/css"><br />
&lt;!--<br />
BODY {<br />
　　color:
BLUE;<br />
　　background: #FFFFCC;<br />
　　font-size: 9pt}<br />
TD, P {<br />
　　COLOR:
GREEN;<br />
　　font-size: 9pt}<br />
--><br />
&lt;/STYLE><br />
通常是将整个的
&lt;STYLE>...&lt;/STYLE>结构写在网页的&lt;HEAD>
&lt;/HEAD>部份之中。这种用法的优点就是在於整篇文件的统一性，只要是有声明的的元件即会套用该样式规则。缺点就是在个别元件的灵活度不足。<br />
<br />
三、使用
LINK标签： 将样式规则写在.css的样式档案中，再以&lt;LINK>标签引入。
<br />
假设我们把样式规则存成一个example.css的档案，我们只要在网页中加入<br />
&lt;LINK REL=STYLESHEET
TYPE="text/css" HREF="example.css"><br />
即可套用该样式档案中所制定好的样式了。
通常是将LINK标签写在网页的&lt;head>&lt;/head>部份之中。这种用法的优点就是在於可以把要套用相同样式规则的数篇文件都指定到同一个样式档案即可。缺点也是在个别文件或元件的灵活度不足。
<br />
<br />
<br />
四、使用@import引入： 跟LINK用法很像，但必　放在&lt;STYLE>...&lt;/STYLE> 中。
<br />
&lt;STYLE TYPE="text/css"><br />
&lt;!--<br />
　　@import
url(引入的样式表的位址、路径与档名);<br />
--><br />
&lt;/STYLE> <br />
例如： <br />
&lt;STYLE
TYPE="text/css"><br />
&lt;!--<br />
　　@import url(http://yourweb/
example.css);<br />
--><br />
&lt;/STYLE><br />
要注意的是，行末的分号是绝对不可少的！</strong></p>
<img src ="http://www.blogjava.net/yifeng/aggbug/245409.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-12-10 09:51 <a href="http://www.blogjava.net/yifeng/archive/2008/12/10/245409.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS兼容IE6,IE7,FIREFOX</title><link>http://www.blogjava.net/yifeng/archive/2008/12/10/245408.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Wed, 10 Dec 2008 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/12/10/245408.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/245408.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/12/10/245408.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/245408.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/245408.html</trackback:ping><description><![CDATA[<p class="viscerap">网友们在编辑网站时常遇到CSS兼容的问题，目前浏览器使用统计(Browser %)
</p>
<ul>
    <li>Internet Explorer 48.64
    </li>
    <li>Firefox 43.43
    </li>
    <li>Safari 3.67
    </li>
    <li>Opera 3.31
    </li>
    <li>Mozilla 0.65
    </li>
    <li>Konqueror 0.14
    </li>
    <li>Mozilla compatible agent 0.06
    </li>
    <li>Netscape 0.04
    </li>
    <li>Camino 0.03
    </li>
    <li>not set 0.01
    </li>
</ul>
因此，为了使浏览更加顺畅其制作的网页就应考虑到兼容的重要性！现整理了一下兼容的BUG解决方法和大家分享：<br />
<p>&nbsp;</p>
<p class="viscerap">
</p>
<div>1.DOCTYPE 影响 CSS 处理<br />
2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中,
IE 不行<br />
3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是
margin-left,margin-right) 方可居中<br />
4.FF: 设置 padding 后, div 会增加 height 和 width, 但
IE 不会, 故需要用 !important 多设一个 height 和 width<br />
5.FF: 支持 !important, IE 则忽略, 可用
!important 为 FF 特别设置样式<br />
6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高
line-height:200px; 然后插入文字，就垂直居中了。缺点是要控制内容不要换行<br />
7.cursor: pointer 可以同时在 IE FF
中显示游标手指状， hand 仅 IE 可以<br />
8.FF: 链接加边框和背景色，需设置 display: block, 同时设置 float: left
保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar
中插入一个空格。<br />
9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法：
div{margin:30px!important;margin:28px;}注意这两个margin的顺序一定不能写反，据阿捷的说法!
important这个属性IE不能识别，但别的浏览器可以识别。所以在IE下其实解释成这样：
div{maring:30px;margin:28px}重复定义的话按照最后一个来执行，所以不可以只写margin:XXpx!
important;<br />
10.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义
ul{margin:0;padding:0;}就能解决大部分问题<br />
<br />
注意事项：<br />
1、float的div一定要闭合。<br />
例如：(其中floatA、floatB的属性已经设置为float:left;)
&lt;#div id=&#8221;floatA&#8221; ><br />
&lt;#div id=&#8221;floatB&#8221; ><br />
&lt;#div
id=&#8221;NOTfloatC&#8221;
>这里的NOTfloatC并不希望继续平移，而是希望往下排。<br />
这段代码在IE中毫无问题，问题出在FF。原因是NOTfloatC并非float标签，必须将float标签闭合。<br />
在
&lt;#div class=&#8221;floatB&#8221;><br />
&lt;#div class=&#8221;NOTfloatC&#8221;>之间加上 &lt;#div
class=&#8221;clear&#8221;>这个div一定要注意声明位置，一定要放在最恰当的地方，而且必须与两个具有float属性的div同级，之间不能存
在嵌套关系，否则会产生异常。<br />
并且将clear这种样式定义为为如下即可：
.clear{<br />
clear:both;}此外，为了让高度能自动适应，要在wrapper里面加上overflow:hidden;<br />
当包含float的box的时候，高度自动适应在IE下无效，这时候应该触发IE的layout私有属性(万恶的IE啊！)用zoom:1;可以做到，这样就达到了兼容。<br />
例如某一个wrapper如下定义：
.colwrapper{<br />
overflow:hidden;<br />
zoom:1;<br />
margin:5px
auto;}<br />
2、margin加倍的问题<br />
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。<br />
解决方案是在这个div里面加上display:inline;<br />
例如：<br />
&lt;#div
id=&#8221;imfloat&#8221;><br />
相应的css为<br />
#IamFloat{<br />
float:left;<br />
margin:5px;/*IE下理解为10px*/<br />
display:inline;/*IE下再理解为5px*/}<br />
3、关于容器的包涵关系<br />
很多时候，尤其是容器内有平行布局，例如两、三个float的div时，宽度很容易出现问题。在IE中，外层的宽度会被内层更宽的div挤破。一定要用Photoshop或者Firework量取像素级的精度。<br />
4、关于高度的问题<br />
如果是动态地添加内容，高度最好不要定义。浏览器可以自动伸缩，然而如果是静态的内容，高度最好定好。（似乎有时候不会自动往下撑开，不知道具体怎么回事）<br />
5、最狠的手段
- !important;<br />
如果实在没有办法解决一些细节问题,可以用这个方法.FF对于&#8221;!important&#8221;会自动优先解析,然而IE则会忽略.如下
.tabd1{<br />
background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important;
/*Style for FF*/<br />
background:url(/res/images/up/tab1.gif) no-repeat 1px 0px;
/* Style for IE */}值得注意的是，一定要将xxxx !important
这句放置在另一句之上，上面已经提过<br />
IE7.0出来了，对CSS的支持又有新问题。浏览器多了，网页兼容性更差了，疲于奔命的还是我们
，为解决IE7.0的兼容问题，找来了下面这篇文章：<br />
现在我大部分都是用!important来hack，对于ie6和firefox测试可以正常显示，但是ie7对!important可以正确解释，会导
致页面没按要求显示！搜索了一下，找到一个针对IE7不错的hack方式就是使用&#8220;*+html&#8221;，现在用IE7浏览一下，应该没有问题了。<br />
现在写一个CSS可以这样：<br />
#example
{ color: #333; } /* Moz */<br />
* html #example { color: #666; } /* IE6
*/<br />
*+html #example { color: #999; } /* IE7
*/<br />
那么在firefox下字体颜色显示为#333，IE6下字体颜色显示为#666，IE7下字体颜色显示为#999.
<p>&nbsp;</p>
</div>
<h2>CSS兼容IE6,IE7,FIREFOX的一些收集</h2>
<div>第一种，是CSS HACK的方法
<p>height:20px; /*For Firefox*/<br />
*height:25px; /*For IE7 &amp;
IE6*/<br />
_height:20px; /*For IE6*/</p>
<p>注意顺序。</p>
<p>这样也属于CSS HACK，不过没有上面这样简洁。<br />
#example { color: #333; } /* Moz */<br />
* html
#example { color: #666; } /* IE6 */<br />
*+html #example { color: #999; } /* IE7
*/</p>
<p>第二种是使用IE专用的条件注释<br />
&lt;!&#8211;其他浏览器 &#8211;><br />
&lt;link rel=&#8221;stylesheet&#8221;
type=&#8221;text/css&#8221; href=&#8221;css.css&#8221; /></p>
<p>&lt;!&#8211;[if IE 7]><br />
&lt;!&#8211; 适合于IE7 &#8211;><br />
&lt;link rel=&#8221;stylesheet&#8221;
type=&#8221;text/css&#8221; href=&#8221;ie7.css&#8221; /><br />
&lt;![endif]&#8211;></p>
<p>&lt;!&#8211;[if lte IE 6]><br />
&lt;!&#8211; 适合于IE6及一下 &#8211;><br />
&lt;link
rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;ie.css&#8221; /><br />
&lt;![endif]&#8211;></p>
<p>第三种css filter的办法，以下为经典从国外网站翻译过来的。.</p>
<p>新建一个css样式如下：</p>
<p>#item {<br />
width: 200px;<br />
height: 200px;<br />
background:
red;<br />
}<br />
新建一个div,并使用前面定义的css的样式：</p>
<p>&lt;div id=&#8221;item&#8221;>some text here&lt;/div></p>
<p>在body表现这里加入lang属性,中文为zh：</p>
<p>&lt;body lang=&#8221;en&#8221;></p>
<p>现在对div元素再定义一个样式：</p>
<p>*:lang(en) #item{<br />
background:green !important;<br />
}</p>
<p>这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用,于是也达到了ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式：</p>
<p>#item:empty {<br />
background: green
!important<br />
}<br />
:empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上。</p>
<p>对IE6和FF的兼容可以考虑以前的!important</p>
<p>个人比较喜欢用第一种，简洁，兼容性比较好。</p>
</div>
<div>或许你一直在抱怨为什么要专门为IE和FF写不同的CSS，为什么IE这样让人头疼，然后一边写css，一边咒骂那个可恶的M$
IE.其实对于css的标准支持方面，IE并没有我们想象的那么可恶，关键在于IE和FF的默认值不一样而已，掌握了这个技巧，你会发现写出兼容FF和
IE的css并不是那么困难，或许对于简单的css，你完全可以不用&#8221;!important&#8221;这个东西了。
<p>我们都知道，浏览器在显示网页的时候，都会根据网页的css样式表来决定如何显示，但是我们在样式表中未必会将所有的元素都进行了具体的描述，当
然也没有必要那么做，所以对于那些没有描述的属性，浏览器将采用内置默认的方式来进行显示，譬如文字，如果你没有在css中指定颜色，那么浏览器将采用黑
色或者系统颜色来显示，div或者其他元素的背景，如果在css中没有被指定，浏览器则将其设置为白色或者透明，等等其他未定义的样式均如此。所以有很多
东西出现FF和IE显示不一样的根本原因在于它们的默认显示不一样，而这个默认样式该如何显示我知道在w3中有没有对应的标准来进行规定，因此对于这点也
就别去怪罪IE了。所以解决办法就出来了，那就是对于不统一的默认显示方式，在css中给指定具体数值就可以了，下面我将就我知道的默认标签来进行说明。</p>
<p>列表标签UL
LI，这个是朋友抱怨得最多的标签，说每次遇到这个标签的时候IE和FF总是显示不一致。行，既然如此，你何不在样式表中将这个标签的属性给定义了，如
ul{padding:0;margin:0;}，然后再看看，是不是一致了？对于ul标签，IE会自动缩进几个像素，而FF则不是这样，所以这就是根本
原因.当然,我上面的定义肯定显示不太美观,这个时候你可以手动进行调节,譬如调节成 {padding:0;margin:0 0 0
10px;list-style-position:
inside;},所以今后对于这个标签,只要你发现IE和FF不一致,就去看看对应的css有哪些属性,然后进行夸张的描述,用IE和FireFox查
看之,如果一致则有效.FORM标签,这个标签在IE中,将会自动margin一些边距,而在FF中margin则是0,因此,如果想显示一致,所以最好
在css中指定margin和padding,针对上面两个问题,我的css中一般首先都使用这样的样式ul,form{margin:0;
padding:0;}给定义死了,所以后面就不会为这个头疼了.</p>
<p>关于更多默认值不同的标签,希望大家继续发掘,希望此文能抛砖引玉.</p>
<p>下面的问题不是默认值的问题了.</p>
<p>对于排版,我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float div后面做一个统一的背景,譬如:&lt;div
id=&#8221;page&#8221;> &lt;div id=&#8221;left&#8221;>&lt;/div> &lt;div
id=&#8221;center&#8221;>&lt;/div> &lt;div id=&#8221;right&#8221;>&lt;/div>
&lt;/div>,比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left center
right的向下拉长,而page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成
float,所以我们应该这样解决&lt;div id=&#8221;page&#8221;> &lt;div id=&#8221;bg&#8221;
style=&#8221;float:left;width:100%&#8221;>&lt;div id=&#8221;left&#8221;>&lt;/div> &lt;div
id=&#8221;center&#8221;>&lt;/div> &lt;div id=&#8221;right&#8221;>&lt;/div>
&lt;/div>&lt;/div>,再嵌入一个float left而宽度是100%的DIV解决之.</p>
</div>
<div>
<div>1, !important
<p>随着IE7对!important的支持, !important
方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)<br />
&lt;style><br />
#wrapper<br />
{<br />
width:
100px!important; /* IE7+FF */<br />
width: 80px; /* IE6
*/<br />
}<br />
&lt;/style></p>
<p>2, IE6/IE77对FireFox</p>
<p>*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为
IE7特有标签.<br />
&lt;style><br />
#wrapper<br />
{<br />
#wrapper { width: 120px; } /*
FireFox */<br />
*html #wrapper { width: 80px;} /* ie6 fixed */<br />
*+html #wrapper
{ width: 60px;} /* ie7 fixed, 注意顺序 */<br />
}<br />
&lt;/style></p>
<p>注意:<br />
*+html 对IE7的HACK 必须保证HTML顶部有如下声明：<br />
&lt;!DOCTYPE HTML PUBLIC
&#8220;-//W3C//DTD HTML 4.01
Transitional//EN&#8221;　&#8221;http://www.w3.org/TR/html4/loose.dtd&#8221;></p>
<p>二、万能 float 闭合(非常重要!)</p>
<p>关于 clear float 的原理可参见 [How To Clear Floats Without Structural
Markup]<br />
将以下代码加入Global CSS 中,给需要闭合的div加上 class=&#8221;clearfix&#8221;
即可,屡试不爽.<br />
&lt;style><br />
/* Clear Fix */</p>
<p>.clearfix:after<br />
{<br />
content:&#8221;.&#8221;;<br />
display:block;<br />
height:0;<br />
clear:both;<br />
visibility:hidden;<br />
}<br />
.clearfix<br />
{<br />
display:inline-block;<br />
}<br />
/*
Hide from IE Mac */<br />
.clearfix {display:block;}<br />
/* End hide from IE Mac
*/<br />
/* end of clearfix */<br />
&lt;/style></p>
<p>三、其他兼容技巧(再次啰嗦)</p>
<p>1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决)<br />
2,
居中问题.<br />
1).垂直居中.将 line-height 设置为 当前 div 相同的高度, 再通过 vertical-align: middle.(
注意内容不要换行.)<br />
2).水平居中. margin: 0 auto;(当然不是万能)<br />
3, 若需给 a 标签内内容加上 样式, 需要设置
display: block;(常见于导航标签)<br />
4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下
margin加倍等问题.<br />
5, ul 标签在 FF 下面默认有 list-style 和 padding . 最好事先声明, 以避免不必要的麻烦.
(常见于导航标签和内容列表)<br />
6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow:
hidden.以达到高度自适应.<br />
7, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.</p>
<p>1 针对firefox ie6
ie7的css样式<br />
现在大部分都是用!important来hack，对于ie6和firefox测试可以正常显示，<br />
但是ie7对!important可以正确解释，会导致页面没按要求显示！找到一个针<br />
对IE7不错的hack方式就是使用&#8220;*+html&#8221;，现在用IE7浏览一下，应该没有问题了。<br />
现在写一个CSS可以这样：</p>
<p>#1 { color: #333; } /* Moz */<br />
* html #1 { color: #666; } /* IE6
*/<br />
*+html #1 { color: #999; } /* IE7
*/<br />
那么在firefox下字体颜色显示为#333，IE6下字体颜色显示为#666，IE7下字体颜色显示为#999。</p>
<p>2 css布局中的居中问题<br />
主要的样式定义如下：</p>
<p>body {TEXT-ALIGN: center;}<br />
#center { MARGIN-RIGHT: auto; MARGIN-LEFT:
auto; }<br />
说明：<br />
首先在父级元素定义TEXT-ALIGN:
center;这个的意思就是在父级元素内的内容居中；对于IE这样设定就已经可以了。<br />
但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上&#8220;MARGIN-RIGHT:
auto;MARGIN-LEFT: auto;
&#8221;<br />
需要说明的是，如果你想用这个方法使整个页面要居中，建议不要套在一个DIV里，你可以依次拆出多个div，<br />
只要在每个拆出的div里定义MARGIN-RIGHT:
auto;MARGIN-LEFT: auto; 就可以了。</p>
<p>3 盒模型不同解释.</p>
<p>#box{ width:600px; //for ie6.0- w\idth:500px; //for ff+ie6.0}<br />
#box{
width:600px!important //for ff width:600px; //for ff+ie6.0 width /**/:500px;
//for ie6.0-}</p>
<p>4 浮动ie产生的双倍距离</p>
<p>#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离
display:inline;
//使浮动忽略}<br />
这里细说一下block,inline两个元素,Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,&#8230;不可控制(内嵌元素);</p>
<p>#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的的效果
diplay:table;</p>
<p>5 IE与宽度和高度的问题</p>
<p>IE不认得min-这个定义，但实际上它把正常的width和height当作有min的情况来使。这样问题就大了，如果只用宽度和高度，<br />
正常的浏览器里这两个值就不会变，如果只用min-width和min-height的话，IE下面根本等于没有设置宽度和高度。<br />
比如要设置背景图片，这个宽度是比较重要的。要解决这个问题，可以这样：<br />
#box{
width: 80px; height: 35px;}html>body #box{ width: auto; height: auto;
min-width: 80px; min-height: 35px;}</p>
<p>6 页面的最小宽度</p>
<p>min-width是个非常方便的CSS命令，它可以指定元素最小也不能小于某个宽度，这样就能保证排版一直正确。但IE不认得这个，<br />
而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用，可以把一个&lt;div>
放到 &lt;body> 标签下，然后为div指定一个类：<br />
然后CSS这样设计：<br />
#container{ min-width: 600px;
width:expression(document.body.clientWidth &lt; 600? &#8220;600px&#8221;: &#8220;auto&#8221;
);}<br />
第一个min-width是正常的；但第2行的width使用了Javascript，这只有IE才认得，这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。</p>
<p>7 清除浮动</p>
<p>.hackbox{ display:table; //将对象作为块元素级的表格显示}或者.hackbox{
clear:both;}<br />
或者加入:after（伪对象）,设置在对象后发生的内容，通常和content配合使用，IE不支持此伪对象，非Ie
浏览器支持，<br />
所以并不影响到IE/WIN浏览器。这种的最麻烦的&#8230;&#8230;#box:after{ content: &#8220;.&#8221;; display: block;
height: 0; clear: both; visibility: hidden;}</p>
<p>8 DIV浮动IE文本产生3象素的bug</p>
<p>左边对象浮动，右边采用外补丁的左边距来定位，右边对象内的文本会离左边有3px的间距.</p>
<p>#box{ float:left; width:800px;}#left{ float:left; width:50%;}#right{
width:50%;}*html #left{ margin-right:-3px; //这句是关键}<br />
HTML代码&lt;div
id=&#8221;box&#8221;> &lt;div id=&#8221;left&#8221;>&lt;/div> &lt;div
id=&#8221;right&#8221;>&lt;/div>&lt;/div></p>
<p>9 属性选择器(这个不能算是兼容,是隐藏css的一个bug)</p>
<p>p[id]{}div[id]{}<br />
这个对于IE6.0和IE6.0以下的版本都隐藏,FF和OPera作用<br />
属性选择器和子选择器还是有区别的,子选择器的范围从形式来说缩小了,属性选择器的范围比较大,如p[id]中,所有p标签中有id的都是同样式的.</p>
<p>10 IE捉迷藏的问题</p>
<p>当div应用复杂的时候每个栏中又有一些链接，DIV等这个时候容易发生捉迷藏的问题。<br />
有些内容显示不出来，当鼠标选择这个区域是发现内容确实在页面。<br />
解决办法：对#layout使用line-height属性
或者给#layout使用固定高和宽。页面结构尽量简单。</p>
<p>11 高度不适应</p>
<p>高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节，特别是当内层对象使用<br />
margin 或paddign
时。<br />
例：<br />
&lt;div
id=&#8221;box&#8221;><br />
&lt;p>p对象中的内容&lt;/p><br />
&lt;/div><br />
CSS：#box
{background-color:#eee; }<br />
#box p {margin-top: 20px;margin-bottom: 20px;
text-align:center;
}<br />
解决方法：在P对象上下各加2个空的div对象CSS代码：.1{height:0px;overflow:hidden;}或者为DIV加上border属性。</p>
</div>
</div>
<img src ="http://www.blogjava.net/yifeng/aggbug/245408.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-12-10 09:49 <a href="http://www.blogjava.net/yifeng/archive/2008/12/10/245408.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几个经典的css技巧</title><link>http://www.blogjava.net/yifeng/archive/2008/11/19/241331.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Wed, 19 Nov 2008 05:18:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/11/19/241331.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/241331.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/11/19/241331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/241331.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/241331.html</trackback:ping><description><![CDATA[<span  style="color: #202020; font-family: 宋体; font-size: 14px; line-height: 25px; ">
<p><strong>使用 line-height 垂直居中</strong></p>
<p><span class="code">line-height:24px;</span></p>
<p>使用固定宽度的容器并且需要一行垂直居中时，使用 line-height 即可（高度与父层容器一致），更多的垂直居中总结可以看这里。</p>
<p><strong>清除容器浮动</strong></p>
<p><span class="code">#main {<br />
&#160;&#160;&#160; overflow:hidden;<br />
}</span></p>
<p>期前也提到过这样的问题，更多信息可以看这里。</p>
<p><strong>不让链接折行</strong></p>
<p><span class="code">a {<br />
&#160;&#160;&#160; white-space:nowrap;<br />
}</span></p>
<p>上面的设定就能避免链接折行，不过个人建议长链接会有相应的这行（有关换行方面的讨论，参看圆心的记录）。</p>
<p><strong>始终让 Firefox 显示滚动条</strong></p>
<p><span class="code">html {<br />
&#160;&#160;&#160; overflow:-moz-scrollbars-vertical;<br />
}</span></p>
<p>更多的 Mozilla/Firefox 私有 CSS 属性可以参考这里。需跨浏览器的支持，也可以使用</p>
<p><span class="code">body, html {<br />
&#160;&#160;&#160; min-height:101%;<br />
}</span></p>
<p><strong>使块元素水平居中</strong></p>
<p><span class="code">margin:0 auto;</span></p>
<p>其实就是</p>
<p><span class="code">margin-left: auto;<br />
margin-right: auto;</span></p>
<p>这个技巧基本上所有的 CSS 教科书都会有说明，别忘记给它加上个宽度。Exploer 下也可以使用</p>
<p><span class="code">body{<br />
&#160;&#160;&#160; text-align: center;<br />
}</span></p>
<p>然后定义内层容器</p>
<p><span class="code">text-align: left;</span></p>
<p>恢复。</p>
<p><strong>隐藏 Exploer textarea 的滚动条</strong></p>
<p><span class="code">textarea {<br />
&#160;&#160;&#160; overflow:auto;<br />
}</span></p>
<p>Exploer 默认情况下 textarea 会有垂直滚动条（不要问我为什么）。</p>
<p><strong>设置打印分页</strong></p>
<p><span class="code">h2 {<br />
&#160;&#160;&#160; page-break-before:always;<br />
}</span></p>
<p>page-break-before 属性能设置打印网页时的分页。</p>
<p><strong>删除链接上的虚线框</strong></p>
<p><span class="code">a:active, a:focus {<br />
&#160;&#160;&#160; outline:none;<br />
}</span></p>
<p>Firefox 默认会在链接获得焦点（或者点击时）加上条虚线框，使用上面的属性可以删除。</p>
<p><strong>最简单的 CSS 重置</strong></p>
<p><span class="code">* {<br />
&#160;&#160; margin: 0; padding: 0<br />
}</span></p>
<p>如果想&#8220;复杂&#8221;，参考YUI 的做法（还有这里）。原文留言中也有用户说了他们的观点</p>
<p><span class="code">I have to agree with Niall Doherty, * {margin: 0px; padding: 0px;}<br />
basically means "traverse every css element and give it these&#160;<br />
attributes". That is a very unnecessary strain on the server and&#160;<br />
a bad semantic practice, as you have to give some elements&#160;<br />
padding/margin again, after stripping them.</span></p>
</span>
<img src ="http://www.blogjava.net/yifeng/aggbug/241331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-11-19 13:18 <a href="http://www.blogjava.net/yifeng/archive/2008/11/19/241331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IE与Firefox的CSS兼容问题 </title><link>http://www.blogjava.net/yifeng/archive/2008/09/28/231588.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Sat, 27 Sep 2008 16:13:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/09/28/231588.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/231588.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/09/28/231588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/231588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/231588.html</trackback:ping><description><![CDATA[CSS对浏览器器的兼容性具有很高的价值，通常情况下IE和Firefox存在很大的解析差异，这里介绍一下兼容要点。<br />
<br />
　　<span style="font-size: 18px; color: red; font-family: '黑体'">常见兼容问题：</span><br />
<br />
　　1.DOCTYPE 影响 CSS 处理<br />
<br />
　　2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行<br />
<br />
　　3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中<br />
<br />
　　4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width<br />
<br />
　　5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式<br />
<br />
　　6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字，就垂直居中了。缺点是要控制内容不要换行<br />
<br />
　　7.cursor: pointer 可以同时在 IE FF 中显示游标手指状， hand 仅 IE 可以<br />
<br />
　　8.FF: 链接加边框和背景色，需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。<br />
<br />
　　9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法：
<div class="code">div{margin:30px!important;margin:28px;}</div>
　　注意这两个margin的顺序一定不能写反，据阿捷的说法!important这个属性IE不能识别，但别的浏览器可以识别。所以在IE下其实解释成这样：
<div class="code">div{maring:30px;margin:28px}</div>
　　重复定义的话按照最后一个来执行，所以不可以只写margin:XXpx!important;<br />
<br />
　　10.IE5 和IE6的BOX解释不一致<br />
　　IE5下
<div class="code">div{width:300px;margin:0 10px 0 10px;}</div>
　　div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px，而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改
<div class="code">div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}</div>
　　关于这个/**/是什么我也不太明白，只知道IE5和firefox都支持但IE6不支持，如果有人理解的话，请告诉我一声，谢了！：）<br />
<br />
　　11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义
<div class="code">ul{margin:0;padding:0;}</div>
　　就能解决大部分问题<br />
<br />
　　<span style="font-size: 18px; color: red; font-family: '黑体'">注意事项：</span><br />
<br />
　　1、float的div一定要闭合。<br />
<br />
　　例如：(其中floatA、floatB的属性已经设置为float:left;)
<div class="code">&lt;#div id="floatA" &gt;&lt;/#div&gt;<br />
&lt;#div id="floatB" &gt;&lt;/#div&gt;<br />
&lt;#div id="NOTfloatC" &gt;&lt;/#div&gt;</div>
　　这里的NOTfloatC并不希望继续平移，而是希望往下排。<br />
　　这段代码在IE中毫无问题，问题出在FF。原因是NOTfloatC并非float标签，必须将float标签闭合。<br />
　　在
<div class="code">&lt;#div class="floatB"&gt;&lt;/#div&gt;<br />
&lt;#div class="NOTfloatC"&gt;&lt;/#div&gt;</div>
　　之间加上
<div class="code">&lt;#div class="clear"&gt;&lt;/#div&gt;</div>
　　这个div一定要注意声明位置，一定要放在最恰当的地方，而且必须与两个具有float属性的div同级，之间不能存在嵌套关系，否则会产生异常。<br />
　　并且将clear这种样式定义为为如下即可：
<div class="code">.clear{<br />
clear:both;}</div>
　　此外，为了让高度能自动适应，要在wrapper里面加上overflow:hidden;<br />
　　当包含float的box的时候，高度自动适应在IE下无效，这时候应该触发IE的layout私有属性(万恶的IE啊！)用zoom:1;可以做到，这样就达到了兼容。<br />
　　例如某一个wrapper如下定义：
<div class="code">.colwrapper{<br />
overflow:hidden;<br />
zoom:1;<br />
margin:5px auto;}</div>
<br />
　　2、margin加倍的问题。<br />
<br />
　　设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。<br />
　　解决方案是在这个div里面加上display:inline;<br />
例如：<br />
<div class="code">&lt;#div id="imfloat"&gt;&lt;/#div&gt;<br />
</div>
<br />
　　相应的css为<br />
<div class="code">#IamFloat{<br />
float:left;<br />
margin:5px;/*IE下理解为10px*/<br />
display:inline;/*IE下再理解为5px*/}</div>
<br />
　　3、关于容器的包涵关系<br />
<br />
　　很多时候，尤其是容器内有平行布局，例如两、三个float的div时，宽度很容易出现问题。在IE中，外层的宽度会被内层更宽的div挤破。一定要用Photoshop或者Firework量取像素级的精度。<br />
<br />
　　4、关于高度的问题<br />
<br />
　　如果是动态地添加内容，高度最好不要定义。浏览器可以自动伸缩，然而如果是静态的内容，高度最好定好。（似乎有时候不会自动往下撑开，不知道具体怎么回事）<br />
<br />
　　5、最狠的手段 - !important;<br />
<br />
　　如果实在没有办法解决一些细节问题,可以用这个方法.FF对于"!important"会自动优先解析,然而IE则会忽略.如下
<div class="code">.tabd1{<br />
background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/<br />
background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */}</div>
<p>　　值得注意的是，一定要将xxxx !important 这句放置在另一句之上，上面已经提过<!-- Added by RelatedTopic, plugin for Bo-Blog 2.0.0 --> </p>
<p>&nbsp;</p>
 <img src ="http://www.blogjava.net/yifeng/aggbug/231588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-09-28 00:13 <a href="http://www.blogjava.net/yifeng/archive/2008/09/28/231588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>css教程–十步学会用css建站(全)</title><link>http://www.blogjava.net/yifeng/archive/2008/09/02/226455.html</link><dc:creator>忆风</dc:creator><author>忆风</author><pubDate>Tue, 02 Sep 2008 09:45:00 GMT</pubDate><guid>http://www.blogjava.net/yifeng/archive/2008/09/02/226455.html</guid><wfw:comment>http://www.blogjava.net/yifeng/comments/226455.html</wfw:comment><comments>http://www.blogjava.net/yifeng/archive/2008/09/02/226455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yifeng/comments/commentRss/226455.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yifeng/services/trackbacks/226455.html</trackback:ping><description><![CDATA[<p><strong>目录：</strong> </p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#c1">第一步：规划网站，本教程将以图示为例构建网站；</a></p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#c2">第二步：创建html模板及文件目录等；</a></p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#c3">第三步：将网站分为五个div，网页基本布局的基础；</a></p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#c4">第四步：网页布局与div浮动等；</a></p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#c5">第五步：网页主要框架之外的附加结构的布局与表现；</a></p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#6">第六步：页面内的基本文本的样式(css)设置；</a></p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#c7">第七步：网站头部图标与logo部分的设计；</a></p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#c8">第八步：页脚信息(版权等)的表现设置；</a></p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#c9">第九步：导航条的制作(较难)；</a></p>
<p><a href="http://jorux.com/archives/10steps-built-web-with-css/#c10">第十步：解决IE浏览器的显示BUG；</a></p>
<br />
<br />
<a title="地址" href="http://jorux.com/archives/10steps-built-web-with-css/">地址</a>
<img src ="http://www.blogjava.net/yifeng/aggbug/226455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yifeng/" target="_blank">忆风</a> 2008-09-02 17:45 <a href="http://www.blogjava.net/yifeng/archive/2008/09/02/226455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>