??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲明星合成图综合区在线,国产亚洲精久久久久久无码,亚洲色偷偷偷网站色偷一区http://www.tkk7.com/DreamFight/articles/335559.htmlDreamFightDreamFightTue, 19 Oct 2010 05:01:00 GMThttp://www.tkk7.com/DreamFight/articles/335559.htmlhttp://www.tkk7.com/DreamFight/comments/335559.htmlhttp://www.tkk7.com/DreamFight/articles/335559.html#Feedback0http://www.tkk7.com/DreamFight/comments/commentRss/335559.htmlhttp://www.tkk7.com/DreamFight/services/trackbacks/335559.html

|页可见区域宽:document.body.clientWidth
|页可见区域高:document.body.clientHeight
|页可见区域宽:document.body.offsetWidth (包括边线的宽)
|页可见区域高:document.body.offsetHeight (包括边线的宽)
|页正文全文宽:document.body.scrollWidth
|页正文全文高:document.body.scrollHeight
|页被卷ȝ高:document.body.scrollTop
|页被卷ȝ左:document.body.scrollLeft
|页正文部分上:window.screenTop
|页正文部分左:window.screenLeft
屏幕分L率的高:window.screen.height
屏幕分L率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth

HTML_定位:scrollLeft,scrollWidth,clientWidth,offsetWidth
scrollHeight: 获取对象的滚动高度?br /> scrollLeft:讄或获取位于对象左边界和窗口中目前可见内容的最左端之间的距?br /> scrollTop:讄或获取位于对象最端和窗口中可见内容的最端之间的距?br /> scrollWidth:获取对象的滚动宽?br /> offsetHeight:获取对象相对于版面或q坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或?offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或?offsetTop 属性指定的父坐标的计算端位置
event.clientX 相对文档的水q_?br /> event.clientY 相对文档的垂直?br /> event.offsetX 相对容器的水q_?br /> event.offsetY 相对容器的垂直坐?br /> document.documentElement.scrollTop 垂直方向滚动的?br /> event.clientX+document.documentElement.scrollTop 相对文档的水q_?垂直方向滚动的量


IEQFireFox 差异如下Q?/p>

IE6.0、FF1.06+Q?/p>

clientWidth = width + padding

clientHeight = height + padding

offsetWidth = width + padding + border

offsetHeight = height + padding + border

IE5.0/5.5Q?br /> clientWidth = width - border

clientHeight = height - border

offsetWidth = width

offsetHeight = height

(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无?

|页可见区域宽: document.body.clientWidth
|页可见区域高: document.body.clientHeight
|页可见区域宽: document.body.offsetWidth (包括边线的宽)
|页可见区域高: document.body.offsetHeight (包括边线的高)
|页正文全文宽: document.body.scrollWidth
|页正文全文高: document.body.scrollHeight
|页被卷ȝ高: document.body.scrollTop
|页被卷ȝ左: document.body.scrollLeft
|页正文部分上: window.screenTop
|页正文部分左: window.screenLeft
屏幕分L率的高: window.screen.height
屏幕分L率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth

Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?/p>

技术要?br /> 本节代码主要使用了Document对象关于H口的一些属性,q些属性的主要功能和用法如下?/p>

要得到窗口的寸Q对于不同的览器,需要用不同的属性和ҎQ若要检窗口的真实寸Q在Netscape下需要用Window的属性;? IE下需要深入Document内部对bodyq行;在DOM环境下,若要得到H口的尺寸,需要注意根元素的尺寸,而不是元素?/p>

Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度?/p>

Document对象的body属性对应HTML文档的标{。Document对象的documentElement属性则表示HTML文档的根节点?/p>

document.body.clientHeight表示HTML文档所在窗口的当前高度。document.body. clientWidth表示HTML文档所在窗口的当前宽度?/p>

实现代码

1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            20
            21
            22
            23
            24
            25
            26
            27
            28
            29
            30
            31
            32
            33
            34
            35
            36
            37
            38
            39
            40
            41
            42
            43
            44
            45
            46
            47
            48
            
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
            <title>误整浏览器H口</title>
            <meta http-equiv="content-type" content="text/html; charset=gb2312">
            </meta></head>
            <body>
            <h2 align="center">误整浏览器H口大小</h2><hr />
            <form action="#" method="get" name="form1" id="form1">
            <!--昄览器窗口的实际寸-->
            览器窗??实际高度: <input type="text" name="availHeight" size="4"/><br />
            览器窗??实际宽度: <input type="text" name="availWidth" size="4"/><br />
            </form>
            <script type="text/javascript">
            <!--
            var winWidth = 0;
            var winHeight = 0;
            function findDimensions() //函数Q获取尺?
            {
            //获取H口宽度
            if (window.innerWidth)
            winWidth = window.innerWidth;
            else if ((document.body) && (document.body.clientWidth))
            winWidth = document.body.clientWidth;
            //获取H口高度
            if (window.innerHeight)
            winHeight = window.innerHeight;
            else if ((document.body) && (document.body.clientHeight))
            winHeight = document.body.clientHeight;
            //通过深入Document内部对bodyq行,获取H口大小
            if (document.documentElement  && document.documentElement.clientHeight && document.documentElement.clientWidth)
            {
            winHeight = document.documentElement.clientHeight;
            winWidth = document.documentElement.clientWidth;
            }
            //l果输出至两个文本框
            document.form1.availHeight.value= winHeight;
            document.form1.availWidth.value= winWidth;
            }
            findDimensions();
            //调用函数Q获取数?
            window.onresize=findDimensions;
             
            //-->
            </script>
            </body>
            </html>

源程序解?/p>

Q?Q程序首先徏立一个表单,包含两个文本框,用于昄H口当前的宽度和高度Qƈ且,其数g随窗口大的改变而变化?/p>

Q?Q在随后的JavaScript代码中,首先定义了两个变量winWidth和winHeightQ用于保存窗口的高度值和宽度倹{?/p>

Q?Q然后,在函数findDimensions ( )中,使用window.innerHeight和window.innerWidth得到H口的高度和宽度Qƈ二者保存在前述两个变量中?/p>

Q?Q再通过深入Document内部对bodyq行,获取H口大小Qƈ存储在前qC个变量中?/p>

Q?Q在函数的最后,通过按名U访问表单元素,l果输出至两个文本框?/p>

Q?Q在JavaScript代码的最后,通过调用findDimensions ( )函数Q完成整个操作?br />



DreamFight 2010-10-19 13:01 发表评论
]]>
利用js使png透明囑փ在ie6下正怋?/title><link>http://www.tkk7.com/DreamFight/articles/335343.html</link><dc:creator>DreamFight</dc:creator><author>DreamFight</author><pubDate>Sun, 17 Oct 2010 01:05:00 GMT</pubDate><guid>http://www.tkk7.com/DreamFight/articles/335343.html</guid><wfw:comment>http://www.tkk7.com/DreamFight/comments/335343.html</wfw:comment><comments>http://www.tkk7.com/DreamFight/articles/335343.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/DreamFight/comments/commentRss/335343.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/DreamFight/services/trackbacks/335343.html</trackback:ping><description><![CDATA[<br /> 详细q解在下Ҏ件中请下载用:<br /> <a href="http://www.tkk7.com/Files/DreamFight/msiepng.rar">http://www.tkk7.com/Files/DreamFight/msiepng.rar</a> <img src ="http://www.tkk7.com/DreamFight/aggbug/335343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/DreamFight/" target="_blank">DreamFight</a> 2010-10-17 09:05 <a href="http://www.tkk7.com/DreamFight/articles/335343.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用js动态改变css样式?/title><link>http://www.tkk7.com/DreamFight/articles/335342.html</link><dc:creator>DreamFight</dc:creator><author>DreamFight</author><pubDate>Sun, 17 Oct 2010 00:48:00 GMT</pubDate><guid>http://www.tkk7.com/DreamFight/articles/335342.html</guid><wfw:comment>http://www.tkk7.com/DreamFight/comments/335342.html</wfw:comment><comments>http://www.tkk7.com/DreamFight/articles/335342.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/DreamFight/comments/commentRss/335342.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/DreamFight/services/trackbacks/335342.html</trackback:ping><description><![CDATA[用setAttributeҎ实现一个页面两份样式表的效果,具体Ҏ如下Q?<br /> <br /> W一步:在连接样式表的元素里定义一个id,例如 <br /> <br /> <link href="1.css" rel="stylesheet" type="text/css" id="css"> <br /> <br /> 我定义的id是css?<br /> <br /> W二步:写一个js函数Q代码如下: <br /> <br /> <script type="text/javascript"> <br /> function change(a){ <br /> var css=document.getElementById("css"); <br /> if (a==1) <br /> css.setAttribute("href","1.css"); <br /> if (a==2) <br /> css.setAttribute("href","2.css"); <br /> } <br /> </script> <br /> <br /> q个函数的code可以攑֜面的Q何地斏V?<br /> <br /> W三步:为改变页面的样式表的q接d一个函数的触发事gQ代码如下: <br /> <br /> <a href="#" onClick="change(1)">1.css</a> <br /> <a href="#" onClick="change(2)">2.css</a> <br /> <br /> 该效果在IE和FF下均试通过Q相信大家看完后因该非常明了Q利用这个方法我们可以让览者自己选择需要显C的样式表,比如q老者可以选择一个字体较大的样式表。这里需要注意的两点是: <br /> <br /> 在这个例子中函数名function后面的名字不能ؓlinks或者linkQ如果ؓlinks或者linkQ样式表不被改变,具体什么原因我也不大清楚,可能是javascript的保留字W?<br /> 另外如果是改变整个页面的样式Q你需要在样式表文仉定义body的高度ؓ100%<br /> <br /> <br /> q有一U方法:<br /> <br /> <script language="javascript"> <br /> var b_v = navigator.appVersion; <br /> var IE6 = b_v.search(/MSIE 6/i) != -1; <br /> var IE7 = b_v.search(/MSIE 7/i) != -1; <br /> if (IE6) {<br /> document.write("<link href=""css/neiye_ie6.css"" rel=""stylesheet"" type=""text/css"" id=""cssStyle"" />");<br /> }else{<br /> document.write("<link href=""css/neiye.css"" rel=""stylesheet"" type=""text/css"" id=""cssStyle"" />");<br /> } <br /> </script> <br /> <br /> <br /> <br /> <br /> <a > 自动化养鸡设?/a><br /> <img src ="http://www.tkk7.com/DreamFight/aggbug/335342.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/DreamFight/" target="_blank">DreamFight</a> 2010-10-17 08:48 <a href="http://www.tkk7.com/DreamFight/articles/335342.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>区别不同览?/title><link>http://www.tkk7.com/DreamFight/articles/326339.html</link><dc:creator>DreamFight</dc:creator><author>DreamFight</author><pubDate>Fri, 16 Jul 2010 10:12:00 GMT</pubDate><guid>http://www.tkk7.com/DreamFight/articles/326339.html</guid><wfw:comment>http://www.tkk7.com/DreamFight/comments/326339.html</wfw:comment><comments>http://www.tkk7.com/DreamFight/articles/326339.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/DreamFight/comments/commentRss/326339.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/DreamFight/services/trackbacks/326339.html</trackback:ping><description><![CDATA[<h3>区别不同览器,CSS hack写法Q?/h3> <br /> <div>区别<span id="fbpnpbn" class="blue">IE6</span>?span class="orange">FF</span>Q?/div> <div>       background:<span id="vjhpdzz" class="orange">orange</span>;<span id="rppbztv" class="red">*</span>background:<span id="nnbdpxp" class="blue">blue</span>;</div> <br /> <div>区别<span id="ljnjddj" class="blue">IE6</span>?span class="green">IE7</span>Q?/div> <div>       background:<span id="hbfzzjr" class="green">green</span> <span id="xpttrjj" class="red">!important</span>;background:<span id="npbhjrz" class="blue">blue</span>;</div> <br /> <div>区别<span id="xxjnjhh" class="green">IE7</span>?span class="orange">FF</span>Q?/div> <div>       background:<span id="ztnjfnt" class="orange">orange</span>; <span id="dfztzxn" class="red">*</span>background:<span id="ltxlfnv" class="green">green</span>;</div> <br /> <div>区别<span id="prlpvdl" class="orange">FF</span>Q?span class="green">IE7</span>Q?span class="blue">IE6</span>Q?/div> <div>       background:<span id="hjnzbtj" class="orange">orange</span>;<span id="xzdhbbj" class="red">*</span>background:<span id="htfzvdt" class="green">green</span> <span id="zhnpdjr" class="red">!important</span>;*background:<span id="hhdxzzh" class="blue">blue</span>;</div> <br /> <div>注:IE都能识别*;标准览?如FF)不能识别*Q?/div> <div>IE6能识?Q但不能识别 !important,</div> <div>IE7能识?Q也能识?important;</div> <div>FF不能识别*Q但能识?important;</div> <br /> <table class="hack" cellspacing="1" cellpadding="0" border="0"> <tbody> <tr> <td><br /> </td> <td>IE6</td> <td>IE7</td> <td>FF</td> </tr> <tr> <td>*</td> <td>√</td> <td>√</td> <td>×</td> </tr> <tr> <td>!important</td> <td>×</td> <td>√</td> <td>√</td> </tr> </tbody> </table> <br /> <br /> <hr /> 另外再补充一个,下划U?<span id="zjfzdll" class="red">_</span>",<br /> IE6支持下划U,IE7和firefox均不支持下划Uѝ?br /> <br /> 于是大家q可以这h区分<span id="hpthlbb" class="blue">IE6</span>Q?span class="green">IE7</span>Q?span class="orange">firefox</span><br /> : background:<span id="jrfzvbt" class="orange">orange</span>;<span id="jxzlzhf" class="red">*</span>background:<span id="lvbpblr" class="green">green</span>;<span id="nvznzrz" class="red">_</span>background:<span id="vpfbxnn" class="blue">blue</span>; <br /> <br /> 注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中_IE6的写在最后面?br /> <img src ="http://www.tkk7.com/DreamFight/aggbug/326339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/DreamFight/" target="_blank">DreamFight</a> 2010-07-16 18:12 <a href="http://www.tkk7.com/DreamFight/articles/326339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>The Underscore Hack http://www.tkk7.com/DreamFight/articles/323612.htmlDreamFightDreamFightTue, 15 Jun 2010 06:22:00 GMThttp://www.tkk7.com/DreamFight/articles/323612.htmlhttp://www.tkk7.com/DreamFight/comments/323612.htmlhttp://www.tkk7.com/DreamFight/articles/323612.html#Feedback0http://www.tkk7.com/DreamFight/comments/commentRss/323612.htmlhttp://www.tkk7.com/DreamFight/services/trackbacks/323612.html
  • 下划U?#8220;_”?CSS2.1 规范中是被承认的 CSS 标识?
  • 览器会忽略未知?CSS 属性?
  • MSIE5+QWindowsQ会忽略 CSS 属性名前的 “_”?
  • 因此Q这?CSS 的分析是Q例如: _color:red。首, 正确的,对于 CSS2.1 规范来说是被允许的(即软g验证Q只支持 CSS2.0 老版本,说它是一?Bug Q他们是错误的,但它是正的Q。其ơ, 被Q何浏览器忽略Q除?IE 。最后, 当颜色被处理Q在 WinIE 中是U色?/p>

    如上Q这是所说的 IE ?Bug Q特征是以简单明了的方式建立仅对 WinIE 有效?CSS 属性(MacIE 没有q样?Bug 和特征)。这样很Ҏ调整Q例如被错误执行的位|:?WinIE 中被调整Q见例子Q?/p>

    #menu {
    position
    : fixed;
    _position
    : absolute;
    ...
    }

    同样的方法可以用来调?min-height 的属性在 WinIE 中消q现象Q见例子Q?/p>

    #box {
    min
    -height: 300px;
    height
    : auto;
    _height
    : 300px;
    ...
    }

    注:q是利用另外一?WinIE ?Bug Q当 height: auto 时处理ؓ overflowQvisible 。详l资料,看这文?a target="_blank">《The “min-height” Hack”?/a>?/p>

    试环境QWindows’ MSIE 5, 5.5, 6, Opera, Mac OSX’s MSIE 5, Safari, Camino, Mozilla , Firefox?/p>

    补充说明Q?/strong>标准模式下的 IE7 不再解析下划线开头的属性,但是会把它当作一?#8220;用户自定?#8221;属性。自定义属性ƈ不能应用到表CQ但是它会存在于文档模型中,可以使用脚本来访问?/p>

    而非标准模式下的IE7依旧解析“_” Bug?/p>




    屏蔽IE览器(也就是IE下不昄Q?
    *:lang(zh) select {font:12px  !important;} /*FF,OP可见Q特别提醒:׃Opera最q的升Q目前此句只为FF所识别*/
    select:empty {font:12px  !important;} /*safari可见*/
    q里select是选择W,Ҏ情况更换。第二句是MAC上safari览器独有的?/span>
    仅IE7与IE5.0可以识别
    *+html  select {}
    当面临需要只针对IE7与IE5.0做样式的时候就可以采用q个HACK?/span>
    仅IE7可以识别
    *+html  select {…!important;}
    当面临需要只针对IE7做样式的时候就可以采用q个HACK?/span>
    IE6及IE6以下识别
    * html  select {}
    q个地方要特别注意很多博客都写成了是IE6的HACK其实IE5.x同样可以识别q个HACK。其它浏览器不识别?/span>
    html/**/ >body  select {}
    q句与上一句的作用相同?/span>
    仅IE6不识别,屏蔽IE6
    select { display /*屏蔽IE6*/:none;}
    q里主要是通过CSS注释分开一个属性与|注释在冒号前?/span>
    仅IE6与IE5不识别,屏蔽IE6与IE5
    select/**/ { display /*IE6,IE5不识?/:none;}
    q里与上面一句不同的是在选择W与花括号之间多了一个CSS注释?strong>不屏蔽IE5.5
    仅IE5不识别,屏蔽IE5
    select/*IE5不识?/ {}
    q一句是在上一句中L了属性区的注释。只有IE5不识别,IE5.5可以识别?/span>
    盒模型解x?
    selct {width:IE5.x宽度; voice-family :"\"}\""; voice-family:inherit; width:正确宽度;}
    盒模型的清除Ҏ不是通过!important来处理的。这点要明确?/span>
    清除动
    select:after {content:"."; display:block; height:0; clear:both; visibility:hidden;}
    在Firefox中,当子U都为Q动时Q那么父U的高度无法完全的包住整个子Q那么这时用q个清除动的HACK来对父做一ơ定义,那么可以解册个问题?/span>
    截字省略?
    select { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
    q个是在出长度后会自行的截掉多出部分的文字Qƈ以省略号l尾Q很好的一个技术。只是目前Firefoxq不支持?/span>
    只有Opera识别
    @media all and (min-width: 0px){ select {……} }
    针对Opera览器做单独的设定?/span>

    以上都是写CSS中的一些HACKQ这些都是用来解军_部的兼容性问题,如果希望把兼Ҏ的内容也分d来,不妨试一下下面的几种qo器。这些过滤器有的是写在CSS中通过qo器导入特别的样式Q也有的是写在HTML中的通过条g来链接或是导入需要的补丁样式?/p>

    IE5.x的过滤器Q只有IE5.x可见
    @media tty {
    i{content:"\";/*" "*/}} @import 'ie5win.css'; /*";}
    }/* */
    IE5/MAC的过滤器Q一般用不着
    /*\*//*/
        @import "ie5mac.css";
    /**/
    IE的if条gHack
    <!--[if IE]> Only IE <![endif]-->
    所有的IE可识?/span>
    <!--[if IE 5.0]> Only IE 5.0 <![endif]-->
    只有IE5.0可以识别
    <!--[if gt IE 5.0]> Only IE 5.0+ <![endif]-->
    IE5.0包换IE5.5都可以识?/span>
    <!--[if lt IE 6]> Only IE 6- <![endif]-->
    仅IE6可识?/span>
    <!--[if gte IE 6]> Only IE 6/+ <![endif]-->
    IE6以及IE6以下的IE5.x都可识别
    <!--[if lte IE 7]> Only IE 7/- <![endif]-->
    仅IE7可识?/span>

    以上内容可能q不全面Q欢q大家能和我一hq些技巧都汇总v来,Z后工作的查询提供一个方便,同时在这里感谢那些研I出q些HACK的作者们?/p>

     



    DreamFight 2010-06-15 14:22 发表评论
    ]]>
    ȝ清除动的方?/title><link>http://www.tkk7.com/DreamFight/articles/314916.html</link><dc:creator>DreamFight</dc:creator><author>DreamFight</author><pubDate>Tue, 09 Mar 2010 02:22:00 GMT</pubDate><guid>http://www.tkk7.com/DreamFight/articles/314916.html</guid><wfw:comment>http://www.tkk7.com/DreamFight/comments/314916.html</wfw:comment><comments>http://www.tkk7.com/DreamFight/articles/314916.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/DreamFight/comments/commentRss/314916.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/DreamFight/services/trackbacks/314916.html</trackback:ping><description><![CDATA[http://www.webjx.com/css/divcss-5991.html<br /> <h1>CSS教程Qȝ清除动的方?/h1> <div id="vpjfbrr" class="clear"></div> <div id="hztzdlj" class="clear"></div> <div class="xlzbfxf" id="entrybody"> <p> <table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"> <tbody> <tr> <td style="word-wrap: break-word" bgcolor="#fdfddf"><font color="#ff0000">|页制作Webjx文章介:</font><font color="#000000">很多人都有研I合Q动元素的问题Q但是解x法却不一P也ƈ不是每一U方法都善美。闭合Q动元素(或者叫清除动Q是web标准设计中经怼遇到的一个问题,因此Q这里我xȝ一下目前经常用到的几种ҎQƈ比较一下他们的易用性和适用环境。如果你有更好的?/font></td> </tr> </tbody> </table> </p> <p>作者:Dudo</p> <p>原文q接Q?a target="_blank">http://www.dudo.org/article.asp?id=239</a></p> <p>很多人都有研I合Q动元素的问题Q但是解x法却不一P也ƈ不是每一U方法都善美。闭合Q动元素(或者叫清除动Q是web标准设计中经怼遇到的一个问题,因此Q这里我xȝ一下目前经常用到的几种ҎQƈ比较一下他们的易用性和适用环境。如果你有更好的Ҏ不妨提出来大家一赯论?/p> <h3>问题的提出:</h3> <p>最单的一U情形就是我们把一个小的、固定宽度的div元素Q比如导航、引用等Q和其他元素内容一起包含在一个大的div中。比如下面这D代码:</p> <p class="code"><div id="outer">     <br />   <div id="inner"> <h2>A Column</h2> </div>     <br />   <h1>Main Content</h1>     <br />   <p>Lorem ipsum</p>     <br /> </div></p> <p>我们可以?#8220;#inner”讑֮一个宽度|比如?0%Q,但是׃div是块U元素,即我们讑֮了宽度,其后面的内容也只能在下一行中昄Q除非我们给它设定一个Q动属性(无论是向左Q动或者向xQ动)。那么此时会产生我们上面提到的问题了?/p> <p>如果“#inner”的宽度和高度都比“#outer”,q不会有问题?/p> <p>但是Q如?#8220;#inner”的高度超q了“#outer”Q那么的底部׃出“#outer”的底部。这是因为我们ؓ“#inner”讑֮了float属性后Q它׃q的文本流Q无论其宽度和高度怎么变化都不会“#outer”跟随变化?/p> <p><strong>例一Q未清除动时的布局表现</strong></p> <p><textarea class="codeTextarea"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 清除动Q闭合Q动元素)例一Q问题的提出 </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> #outer { background-color:#999; border:3px solid #666; } #inner { background-color:#ccc; float:left; width:26%; } #inner *, #outer p { margin: 5px 5px 5px 10px; } kbd { display:block; background:#fafaff; border:1px solid #b0c0d0; text-indent:0px; } kbd:first-line { color:#c3c; font-weight:bold; text-indent:20px } #footer { clear:both; border:3px solid #333; background-color:#999; margin-top:15px; height:60px; line-height:60px } ul,li,h1 { margin:0;padding:0} </style> <script type="text/javascript"> // <![CDATA[ /* Pixy's filler generator - http://www.pixy.cz/blogg/clanky/css-3col-layout/ */ function toggleContent(name,n) { var i,t='',el = document.getElementById(name); if (!el.origCont) el.origCont = el.innerHTML; for (i=0;i<n;i++) t += el.origCont; el.innerHTML = t; } // ]]> </script> </head> <body> <div id="outer"> <div id="inner"> <h1>A Column</h1> <kbd>#inner {<br/> float:left;<br/> width:26%;<br/> }</kbd> <p>点击下面的链接以改变该列的高?lt;/p> <ul id="lccont"> <li><a href="javascript:toggleContent('lccont',1)">~短</a></li> <li> <a href="javascript:toggleContent('lccont',5)">加长</a> </li><li> <a href="javascript:toggleContent('lccont',10)">再长?lt;/a></li> <li>Q-Q-Q-Q?lt;/li> </ul> </div> <h1>Main Content</h1> <p><kbd>#outer <br />{<br /> background-color:#fff;<br /> width:100%; <br /> }</kbd> </p> <p> 点击改变长度 <a href="javascript:toggleContent('mccont',1)">~短</a>Q?lt;a href="javascript:toggleContent('mccont',10)">加长</a> 或?<a href="javascript:toggleContent('mccont',40)">更长</a>?lt;/p> <p id="mccont">闭合动元素Q或者叫清除动Q是web标准设计中经怼遇到的一个问题,因此Q这里我xȝ一下目前经常用到的几种ҎQƈ比较一下他们的易用性和适用环境。如果你有更好的Ҏ不妨提出来大家一赯论?</p> </div> <div id="footer"> From: </div> </body> </html></textarea><br /> <input onclick="runCode(this.offsetParent.getElementsByTagName('textarea')[0])" type="button" value="q行代码" /> [Ctrl+A 全部选择 提示Q你可先修改部分代码Q再按运行]</p> <p>在这个例子中Q最开始由?#8220;#inner”的高度小?#8220;#outer”所以不会有问题Q但是当你点?#8220;加长”后你会发?#8220;#inner”的底边已l超Z“#outer”的范_?#8220;#outer”没有发生改变。这是我们所提到?#8220;清除动Q闭合Q动元素)”或者是“闭合动”问题</p> <h3>解决办法Q?/h3> <p><strong>1Q额外标{法</strong></p> <p>W一个,也是W3C推荐的方法就是用额外标{办法。这U方法就是在内容的末֢加一个空的标{,典型的做法就是用类?/p> <p class="code"><br style="clear:both;" /></p> <p>或者?/p> <p class="code"><div style="clear:both;"></div></p> <p>q种办法通过增加一个HTML元素q外部容器撑开。不q这个办法会增加额外的标{HTMLl构看v来不够简z?/p> <p><strong>例二Q用空div闭合动元素</strong></p> <p><textarea class="codeTextarea"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 清除动Q闭合Q动元素)例二Q用空div清除动 </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> #outer { background-color:#999; border:3px solid #666; } #inner { background-color:#ccc; float:left; width:26%; } #inner *, #outer p { margin: 5px 5px 5px 10px; } div.clear{ clear:left; } kbd { display:block; background:#fafaff; border:1px solid #b0c0d0; text-indent:0px; } kbd:first-line { color:#c3c; font-weight:bold; text-indent:20px } #footer { clear:both; border:3px solid #333; background-color:#999; margin-top:15px; height:60px; line-height:60px } ul,li,h1 { margin:0;padding:0} </style> <script type="text/javascript"> // <![CDATA[ /* Pixy's filler generator - http://www.pixy.cz/blogg/clanky/css-3col-layout/ */ function toggleContent(name,n) { var i,t='',el = document.getElementById(name); if (!el.origCont) el.origCont = el.innerHTML; for (i=0;i<n;i++) t += el.origCont; el.innerHTML = t; } // ]]> </script> </head> <body> <div id="outer"> <div id="inner"> <h1>#inner</h1> <kbd>#inner {<br/> float:left;<br/> width:26%;<br/> }</kbd> <p>点击下面的链接以改变该列的高?lt;/p> <ul id="lccont"> <li><a href="javascript:toggleContent('lccont',1)">~短</a></li> <li> <a href="javascript:toggleContent('lccont',5)">加长</a> </li><li> <a href="javascript:toggleContent('lccont',10)">再长?lt;/a></li> <li>Q-Q-Q-Q?lt;/li> </ul> </div> <h1>#outer</h1> <p><kbd>#outer <br />{<br /> background-color:#999;<br /> width:100%; <br /> } div.clear{ clear:left; }</kbd> </p> <p> 点击改变长度 <a href="javascript:toggleContent('mccont',1)">~短</a>Q?lt;a href="javascript:toggleContent('mccont',10)">加长</a> 或?<a href="javascript:toggleContent('mccont',40)">更长</a>?lt;/p> <p id="mccont">闭合动元素Q或者叫清除动Q是web标准设计中经怼遇到的一个问题,因此Q这里我xȝ一下目前经常用到的几种ҎQƈ比较一下他们的易用性和适用环境。如果你有更好的Ҏ不妨提出来大家一赯论?</p> <div class="clear"></div> </div> <div id="footer"> From:</div> </body> </html> </textarea><br /> <input onclick="runCode(this.offsetParent.getElementsByTagName('textarea')[0])" type="button" value="q行代码" /> [Ctrl+A 全部选择 提示Q你可先修改部分代码Q再按运行]</p> <p>P.S. 我发现在Internet Explorer中(无论?q是7Q?lt;br style="clear:both" />可以清除动Q但是不能闭合Q动元素,在Firefox中就没有q个问题Q不知道是什么原因?Q?/p> <p><strong>2Q用after伪类</strong></p> <p>使用after伪类和内容声明在指定的现在内Ҏ添加新的内宏V经常的做法是d一?#8220;?#8221;Q因为它比较不太引人注意。然后我们再利用它来清除动Q闭合Q动元素)Qƈ隐藏q个内容Q?/p> <p class="code">#outer:after{  <br />     content:".";  <br />     height:0;  <br />     visibility:hidden;  <br />     display:block;  <br />     clear:both;</p> <p>但奇怪的是Windows中的Internet Explorer 6及以下版本ƈ不支持CSS 2.1中的after伪类而Mac中的Internet Explorer却可以正怋用,所以我们还要单独针对Win/IEq行处理。在区分Win和Mac中Internet Explorer的诸多方法中Q最常用是Holly招数。Holly招数的原理是q样的,CSS代码</p> <p class="code">/* q段代码只有IE/Win可以看见 \*/ <br /> CSS 规则  <br /> /* l束Hack */</p> <p>上面的代码中有两行注释,其中W一行结束时出现了反斜杠Q\Q,在Mac的Internet Explorer中会认ؓ注释q没有结束,于是l箋向下直到W一个完事的“*/”出现Q这中间的所有字W都被当作是注释Q而IE/Win却也只会把第一行和W三行看作是注释Q中间的为有效代码。所以这样就区分出来了不同^C的IE了?/p> <p>正是Z以上原理Q在windows的IE 6上的清理动Q可以用如下代码:</p> <p class="code">#outer {  <br />     display:inline-block;  <br /> }  <br /> /* Holly Hack Begine \*/  <br /> * html #outer {  <br />     height:1%;  <br /> }  <br /> #outer {  <br />     display:block;  <br /> }  <br /> /* End Hack */ </p> <p><strong>例三Q?after伪类清理动</strong></p> <p><textarea class="codeTextarea"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 清除动Q闭合Q动元素)例三Q?after伪类 </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> #outer { background-color:#999; border:3px solid #666; } #outer:after { content:"."; display:block; height:0; visibility:hidden; clear:left; } #outer { display:inline-block; } /* Holly Hack Begine \*/ * html #outer { height:1%; } #outer { display:block; } /* End Hack */ #inner { background-color:#ccc; float:left; width:26%; } #inner *, #outer p { margin: 5px 5px 5px 10px; } kbd { display:block; background:#fafaff; border:1px solid #b0c0d0; text-indent:0px; } kbd:first-line { color:#c3c; font-weight:bold; text-indent:20px } #footer { clear:both; border:3px solid #333; background-color:#999; margin-top:15px; height:60px; line-height:60px } ul,li,h1 { margin:0;padding:0} </style> <script type="text/javascript"> // <![CDATA[ /* Pixy's filler generator - http://www.pixy.cz/blogg/clanky/css-3col-layout/ */ function toggleContent(name,n) { var i,t='',el = document.getElementById(name); if (!el.origCont) el.origCont = el.innerHTML; for (i=0;i<n;i++) t += el.origCont; el.innerHTML = t; } // ]]> </script> </head> <body> <div id="outer"> <div id="inner"> <h1>#inner</h1> <kbd>#inner {<br/> float:left;<br/> width:26%;<br/> }</kbd> <p>点击下面的链接以改变该列的高?lt;/p> <ul id="lccont"> <li><a href="javascript:toggleContent('lccont',1)">~短</a></li> <li> <a href="javascript:toggleContent('lccont',5)">加长</a> </li><li> <a href="javascript:toggleContent('lccont',10)">再长?lt;/a></li> <li>Q-Q-Q-Q?lt;/li> </ul> </div> <h1>#outer</h1> <p><kbd> #outer:after { content:"."; display:block; height:0; visibility:hidden; clear:left; }<br/> #outer { display:inline-block; }<br/> /* Holly Hack Begine \*/<br/> * html #outer { height:1%; }<br/> #outer { display:block; } /* End Hack */ </kbd> </p> <p> 点击改变长度 <a href="javascript:toggleContent('mccont',1)">~短</a>Q?lt;a href="javascript:toggleContent('mccont',10)">加长</a> 或?<a href="javascript:toggleContent('mccont',40)">更长</a>?lt;/p> <p id="mccont">闭合动元素Q或者叫清除动Q是web标准设计中经怼遇到的一个问题,因此Q这里我xȝ一下目前经常用到的几种ҎQƈ比较一下他们的易用性和适用环境。如果你有更好的Ҏ不妨提出来大家一赯论?</p> </div> <div id="footer"> From: </div> </body> </html> </textarea><br /> <input onclick="runCode(this.offsetParent.getElementsByTagName('textarea')[0])" type="button" value="q行代码" /> [Ctrl+A 全部选择 提示Q你可先修改部分代码Q再按运行]</p> <p>P.S. 如果你不考虑 IE6/Mac用户的话你只需要写* html #outer {height:1%;}卛_?/p> <p>另外Q似乎在Internet Explorer 7中不高display:inline-block也不好。因此要使用最完整的Hack招数?/p> <p>如果你对如何使用CSS 2中的伪类不熟悉的话,推荐你先阅读一?#8220;l说CSS样式选择W——CSS 2.1 SelectorsQ?Q、(2Q、(3Q?#8221;</p> <p><strong>3QQ动外部元素,float-in-float</strong></p> <p>q种Ҏ很简单,是?#8220;#outer”元素也进行Q动(向左或者向叻I?/p> <p>例子</p> <p>但是q种Ҏ带来的别外一个问题就是和“#outer”盔R的下一个元素会受到“#outer”的媄响位|会产生变化Q所以用这U方法一定要心。有选择把页面中的所有元素都动hQ最后用一个适当的有意义的元素(比如脚Q进行清理Q动,q有助于减少不必要的标记Q但是过多的动会增加布局的难度?/p> <p><strong>例四Qfloat-in-float</strong></p> <p><textarea class="codeTextarea"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 清除动Q闭合Q动元素)例四Qfloat-in-float </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> #outer { float:left; background-color:#999; border:3px solid #666; } #inner { background-color:#ccc; float:left; width:26%; } #inner *, #outer p { margin: 5px 5px 5px 10px; } kbd { display:block; background:#fafaff; border:1px solid #b0c0d0; text-indent:0px; } kbd:first-line { color:#c3c; font-weight:bold; text-indent:20px } #footer { clear:both; border:3px solid #333; background-color:#999; margin-top:15px; height:60px; line-height:60px } ul,li,h1 { margin:0;padding:0} </style> <script type="text/javascript"> // <![CDATA[ /* Pixy's filler generator - http://www.pixy.cz/blogg/clanky/css-3col-layout/ */ function toggleContent(name,n) { var i,t='',el = document.getElementById(name); if (!el.origCont) el.origCont = el.innerHTML; for (i=0;i<n;i++) t += el.origCont; el.innerHTML = t; } // ]]> </script> </head> <body> <div id="outer"> <div id="inner"> <h1>#inner</h1> <kbd>#inner {<br/> float:left;<br/> width:26%;<br/> }</kbd> <p>点击下面的链接以改变该列的高?lt;/p> <ul id="lccont"> <li><a href="javascript:toggleContent('lccont',1)">~短</a></li> <li> <a href="javascript:toggleContent('lccont',5)">加长</a> </li><li> <a href="javascript:toggleContent('lccont',10)">再长?lt;/a></li> <li>Q-Q-Q-Q?lt;/li> </ul> </div> <h1>#outer</h1> <p><kbd> #outer {<br/> float:left;<br/> background-color:#999; } </kbd> </p> <p> 点击改变长度 <a href="javascript:toggleContent('mccont',1)">~短</a>Q?lt;a href="javascript:toggleContent('mccont',10)">加长</a> 或?<a href="javascript:toggleContent('mccont',40)">更长</a>?lt;/p> <p id="mccont">闭合动元素Q或者叫清除动Q是web标准设计中经怼遇到的一个问题,因此Q这里我xȝ一下目前经常用到的几种ҎQƈ比较一下他们的易用性和适用环境。如果你有更好的Ҏ不妨提出来大家一赯论?</p> </div> <div id="footer"> From: </div> </body> </html> </textarea><br /> <input onclick="runCode(this.offsetParent.getElementsByTagName('textarea')[0])" type="button" value="q行代码" /> [Ctrl+A 全部选择 提示Q你可先修改部分代码Q再按运行]</p> <p><strong>4Q设|overflow为hidden或者auto</strong></p> <p>?#8220;#outer”的属性overflowD|ؓhidden或者auto同样可以清理动</p> <p>q种Ҏ不需要添加额外的标记。但是用overflow的时候一定要心Q因为它会浏览器的表现。另外,在Internet Explorer 6中单U地讄overflow为hidden或者autoq不能有效清除Q动(闭合动元素Q,q要指定“#outer”的一个维度,卌么给它指定一个宽度,要么指定一个高度:</p> <p class="code">#outer {<br />     overflow:auto;<br />     width:100%;<br /> }</p> <p>注意Q如果你要在IE5/Mac上用这U方法清除Q动(闭合动元素Q的话,你就必须讑֮overflow的属性ؓgؓhidden?/p> <p><strong>例五Qoverflow:hidden</strong></p> <p><textarea class="codeTextarea"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 清除动Q闭合Q动元素)例五Qoverflow:hidden或overflow:auto </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> #outer { width:100%; overflow:hidden; background-color:#999; border:3px solid #666; } #inner { background-color:#ccc; float:left; width:26%; } #inner *, #outer p { margin: 5px 5px 5px 10px; } kbd { display:block; background:#fafaff; border:1px solid #b0c0d0; text-indent:0px; } kbd:first-line { color:#c3c; font-weight:bold; text-indent:20px } #footer { clear:both; border:3px solid #333; background-color:#999; margin-top:15px; height:60px; line-height:60px } ul,li,h1 { margin:0;padding:0} </style> <script type="text/javascript"> // <![CDATA[ /* Pixy's filler generator - http://www.pixy.cz/blogg/clanky/css-3col-layout/ */ function toggleContent(name,n) { var i,t='',el = document.getElementById(name); if (!el.origCont) el.origCont = el.innerHTML; for (i=0;i<n;i++) t += el.origCont; el.innerHTML = t; } // ]]> </script> </head> <body> <div id="outer"> <div id="inner"> <h1>#inner</h1> <kbd>#inner {<br/> float:left;<br/> width:26%;<br/> }</kbd> <p>点击下面的链接以改变该列的高?lt;/p> <ul id="lccont"> <li><a href="javascript:toggleContent('lccont',1)">~短</a></li> <li> <a href="javascript:toggleContent('lccont',5)">加长</a> </li><li> <a href="javascript:toggleContent('lccont',10)">再长?lt;/a></li> <li>Q-Q-Q-Q?lt;/li> </ul> </div> <h1>#outer</h1> <p><kbd> #outer {<br/> overflow:hidden;<br/> width:100%;<br/> background-color:#999; } </kbd> </p> <p> 点击改变长度 <a href="javascript:toggleContent('mccont',1)">~短</a>Q?lt;a href="javascript:toggleContent('mccont',10)">加长</a> 或?<a href="javascript:toggleContent('mccont',40)">更长</a>?lt;/p> <p id="mccont">闭合动元素Q或者叫清除动Q是web标准设计中经怼遇到的一个问题,因此Q这里我xȝ一下目前经常用到的几种ҎQƈ比较一下他们的易用性和适用环境。如果你有更好的Ҏ不妨提出来大家一赯论?</p> </div> <div id="footer"> From:</div> </body> </html> </textarea><br /> <input onclick="runCode(this.offsetParent.getElementsByTagName('textarea')[0])" type="button" value="q行代码" /> [Ctrl+A 全部选择 提示Q你可先修改部分代码Q再按运行]</p> <h3>比较与选择</h3> <p>四种Ҏ中用哪U最好呢Q首先,不推荐用after伪类Q对比其它三U方法,holly招数有点太烦琐,不好掌握Q我上面讲到的holly招数中ƈ不仅仅是IE/Win上有问题Q当出现:hover时还会有其它问题Q所以我们又加上了inline-block{属性,也就是说q种Ҏ存在更多的不定性。推荐对代码?#8220;z癖”q且技术较高的Z用?br />     那么其它三种Ҏ其实都可以考虑?/p> <p>不过使用overflow的时候,可能会对面表现带来影响Q而且q种影响是不定的,你最好是能在多个览器上试你的面Q?/p> <p>而对于用额外标{清除Q动(闭合动元素Q,是W3C推荐的做法。至于?lt;br />元素q是I?lt;div></div>可以Ҏ自己的喜好来选(当然你也可以使用其它块元素Q。不q要注意的是Q?lt;br />本n是有表现的,它会多出一个换行出来,所以要讑֮它的heigh?Q以隐藏它的表现。所以大多数情况下用空<div>比较合适?/p> <p>float-in-floatQ也是一个很好的选择Q把你要q行清理动的元素外层再加上一?lt;div>q设|属性fload:left卛_Q不q要注意盔R元素的变化?/p> </div> <img src ="http://www.tkk7.com/DreamFight/aggbug/314916.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/DreamFight/" target="_blank">DreamFight</a> 2010-03-09 10:22 <a href="http://www.tkk7.com/DreamFight/articles/314916.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>firefox margin-top失效的原因与解决办法http://www.tkk7.com/DreamFight/articles/290587.htmlDreamFightDreamFightMon, 10 Aug 2009 13:38:00 GMThttp://www.tkk7.com/DreamFight/articles/290587.htmlhttp://www.tkk7.com/DreamFight/comments/290587.htmlhttp://www.tkk7.com/DreamFight/articles/290587.html#Feedback0http://www.tkk7.com/DreamFight/comments/commentRss/290587.htmlhttp://www.tkk7.com/DreamFight/services/trackbacks/290587.html Z么要译q篇说明Qcss2本有人已译q,但看一下,很粗p(不是说自己就怎么怎么样啊Q翻译者真的是很值得敬佩的!Q,q来跟css与xhtml接触得越来越多,但接触得多Q迷惑却M见少?
    现在我觉得很多问题根本不能称之ؓ问题Q原因就在于我们的草率理解,比如杀鸡用牛刀Q不是不可以Q是不合理、不恰当Q根源错了,表象也就会错了,如果解决问题从表象入手,隑օM怸着头脑Q还是那句话Q要脚踏实地Q切莫Qw?
    在这个说明中Q?#8220;collapsing margins”Q折叠marginQ的意思是Q?个或以上盒模型之_关系可以是相L嵌套Q相ȝmargin属性(q之间不能有非空内容?padding区域、borderҎ或用清除分L法)l合表示Z个单独的margin?
    在css2.1中,水^的margin不会被折叠?
    垂直margin可能在一些盒模型中被折叠Q?
    1、在常规文档中Q?个或以上的块U盒模型盔R的垂直margin会被折叠?
    最l的marginD方法如下:
    a、全部都为正|取最大者;
    b、不全是正|则都取绝对|然后用正值减L大|
    c、没有正|则都取绝对|然后?减去最大倹{?
    注意Q相ȝ盒模型可能由DOM元素动态生ƈ没有盔R或承关pR?
    2、相ȝ和模型中Q如果其中的一个是动的(floatedQ,垂直margin不会被折叠,甚至一个Q动的盒模型和它的子元素之间也是这栗?
    3、设|了overflow属性的元素和它的子元素之间的margin不会被折叠(overflow取gؓvisible除外Q?
    4、设|了l对定位Qposition:absoluteQ的盒模型,垂直margin不会被折叠,甚至和他们的子元素之间也是一栗?
    5、设|了display:inline-block的元素,垂直margin不会被折叠,甚至和他们的子元素之间也是一栗?
    6、如果一个盒模型的上下margin盔RQ这时它的margin可能折叠覆盖Qcollapse throughQ它。在q种情况下,元素的位|(positionQ取决于它的盔R元素的margin是否被折叠?
    a、如果元素的margin和它的父元素的margin-top折叠在一P盒模型border-top的边界定义和它的父元素相同?
    b、另外,L元素的父元素不参与margin的折叠,或者说只有父元素的margin-bottom是参与计的。如果元素的border-top非零Q那么元素的border-top边界位置和原来一栗?
    一个应用了清除操作的元素的margin-topl不会和它的块父元素的margin-bottom折叠?
    注意Q那些已l被折叠覆盖的元素的位置对其他已l被折叠的元素的位置没有M影响Q只有在对这些元素的子元素布局Ӟborder-top边界位置才是必需的?
    7、根元素的垂直margin不会被折叠?
    动的块U元素的margin-bottomL与它后面的Q动块U兄弟元素(floated next in-flow block-level siblingQ的margin-top盔RQ除非那个同U元素用了清除操作?
    动的块U元素的margin-top和它的第一个Q动块U子元素Qfloated first in-flow block-level childQ的margin-top盔RQ如果该元素没有border-topQ没有padding-topQƈ且子元素没有使用清除操作Q?
    动的块U元素的margin-bottom如果W合下列条gQ那么它和它的最后一个Q动块U子元素的margin-bottom盔RQ如果该元素没有指定padding-bottom或borderQ:
    a、指定了height:auto
    b、min-height于元素的实际用高度(heightQ?
    c、max-height大于元素的实际用高度(heightQ?
    如果一个元素的min-height属性设|ؓ0Q那么它所拥有的margin是相ȝQƈ且它既没有border-top和border- bottomQ也没有padding-top和padding-bottomQ它的height属性可以是0或autoQ它不能包含一个内联的盒模型(line boxQ,它所有的动子元素(如果有的话)的margin也都是相ȝ?
    当一个元素拥有的margin折叠了,q且它用了清除操作Q那么它的margin-top会和紧随其后的兄弟元素的盔Rmargin折叠Q但l果是它的margin无法和其块U父元素的margin-bottom折叠?
    折叠操作是以padding、margin、border的gؓ基础的(卛_览器解析所有这些g后)Q折叠后的margin计算覆盖已使用的不同margin的倹{?
    [复制此代码]CODE:


    //不加入brq一行,在FIREFOX中id1的margin-top:20px会在d0上作用,使d0上方与body间有20px的间?d1与d0的上Ҏ有间距,而IE内正常显C?


    DreamFight 2009-08-10 21:38 发表评论
    ]]>
    վ֩ģ壺 777޾Ʒþþþþ| Ʒר߲| ůůѸձ| Ʒ97˳Ƶ| ۺƵ| Ʒ鶹Ѱ| aѹۿþav | Ļmv| ޹ƷYW߹ۿ| þùһ | 67paoǿ| av˾Ʒ| ޾ƷҹĻ | ëƬѹۿƵȫ| ˿wwwѸ| ҹƬAVƬ| avƬ߹ۿ16Ů| þõӰҹ³˿Ƭ| ɫҹƵ| AVվ| ŮƵվ| ŷ޾Ʒ˾þ | Ļ| ɫר߹ۿ| ˼˼99re66߾Ʒѹۿ| ëƬƬѹۿ| ɫaѿ| һëƬѹۿ| ޲Ļ| ѹaƬ| þþþþþ91Ʒѹۿ| ˿wwwƵ| 鵺̳ƷƵվ| ޻ɫƵ| С˵ͼƬഺɫ| ŮڵƵվ | ձĻ| һëƬѲ| ޹ƷŮþþþ| ޹ƷۺϾþ2007| ˳վۿ|