css フォレスト グループでマージンの問題について議論しているときに、フロートをクリアするためにオーバーフローを使用できることを偶然発見しました。この方法は使いやすいだけでなく、ff、op、ie7 でもサポートされています。これで、長い互換性とは別れを告げることができます。 ff のフロートをクリアするもう 1 つの貧弱な方法です。
この方法は非常に簡単で、クリアする必要があるラベルにオーバーフロー属性を追加するだけです。
css コード
ul { list-style: none; height: auto; margin: 0; p adding: 0; background-color: #436973; } li { float: left; width: 80px; height: 80px; background-color: #83b1df; } .demo { clear: both; border: 1px solid #ff00ff; margin-bottom: 5px; } .overflow { overflow: auto; zoom: 1; background-color: #43ff73; } ul { list-style: none; height: auto; margin: 0; padding: 0; background-color: #436973; } li { float: left; width: 80px; height: 80px; background-color: #83b1df; } .demo { clear: both; border: 1px solid #ff00ff; margin-bottom: 5px; } .overflow { overflow: auto; zoom: 1; background-color: #43ff73; }
html コード
<div class="demo"> <ul class="overflow"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> </ul> </div> <div class="demo"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> </ul> </div>
ズームの場所ie6向けに準備されています。
<?xml version="1.0" encoding="utf-8"?> <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn"> <head> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="content-language" content="utf-8" /> <meta name="robots" content="all" /> <meta name="author" content="ghost" /> <meta name="copyright" content="cssforest" /> <meta name="description" content="cssɭ" /> <meta name="keywords" content="css,web标准,web,blog,,xhtml,cssforest,css森林" /> <title>overflow hack demo|www.cssforest.org</title> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script> <script type="text/javascript">_uacct = "ua-780254-5";urchintracker();</script> <style type="text/css"> /*<![cdata[*/ .copyright{position:absolute;bottom:60px;left:10px;width:300px;height:200px;line-height:1.2em;} .copyright a:link{color:#666666;text-decoration:none;} .copyright a:hover{color:#cc9900;text-decoration:underline;} ul{list-style:none;height:auto;margin:0;padding:0;background-color:#436973;} li{float:left;width:80px;height:80px;background-color:#83b1df;} .demo{clear:both;border:1px solid #ff00ff;margin-bottom:5px;} .overflow{overflow:auto;zoom:1;background-color:#43ff73;} /*]]>*/ </style> </head> <body> <p></p> <div> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> </ul> </div> <div> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> </ul> </div> <div> <div> <div><img src="http://img68.imageshack.us/img68/8708/myIE7、FF、OPのフローティングCSSをクリアする最良の方法9we.gif" alt="IE7、FF、OPのフローティングCSSをクリアする最良の方法" /></div> <div> <p class="fn n"><strong>ghost</strong> <strong>zhang</strong></p> <p><strong>email:</strong><a href="mailto:lovej1bz@gmail.com">lovej1bz@gmail.com</a></p> <p><strong>qq:</strong><a href="tencent://message/?uin=22168741&site=webrebuild.org&menu=yes">22168741</a></p> <p><strong>org:</strong><a href="http://www.webrebuild.org">webrebuild.org</a> <a href="http://www.cssforest.org/">www.cssforest.org</a></p> <strong>blog:</strong><a href="http://forest.blogbus.com" rel="me">http://forest.blogbus.com</a> </div> </div> </div> </body> </html>
注: 非常に重要な点を忘れていました。すべてのオーバーフロー属性が同じ効果を持つわけではありません。たとえば、visible 属性は ie でのみ機能します。例は次のとおりです:
<?xml version="1.0" encoding="utf-8"?> <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn"> <head> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="content-language" content="utf-8" /> <meta name="robots" content="all" /> <meta name="author" content="ghost" /> <meta name="copyright" content="cssforest" /> <meta name="description" content="cssɭ" /> <meta name="keywords" content="css,web标准,web,blog,,xhtml,cssforest,css森林" /> <title>overflow hack demo|www.cssforest.org</title> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script> <script type="text/javascript">_uacct = "ua-780254-5";urchintracker();</script> <style type="text/css"> /*<![cdata[*/ .copyright{position:absolute;bottom:60px;left:10px;width:300px;height:200px;line-height:1.2em;} .copyright a:link{color:#666666;text-decoration:none;} .copyright a:hover{color:#cc9900;text-decoration:underline;} ul{list-style:none;height:auto;margin:0;padding:0;background-color:#436973;} li{float:left;height:80px;margin-right:2px;padding:0 10px;background-color:#83b1df;line-height:80px;} .demo{clear:both;border:1px solid #ff00ff;margin-bottom:5px;} .overflow{overflow:auto;zoom:1;background-color:#43ff73;} .overflow1{overflow:hidden;zoom:1;background-color:#43ff73;} .overflow2{overflow:visible;zoom:1;background-color:#43ff73;} /*]]>*/ </style> </head> <body> <p>overflow的visible属性只对ie起作用,auto/hidden可对ff、op起作用。</p> <div> <ul> <li>overflow:auto;</li> <li>overflow:auto;</li> <li>overflow:auto;</li> <li>overflow:auto;</li> <li>overflow:auto;</li> <li>overflow:auto;</li> </ul> </div> <div> <ul> <li>overflow:hidden;</li> <li>overflow:hidden;</li> <li>overflow:hidden;</li> <li>overflow:hidden;</li> <li>overflow:hidden;</li> <li>overflow:hidden;</li> </ul> </div> <div> <ul> <li>overflow:visible;</li> <li>overflow:visible;</li> <li>overflow:visible;</li> <li>overflow:visible;</li> <li>overflow:visible;</li> <li>overflow:visible;</li> </ul> </div> <div> <ul> <li>no overflow</li> <li>no overflow</li> <li>no overflow</li> <li>no overflow</li> <li>no overflow</li> <li>no overflow</li> </ul> </div> <div> <div> <div><img src="http://img68.imageshack.us/img68/8708/myIE7、FF、OPのフローティングCSSをクリアする最良の方法9we.gif" alt="IE7、FF、OPのフローティングCSSをクリアする最良の方法" /></div> <div> <p class="fn n"><strong>ghost</strong> <strong>zhang</strong></p> <p><strong>email:</strong><a href="mailto:lovej1bz@gmail.com">lovej1bz@gmail.com</a></p> <p><strong>qq:</strong><a href="tencent://message/?uin=22168741&site=webrebuild.org&menu=yes">22168741</a></p> <p><strong>org:</strong><a href="http://www.webrebuild.org">webrebuild.org</a> <a href="http://www.cssforest.org/">www.cssforest.org</a></p> <strong>blog:</strong><a href="http://forest.blogbus.com" rel="me">http://forest.blogbus.com</a> </div> </div> </div> </body> </html>
この場合には問題があります。高さがあり、コンテンツがその高さを超えている場合、auto または hidden を定義すると、望ましくない影響が生じる可能性があります。 。解決策は次のとおりです。ie6 以前の場合は高さを直接定義できますが、ie7、ff、op の場合は min-height を定義できます。
css コード:
overflow { height:auto; _height:200px; min-height:200px; verflow:auto; zoom:1; _overflow:visible; }