3 4 5 BFC</タイトル > 6 <style type="text/css">"/><meta property="og:local" content="ja"> <meta property="og:title" content="BFCとは何ですか? BFC の簡単な理解-htmlチュートリアル-php.cn"> <meta property="og:description" content="はじめに BFC について説明する前に、例を見てみましょう 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>BFC</タイトル > 6 <style type="text/css">"> <meta property="og:url" content="https://m.php.cn/ja/faq/371936.html"> <meta property="og:image" content="https://img.php.cn/upload/article/000/000/001/9f26e0a5c4b8c723497c1cd890d713af.png"> <meta property="og:site_name" content="php.cn"> <meta property="og:type" content="website"> <link rel="canonical" href="https://www.php.cn/ja/faq/371936.html"/> <link rel="alternate" hrefLang="zh-cn" href="https://m.php.cn/zh/faq/371936.html" /> <link rel="alternate" hrefLang="en" href="https://m.php.cn/faq/371936.html" /> <link rel="alternate" hrefLang="zh-tw" href="https://m.php.cn/zh-tw/faq/371936.html" /> <link rel="alternate" hrefLang="ja" href="https://m.php.cn/ja/faq/371936.html" /> <link rel="alternate" hrefLang="ko" href="https://m.php.cn/ko/faq/371936.html" /> <link rel="alternate" hrefLang="ms" href="https://m.php.cn/ms/faq/371936.html" /> <link rel="alternate" hrefLang="fr" href="https://m.php.cn/fr/faq/371936.html" /> <link rel="alternate" hrefLang="de" href="https://m.php.cn/de/faq/371936.html" /> <meta charset="utf-8" /><meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><meta name="applicable-device" content="mobile" /><link rel="stylesheet" href="/static/css/style.css?4.5.31"><link href="/static/front/mobcss/newphpcommon.css?1.1" type="text/css" rel="stylesheet"/><link href="/static/front/mobcss/swiper.min.css" type="text/css" rel="stylesheet"/><link href="/static/front/mobcss/newphp.css?1.2" type="text/css" rel="stylesheet"/><link href="/static/css/global.css" type="text/css" rel="stylesheet"/><link href="/static/layui/css/layui.css" type="text/css" rel="stylesheet"/><link href="/static/mobcss/mobindex3.css" type="text/css" rel="stylesheet"/><script src="/static/front/mobjs/jquery-1.6.1.min.js"></script><script src="/static/front/mobjs/swiper.min.js"></script><script src="/static/front/mobjs/newphpcommon.js"></script><link rel="canonical" href="https://www.php.cn/ja/faq/371936.html"/> <link rel="alternate" hrefLang="zh-cn" href="https://m.php.cn/zh/faq/371936.html" /> <link rel="alternate" hrefLang="en" href="https://m.php.cn/faq/371936.html" /> <link rel="alternate" hrefLang="zh-tw" href="https://m.php.cn/zh-tw/faq/371936.html" /> <link rel="alternate" hrefLang="ja" href="https://m.php.cn/ja/faq/371936.html" /> <link rel="alternate" hrefLang="ko" href="https://m.php.cn/ko/faq/371936.html" /> <link rel="alternate" hrefLang="ms" href="https://m.php.cn/ms/faq/371936.html" /> <link rel="alternate" hrefLang="fr" href="https://m.php.cn/fr/faq/371936.html" /> <link rel="alternate" hrefLang="de" href="https://m.php.cn/de/faq/371936.html" /> <script> var canshu = { SeeMore:'続きを見る', FoldUp:'畳む', Choice:'言語', wait:'読み込み中です、お待ちください~', LoginFirst:"まずログインしてください", needKeyword:'キーワード検索を入力してください', emailPhoneError:'正しい電話番号またはメールアドレスを入力してください', missPwd:'パスワードを入力してください', emailError:'正しいメールアドレスを入力してください', VerCode:"確認コードを入力してください", getCode:'送信', pwdError:'パスワードの形式が正しくありません', TwoPassNotMatch:'2 つのパスワードが一致しません', Bindemail:'電子メールをバインドする', resetpassword:'パスワードを再設定する', ConfirmPass:'パスワードを認証する', pwdCheck:'6~18 文字または数字を入力してください', Editinfor: '個人情報の編集', trimContent:'内容を入力してください', titleCheck:'タイトルは少なくとも 5 単語の長さである必要があります', choiceLang:'言語分類を選択してください', Secondreply:'返事', NetWorkError:'ネットワーク エラー。後でもう一度お試しください。', keywordSearch:'キーワード検索を入力してください', all_lang_string:'zh|en|zh-tw|ja|ko|ms|fr|de', Next:'次のページ', Previous:'前のページ' }; </script><!-- Google Tag Manager --><script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WWVXRJPW'); </script><!-- End Google Tag Manager --><!-- Google tag (gtag.js) --><script async src="https://www.googletagmanager.com/gtag/js?id=G-H42EVCYBJC"></script><script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-H42EVCYBJC'); </script><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5902227090019525" crossorigin="anonymous"></script><!--<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6267705206177514" crossorigin="anonymous"></script>--><script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"WebSite","url":"https:\/\/m.php.cn\/ja\/","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/m.php.cn\/ja\/search?word={search_term_string}"},"query-input":"required name=search_term_string"}}</script><meta property="article:author" content="零下一度" /><meta property="article:published_first" content=",https://www.php.cn/faq/371936.html" /><link rel="stylesheet" href="/static/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css?1"><link rel="stylesheet" href="/static/ueditor/third-party/SyntaxHighlighter/shCoreDefault1.css"><link href="/static/mobcss/newphp.css" type="text/css" rel="stylesheet"/><script src="/static/ueditor/third-party/SyntaxHighlighter/shCore.js"></script><script> var xnb_name = 'Virtual currency'; </script><script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","headline":"BFCとは何ですか? BFC の簡単な理解","description":"はじめに BFC について説明する前に、例を見てみましょう 1 <!DOCTYPE html> 2 <html lang=\"en\"> 3 <head> 4 <meta charset=\"UTF-8\"> 5 <title>BFC<\/タイトル > 6 <style type=\"text\/css\">","image":["https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/2d1003f9268b615fd697955bc6efef30-0.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/8d322ce836c32aab0c6c9356bec2005a-1.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/8d322ce836c32aab0c6c9356bec2005a-2.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/8d322ce836c32aab0c6c9356bec2005a-3.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/8d322ce836c32aab0c6c9356bec2005a-4.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-5.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-6.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-7.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-8.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-9.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-10.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/ec094113ae178c5a44a9f00011b32c5d-11.png","https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/ec094113ae178c5a44a9f00011b32c5d-12.png"],"datePublished":"2017-07-02T09:38:13+8:00","author":{"url":"https:\/\/m.php.cn\/ja\/member\/1506.html","name":"零下一度"},"mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/m.php.cn\/ja\/faq\/371936.html"},"url":"https:\/\/m.php.cn\/ja\/faq\/371936.html","articleBody":"<h3>はじめに<\/h3>\n<p>BFCについて話す前に、例を見てみましょう<\/p>\n<div class=\"cnblogs_code\"><pre> 1 <!DOCTYPE html> 2 <html lang=\"en\"> 3 <head> 4     \r\n <meta charset=\"UTF-8\"> 5     <title>BFC<\/title> 6     \r\n <style type=\"text\/css\"> 7         \r\n .div1 {background-color: #FCE38A; width: 200px; height: 100px;} 8         \r\n .div2 {background-color: #EAFFD0; width: 200px; height: 100px;} 9         \r\n .div3 {background-color: #95E1D3; width: 200px; height: 100px;}10     \r\n <\/style>11 <\/head>12 13 <body>14     <div class=\"div1\">div1<\/div>15     \r\n <div class=\"div2\">div2<\/div>16     <div class=\"div3\">div3<\/div>17 <\/body>18 \r\n <\/html><\/pre><\/div>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/2d1003f9268b615fd697955bc6efef30-0.png\" alt=\"\"><\/p>\n<p>行の幅が制限されていても、ブロックレベルの要素の順序は上から下であることがわかります。複数の要素を収容するには、div1 と div2 に同時にマージンを追加します<\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/8d322ce836c32aab0c6c9356bec2005a-1.png\" alt=\"\"><\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/8d322ce836c32aab0c6c9356bec2005a-2.png\" alt=\"\"><\/p>\n<p>本来、div1 の下マージンは 50px、div2 の上マージンは 50px です。論理的には、それらの間の距離は次のようになります。 100pxですが、ここでは50pxのみです。これは、ブロックレベルのレイアウトコンテキストで隣接する2つのブロックレベルのボックス間の垂直マージンが折りたたまれているためです。これは、<span style=\"color: #0000ff;\"><span style=\"color: #0000ff;\">CSS学習ノート07ボックスモデル<\/span><\/span>で導入されたマージンマージです。このマージンのマージ現象を解決するにはどうすればよいでしょうか。これには、以下で紹介する BFC が関係します。 <\/p>\n<h3>BFCとは<\/h3>\n<p><span style=\"color: #ff0000;\"><strong>ブロックレベルのフォーマットコンテキストです。ブロックレベルのボックスのみが参加します(表示属性はblock 、 list-item 、 table 要素など)、この領域の外側とは何の関係もありません。このうち、フォーマット コンテキストは、ドキュメントのレンダリング方法を決定するコンテナです。W3C CSS2.1 仕様の概念です。これはページ上のレンダリング領域であり、そのサブ要素がどのように配置されるか、および他の要素との関係や相互作用を決定する一連のレンダリング ルールがあります。最も一般的な書式設定コンテキストは、ブロック書式設定コンテキスト (BFC) とインライン書式設定コンテキスト (IFC) です。 CSS2.1ではBFCとIFCのみでしたが、CSS3ではGFCとFFCも追加されました。 <\/strong><\/span><\/p>\n<p>平たく言えば、BFC は独立したボックスであり、この独立したボックス内のレイアウトは外部の要素には影響されません。 <strong><span style=\"color: #ff0000;\"><\/span><\/strong>ドキュメントのプレゼンテーションが開始されると、BFC が自動的に作成され、ページ全体がレイアウトされます。新しい BFC が作成されない場合、ドキュメント全体がこの BFC になります。 <\/p>\n<p>BFC ルール<\/p>\n<h3><\/h3>\n<ul class=\" list-paddingleft-2\"> 内部ボックスは上から順に垂直方向に配置されます (上記の例からわかるように)<li><p><\/p><\/li> 同じ BFC 内の 2 つの隣接するブロックにレベル要素では、垂直方向のマージンが折りたたまれます<li><p><\/p><\/li>は float です<li>\n<p><\/p>BFC 領域は float ボックスと重なりません<\/li>\n<li>\n<p><\/p>BFC はページ上で分離された独立したコンテナであり、コンテナ内のサブ要素は外部の要素に影響を与えません<\/li>\n<li>\n<p>。 <\/p> BFC を計算する<\/li>\n<li>\n<p><\/p> 高さの場合、浮動要素も計算に参加します<\/li>\n<\/ul>\n<h3><\/h3> BFC をトリガーします<ul class=\" list-paddingleft-2\">\n<li>\n<p><\/p>ルート要素<\/li>\n<li>\n<p><\/p>float 属性は none ではありません (例: left | right) <\/li>\n<li>\n<p><\/p>overflow 値はありません表示 (例: hidden | auto | スクロール) <\/li>\n<li>\n<p><\/p> 表示属性値は inline-block または inline-flex です<\/li>\n<li>\n<p><\/p> |マージンオーバーレイを解決するための BFC<\/li>\n<\/ul> 問題<h3><\/h3>は依然として上記の例です。この時点ではページの要素は標準フロー内にあるため、ルールに従って、この時点では body 要素は BFC です<h4><\/h4>\n<pre>同一个BFC中,在两个相邻的块级元素中,垂直margin会发生折叠<\/pre>。 <p><\/p>ここで、display:inline-block 属性を div1 に設定します<div class=\"cnblogs_code\"><\/div> <p><\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/8d322ce836c32aab0c6c9356bec2005a-3.png\" alt=\"\"><\/p>\n<p>このとき、div1 要素は、display:inline-block を通じて BFC をトリガーするため、この時点の div1 は独立した BFC です。ルール<img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/8d322ce836c32aab0c6c9356bec2005a-4.png\" alt=\"\"><\/p>\n<pre>BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然<\/pre>\n<p><\/p>に準拠しているため、現時点ではマージンの重複はありません。 <div class=\"cnblogs_code\"><\/div>内部フロートをクリアする<p><\/p> 標準フローのボックス内のすべての子要素がフローティングで、ボックスの高さが設定されていない場合、ボックス全体の高さが折りたたまれます。これは何を意味しますか? 以下の例を参照してください。 <h4><pre> 1 <!DOCTYPE html> 2 <html lang=\"en\"> 3 <head> 4     <meta charset=\"UTF-8\"> 5     <title>BFC清除内部浮动<\/title> 6     <style type=\"text\/css\"> 7         .child {background-color: #95E1D3; border: 1px solid #FCE38A; width: 100px; height: 100px;} 8         .parent {width: 300px; border: 1px solid #95E1D3;} 9     <\/style>10 <\/head>11 <body>12     <div class=\"parent\">13         <div class=\"child\"><\/div>14         <div class=\"child\"><\/div>15     <\/div>16 <\/body>17 <\/html><\/pre><\/h4>\n<p><\/p>\n<div class=\"cnblogs_code\"><\/div>親コンテナは2つの子divでサポートされています。今度は子にfloatを追加します<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-5.png\" alt=\"\"><\/p>\n<p><\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-6.png\" alt=\"\"><\/p>このとき、親コンテナは2本の重なった線となり、その高さになります。 0、いわゆる高さ崩壊です。ルールに従って<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-7.png\" alt=\"\">りー<\/p>\n<p>这时候可以触发parent生成BFC,那么parent在计算高度时,parent内部的浮动元素child也会参与计算<\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-8.png\" alt=\"\"><\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-9.png\" alt=\"\"><\/p>\n<h4>布局<\/h4>\n<div class=\"cnblogs_code\"><pre> 1 <!DOCTYPE html> 2 <html lang=\"en\"> 3 <head> 4     <meta charset=\"UTF-8\"> 5     <title>BFC布局<\/title> 6     <style type=\"text\/css\"> 7         .left {width: 100px; height: 100px; background-color: #FCE38A; float: left;} 8         .right {width: 300px; height: 150px; background-color: #95E1D3;} 9 10     <\/style>11 <\/head>12 <body>13     <div class=\"left\"><\/div>14     <div class=\"right\"><\/div>15 <\/body>16 <\/html><\/pre><\/div>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/b96b54d696cf1f8d8553339a5a1f0ae7-10.png\" alt=\"\"><\/p>\n<p>根据规则<\/p>\n<div class=\"cnblogs_code\"><pre>每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反),即使存在浮动也是如此<\/pre><\/div>\n<p>所以即使left设置了左浮动,right的的左边依然会与包含块的左边(即body)相接触。接着我们可以根据规则<\/p>\n<div class=\"cnblogs_code\"><pre>BFC的区域不会与float box重叠<\/pre><\/div>\n<p>让right触发产生BFC,这样right就不会与left重叠了<\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/ec094113ae178c5a44a9f00011b32c5d-11.png\" alt=\"\"><\/p>\n<p><img src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/001\/ec094113ae178c5a44a9f00011b32c5d-12.png\" alt=\"\"><\/p>\n<p>这样就形成了常见的两列布局。<\/p>\n<p><strong><span style=\"color: #ff0000;\">总之记住一点BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,同样的,外面的元素也不会影响到容器里面的子元素。<\/span><\/strong><\/p>"}</script><script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/m.php.cn\/ja\/","name":"ホームページ"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/m.php.cn\/ja\/web-designer.html","name":"ウェブフロントエンド"}},{"@type":"ListItem","position":3,"item":{"@id":"https:\/\/m.php.cn\/ja\/div-tutorial.html","name":"htmlチュートリアル"}},{"@type":"ListItem","position":4,"item":{"@id":"https:\/\/m.php.cn\/ja\/faq\/371936.html","name":"BFCとは何ですか? BFC の簡単な理解"}}]}</script></head><body><div class="bodyBg"><link rel="stylesheet" type="text/css" href="/static/csshwm/m_stylehw.css"><header><div class="head"><div class="haed_left"><div class="haed_logo"><a href="https://m.php.cn/ja/" title="PHP中国語ウェブサイト" class="haed_logo_a"><img src="/static/imghwm/logo.png" alt="PHP中国語ウェブサイト" class="haed_logoimg"></a></div></div><div class="search_div search_div_top2"><input id="key_words" class="search-input" type="text" autocomplete="off" name="keywords" required="required" placeholder="Block,address,transaction,news" value="" onkeydown="if (event.keyCode == 13) searchs('ja')"/><a onclick="searchs('ja')" href="javascript:;" title="検索"><img onerror="this.onerror=''; this.src='static/imghwm/default1.png'" src="/static/imghwm/find.png" alt="検索"></a></div><div class="head_right"><button type="button" class="layui-btn layui-btn-primary headerlan headlanmax lan1" id="lan1sp" lay-on="test-offset-r"><img src="/static/imghwm/m_menu.png" alt=""></button><div id="m_menu" class="m_menu" style="display: none;"><div class="m_editormain12main_top"><img src="/static/imghwm/logo.png" alt="logo"><a href="javascript:;" class="m_editormain12main_topi" id="m_editormain12main_topi_sp"><i class="layui-icon layui-icon-close"></i></a></div><div class="layui-panel m_menu_main"><ul class="layui-menu" id="demo-menu"><li class="layui-menu-item-group layui-menu-item-up m_menus" lay-options="{type: 'group'}"><div class="layui-menu-body-title m_menus_title">コミュニティ<i class="layui-icon layui-icon-down"></i></div><ul class="m_menusnames"><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/article.html" title="記事">記事</a></div></li><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/faq/zt" title="トピックス">トピックス</a></div></li><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/wenda.html" title="に質問">に質問</a></div></li></ul></li><li class="layui-menu-item-divider"></li><li class="layui-menu-item-group layui-menu-item-up m_menus" lay-options="{type: 'group'}"><div class="layui-menu-body-title m_menus_title">学ぶ<i class="layui-icon layui-icon-down"></i></div><ul class="m_menusnames"><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/course.html" title="コース">コース</a></div></li><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/dic/29.html" title="プログラミング辞典">プログラミング辞典</a></div></li></ul></li><li class="layui-menu-item-divider"></li><li class="layui-menu-item-group layui-menu-item-up m_menus" lay-options="{type: 'group'}"><div class="layui-menu-body-title m_menus_title">ツールライブラリ<i class="layui-icon layui-icon-down"></i></div><ul class="m_menusnames"><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/toolset/development-tools" title="開発ツール">開発ツール</a></div></li><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/toolset/website-source-code" title="公式サイト">公式サイト</a></div></li><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/toolset/php-libraries" title="PHP ライブラリ">PHP ライブラリ</a></div></li><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/toolset/js-special-effects" title="JS特殊効果">JS特殊効果</a></div></li><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/toolset/website-materials" title="サイト素材">サイト素材</a></div></li><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/toolset/extension-plug-ins" title="拡張プラグイン">拡張プラグイン</a></div></li></ul></li><li class="layui-menu-item-divider"></li><li lay-options="{id: 100}"><div class="layui-menu-body-title m_menus_oth"><a href="https://m.php.cn/ja/ai-tools" title="AIツール">AIツール</a></div></li><li class="layui-menu-item-divider"></li><li class="layui-menu-item-group layui-menu-item-up m_menus" lay-options="{type: 'group'}"><div class="layui-menu-body-title m_menus_title">レジャー<i class="layui-icon layui-icon-down"></i></div><ul class="m_menusnames"><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/game" title="ゲームのダウンロード">ゲームのダウンロード</a></div></li><li><div class="layui-menu-body-title m_menus_name"><a href="https://m.php.cn/ja/mobile-game-tutorial/" title="ゲームのチュートリアル">ゲームのチュートリアル</a></div></li></ul></li><li class="layui-menu-item-divider"></li></ul></div><!-- <div class="m_menu_button">--><!-- <a href="javascript:;" title="singup">Create an account</a>--><!-- </div>--><div class="m_menu_button m_menu_button_login"><a href="https://m.php.cn/ja/login" title="Login">Log in</a></div><div class="m_menu_button m_menu_button_lang"><button type="button" class="layui-btn layui-btn-primary headerlan headlanmax lan1" id="lan1" lay-on="page2">日本語<i class="layui-icon layui-icon-triangle-d"></i></button></div></div><div class="m_menu_lang" id="m_menu_lang" style="display: none;"><div class="m_editormain12main_top"><img src="/static/imghwm/logo.png" alt="logo"><a href="javascript:;" class="m_editormain12main_topi" id="m_editormain12main_topi_lan"><i class="layui-icon layui-icon-close"></i></a></div><div class="m_menu_lang_main"><a href="javascript:setlang('zh-cn');" class="m_menu_lang_mains">简体中文<span>zh-cn</span></a><a href="javascript:setlang('en');" class="m_menu_lang_mains">English<span>en</span></a><a href="javascript:setlang('zh-tw');" class="m_menu_lang_mains">繁体中文<span>zh-tw</span></a><a href="javascript:;" class="m_menu_lang_mains">日本語<span>ja</span></a><a href="javascript:setlang('ko');" class="m_menu_lang_mains">한국어<span>ko</span></a><a href="javascript:setlang('ms');" class="m_menu_lang_mains">Melayu<span>ms</span></a><a href="javascript:setlang('fr');" class="m_menu_lang_mains">Français<span>fr</span></a><a href="javascript:setlang('de');" class="m_menu_lang_mains">Deutsch<span>de</span></a></div></div></div></div></header><script> document.getElementById('lan1sp').addEventListener('click', function (event) { event.preventDefault(); var elements = document.getElementsByClassName('m_menu'); for (var i = 0; i < elements.length; i++) { elements[i].style.display = 'block'; } }); document.getElementById('m_editormain12main_topi_sp').addEventListener('click', function (event) { event.preventDefault(); var elements = document.getElementsByClassName('m_menu'); for (var i = 0; i < elements.length; i++) { elements[i].style.display = 'none'; } }); document.getElementById('lan1').addEventListener('click', function (event) { event.preventDefault(); var elements = document.getElementsByClassName('m_menu_lang'); for (var i = 0; i < elements.length; i++) { elements[i].style.display = 'block'; } }); document.getElementById('m_editormain12main_topi_lan').addEventListener('click', function (event) { event.preventDefault(); var elements = document.getElementsByClassName('m_menu_lang'); for (var i = 0; i < elements.length; i++) { elements[i].style.display = 'none'; } }); </script><div class="bodyMain"><!--所在位置--><div class="nphpSize"><div class="nphpSizeIn"><b></b><p><a href="https://m.php.cn/ja/" title="ホームページ" class="bBlack">ホームページ</a> ><a href="https://m.php.cn/ja/web-designer.html" class="cBlack">ウェブフロントエンド</a> ><a href="https://m.php.cn/ja/div-tutorial.html" class="cBlack">htmlチュートリアル</a> >BFCとは何ですか? BFC の簡単な理解</p><!-- <p><a href="https://m.php.cn/ja/article.html" class="cBlack">技術記事</a>  >  <a href="https://m.php.cn/ja/web-designer.html" class="cBlack">ウェブフロントエンド</a> > <a href="https://m.php.cn/ja/div-tutorial.html" class="cBlack">htmlチュートリアル</a> > BFCとは何ですか? BFC の簡単な理解</p> --><div class="clear"></div></div></div><div class="nphpQianBox"><div class="nphpQianTitle"><h1>BFCとは何ですか? BFC の簡単な理解</h1><div class="nphpQianTitleIn"><span><img data-src="https://img.php.cn/upload/avatar/000/001/506/5922afcbb3cf4752.jpg" alt="零下一度" class="lazyload" src="/static/front/mobimages/moren/moren.png" /></span><dl><dt><em>零下一度</em><i class='bg1'>オリジナル</i><div class="clear"></div></dt><dd><em>2017-07-02 09:38:13</em><i>12151ブラウズ</i><div class="clear"></div></dd></dl><div class="clear"></div></div></div><div class="nphpQianCont wenda-list"><h3>はじめに</h3> <p>BFCについて話す前に、例を見てみましょう</p> <div class="cnblogs_code"><pre class="brush:php;toolbar:false"> 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4       <meta charset="UTF-8"> 5     <title>BFC</title> 6       <style type="text/css"> 7           .div1 {background-color: #FCE38A; width: 200px; height: 100px;} 8           .div2 {background-color: #EAFFD0; width: 200px; height: 100px;} 9           .div3 {background-color: #95E1D3; width: 200px; height: 100px;}10       </style>11 </head>12 13 <body>14     <div class="div1">div1</div>15       <div class="div2">div2</div>16     <div class="div3">div3</div>17 </body>18   </html></pre></div> <p><img src="https://img.php.cn/upload/article/000/000/001/2d1003f9268b615fd697955bc6efef30-0.png" alt=""></p> <p>行の幅が制限されていても、ブロックレベルの要素の順序は上から下であることがわかります。複数の要素を収容するには、div1 と div2 に同時にマージンを追加します</p> <p><img src="https://img.php.cn/upload/article/000/000/001/8d322ce836c32aab0c6c9356bec2005a-1.png" alt=""></p> <p><img src="https://img.php.cn/upload/article/000/000/001/8d322ce836c32aab0c6c9356bec2005a-2.png" alt=""></p> <p>本来、div1 の下マージンは 50px、div2 の上マージンは 50px です。論理的には、それらの間の距離は次のようになります。 100pxですが、ここでは50pxのみです。これは、ブロックレベルのレイアウトコンテキストで隣接する2つのブロックレベルのボックス間の垂直マージンが折りたたまれているためです。これは、<span style="color: #0000ff;"><span style="color: #0000ff;">CSS学習ノート07ボックスモデル</span></span>で導入されたマージンマージです。このマージンのマージ現象を解決するにはどうすればよいでしょうか。これには、以下で紹介する BFC が関係します。 </p> <h3>BFCとは</h3> <p><span style="color: #ff0000;"><strong>ブロックレベルのフォーマットコンテキストです。ブロックレベルのボックスのみが参加します(表示属性はblock 、 list-item 、 table 要素など)、この領域の外側とは何の関係もありません。このうち、フォーマット コンテキストは、ドキュメントのレンダリング方法を決定するコンテナです。W3C CSS2.1 仕様の概念です。これはページ上のレンダリング領域であり、そのサブ要素がどのように配置されるか、および他の要素との関係や相互作用を決定する一連のレンダリング ルールがあります。最も一般的な書式設定コンテキストは、ブロック書式設定コンテキスト (BFC) とインライン書式設定コンテキスト (IFC) です。 CSS2.1ではBFCとIFCのみでしたが、CSS3ではGFCとFFCも追加されました。 </strong></span></p> <p>平たく言えば、BFC は独立したボックスであり、この独立したボックス内のレイアウトは外部の要素には影響されません。 <strong><span style="color: #ff0000;"></span></strong>ドキュメントのプレゼンテーションが開始されると、BFC が自動的に作成され、ページ全体がレイアウトされます。新しい BFC が作成されない場合、ドキュメント全体がこの BFC になります。 </p> <p>BFC ルール</p> <h3></h3> <ul class=" list-paddingleft-2"> 内部ボックスは上から順に垂直方向に配置されます (上記の例からわかるように)<li><p></p></li> 同じ BFC 内の 2 つの隣接するブロックにレベル要素では、垂直方向のマージンが折りたたまれます<li><p></p></li>は float です<li> <p></p>BFC 領域は float ボックスと重なりません</li> <li> <p></p>BFC はページ上で分離された独立したコンテナであり、コンテナ内のサブ要素は外部の要素に影響を与えません</li> <li> <p>。 </p> BFC を計算する</li> <li> <p></p> 高さの場合、浮動要素も計算に参加します</li> </ul> <h3></h3> BFC をトリガーします<ul class=" list-paddingleft-2"> <li> <p></p>ルート要素</li> <li> <p></p>float 属性は none ではありません (例: left | right) </li> <li> <p></p>overflow 値はありません表示 (例: hidden | auto | スクロール) </li> <li> <p></p> 表示属性値は inline-block または inline-flex です</li> <li> <p></p> |マージンオーバーレイを解決するための BFC</li> </ul> 問題<h3></h3>は依然として上記の例です。この時点ではページの要素は標準フロー内にあるため、ルールに従って、この時点では body 要素は BFC です<h4></h4> <pre class="brush:php;toolbar:false">同一个BFC中,在两个相邻的块级元素中,垂直margin会发生折叠</pre>。 <p></p>ここで、display:inline-block 属性を div1 に設定します<div class="cnblogs_code"></div> <p></p> <p><img src="https://img.php.cn/upload/article/000/000/001/8d322ce836c32aab0c6c9356bec2005a-3.png" alt=""></p> <p>このとき、div1 要素は、display:inline-block を通じて BFC をトリガーするため、この時点の div1 は独立した BFC です。ルール<img src="https://img.php.cn/upload/article/000/000/001/8d322ce836c32aab0c6c9356bec2005a-4.png" alt=""></p> <pre class="brush:php;toolbar:false">BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然</pre> <p></p>に準拠しているため、現時点ではマージンの重複はありません。 <div class="cnblogs_code"></div>内部フロートをクリアする<p></p> 標準フローのボックス内のすべての子要素がフローティングで、ボックスの高さが設定されていない場合、ボックス全体の高さが折りたたまれます。これは何を意味しますか? 以下の例を参照してください。 <h4><pre class="brush:php;toolbar:false"> 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>BFC清除内部浮动</title> 6     <style type="text/css"> 7         .child {background-color: #95E1D3; border: 1px solid #FCE38A; width: 100px; height: 100px;} 8         .parent {width: 300px; border: 1px solid #95E1D3;} 9     </style>10 </head>11 <body>12     <div class="parent">13         <div class="child"></div>14         <div class="child"></div>15     </div>16 </body>17 </html></pre></h4> <p></p> <div class="cnblogs_code"></div>親コンテナは2つの子divでサポートされています。今度は子にfloatを追加します<p><img src="https://img.php.cn/upload/article/000/000/001/b96b54d696cf1f8d8553339a5a1f0ae7-5.png" alt=""></p> <p></p> <p><img src="https://img.php.cn/upload/article/000/000/001/b96b54d696cf1f8d8553339a5a1f0ae7-6.png" alt=""></p>このとき、親コンテナは2本の重なった線となり、その高さになります。 0、いわゆる高さ崩壊です。ルールに従って<p><img src="https://img.php.cn/upload/article/000/000/001/b96b54d696cf1f8d8553339a5a1f0ae7-7.png" alt="">りー</p> <p>这时候可以触发parent生成BFC,那么parent在计算高度时,parent内部的浮动元素child也会参与计算</p> <p><img src="https://img.php.cn/upload/article/000/000/001/b96b54d696cf1f8d8553339a5a1f0ae7-8.png" alt=""></p> <p><img src="https://img.php.cn/upload/article/000/000/001/b96b54d696cf1f8d8553339a5a1f0ae7-9.png" alt=""></p> <h4>布局</h4> <div class="cnblogs_code"><pre class="brush:php;toolbar:false"> 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>BFC布局</title> 6     <style type="text/css"> 7         .left {width: 100px; height: 100px; background-color: #FCE38A; float: left;} 8         .right {width: 300px; height: 150px; background-color: #95E1D3;} 9 10     </style>11 </head>12 <body>13     <div class="left"></div>14     <div class="right"></div>15 </body>16 </html></pre></div> <p><img src="https://img.php.cn/upload/article/000/000/001/b96b54d696cf1f8d8553339a5a1f0ae7-10.png" alt=""></p> <p>根据规则</p> <div class="cnblogs_code"><pre class="brush:php;toolbar:false">每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反),即使存在浮动也是如此</pre></div> <p>所以即使left设置了左浮动,right的的左边依然会与包含块的左边(即body)相接触。接着我们可以根据规则</p> <div class="cnblogs_code"><pre class="brush:php;toolbar:false">BFC的区域不会与float box重叠</pre></div> <p>让right触发产生BFC,这样right就不会与left重叠了</p> <p><img src="https://img.php.cn/upload/article/000/000/001/ec094113ae178c5a44a9f00011b32c5d-11.png" alt=""></p> <p><img src="https://img.php.cn/upload/article/000/000/001/ec094113ae178c5a44a9f00011b32c5d-12.png" alt=""></p> <p>这样就形成了常见的两列布局。</p> <p><strong><span style="color: #ff0000;">总之记住一点BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,同样的,外面的元素也不会影响到容器里面的子元素。</span></strong></p><p>以上がBFCとは何ですか? BFC の簡単な理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。</p></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="フレックスボックスを使用した柔軟なレイアウトの共有例" href="https://m.php.cn/ja/faq/371935.html">フレックスボックスを使用した柔軟なレイアウトの共有例</a></span><span>次の記事:<a class="dBlack" title="フレックスボックスを使用した柔軟なレイアウトの共有例" href="https://m.php.cn/ja/faq/371937.html">フレックスボックスを使用した柔軟なレイアウトの共有例</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="https://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="https://m.php.cn/ja/faq/348757.html" title="HTMLの知識のまとめ" class="aBlack">HTMLの知識のまとめ</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/348804.html" title="HTMLを早く学ぶ方法" class="aBlack">HTMLを早く学ぶ方法</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/348873.html" title="html xhtml xml の違い" class="aBlack">html xhtml xml の違い</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/348884.html" title="src 属性と href 属性の違い" class="aBlack">src 属性と href 属性の違い</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/348902.html" title="HTML5とCSSの置き換え利用について" class="aBlack">HTML5とCSSの置き換え利用について</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!</p></div><div class="footermid"><a href="https://m.php.cn/ja/about/us.html">私たちについて</a><a href="https://m.php.cn/ja/about/disclaimer.html">免責事項</a><a href="https://m.php.cn/ja/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body><!-- Matomo --><script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://tongji.php.cn/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '9']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script><!-- End Matomo Code --></html>