<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>布局技巧 on Last Stand</title><link>https://amatsuzero.github.io/LastStand/tags/%E5%B8%83%E5%B1%80%E6%8A%80%E5%B7%A7/</link><description>Recent content in 布局技巧 on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 10 Nov 2024 00:00:00 +0800</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/tags/%E5%B8%83%E5%B1%80%E6%8A%80%E5%B7%A7/index.xml" rel="self" type="application/rss+xml"/><item><title>布局技巧</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/css/css-009/</link><pubDate>Thu, 10 Oct 2024 00:00:00 +0800</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/css/css-009/</guid><description>&lt;h3 id="1普通流常规流"&gt;1、普通流（常规流）&lt;/h3&gt;
&lt;p&gt;文档流（流式布局）分为 普通流、定位流、浮动流，不同流内的块级元素和行内元素的布局方式不同，布局方式用 FC（格式化上下文，含有 块级格式化上下文、内联格式化上下文、层叠格式化上下文、灵活格式化上下文等）来命名；&lt;/p&gt;
&lt;p&gt;普通流中的布局规则默认为块级盒子从上到下，垂直排列；内联盒子从左到右，水平排列等；（书写模式（writing-mode）会对流布局产生影响；&lt;/p&gt;
&lt;h3 id="2position"&gt;2、position&lt;/h3&gt;
&lt;p&gt;属性有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;static：默认值，元素依然按照 普通流 的定位规则定位；&lt;/li&gt;
&lt;li&gt;relative&lt;/li&gt;
&lt;li&gt;absolute&lt;/li&gt;
&lt;li&gt;sticky&lt;/li&gt;
&lt;li&gt;fixed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用 position 会脱离常规流，成为定位流，并有其自己的定位规则；&lt;/p&gt;
&lt;h3 id="3float"&gt;3、float&lt;/h3&gt;
&lt;p&gt;属性有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;left&lt;/li&gt;
&lt;li&gt;right&lt;/li&gt;
&lt;li&gt;none&lt;/li&gt;
&lt;li&gt;inherit&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用 float 会脱离常规流，成为浮动流，并有其自己的定位规则；&lt;/p&gt;
&lt;h3 id="4table"&gt;4、table&lt;/h3&gt;
&lt;p&gt;使用 HTML 标签来布局；&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-css" data-lang="css"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#f92672"&gt;table&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;    &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#f92672"&gt;tr&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;   &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#f92672"&gt;th&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#f92672"&gt;th&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;   &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#f92672"&gt;th&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#f92672"&gt;th&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;    &lt;span style="color:#f92672"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#f92672"&gt;tr&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;    &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#f92672"&gt;tr&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;   &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#f92672"&gt;td&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#f92672"&gt;td&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;        &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#f92672"&gt;td&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#f92672"&gt;td&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;    &lt;span style="color:#f92672"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#f92672"&gt;tr&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#f92672"&gt;table&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5flex"&gt;5、flex&lt;/h3&gt;
&lt;p&gt;2009 年 W3C 提供的方案，注意只有 IE 10+ 支持 flex；&lt;/p&gt;
&lt;p&gt;重要的概念：flex 容器，flex 项目，主轴，交叉轴；&lt;/p&gt;
&lt;p&gt;设置某个元素的属性 &lt;code&gt;display: flex;&lt;/code&gt;，此元素就成了 flex 容器，flex 容器内的元素是 flex 项目；&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;flex 容器的属性：&lt;br&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;flex-direction&lt;/li&gt;
&lt;li&gt;flex-wrap&lt;/li&gt;
&lt;li&gt;flex-flow&lt;/li&gt;
&lt;li&gt;justify-content&lt;/li&gt;
&lt;li&gt;align-items&lt;/li&gt;
&lt;li&gt;align-content&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;flex 项目的属性&lt;br&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;flex （flex-grow、flex-shrink、flex-basis）&lt;/li&gt;
&lt;li&gt;order&lt;/li&gt;
&lt;li&gt;align-self&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="6grid"&gt;6、grid&lt;/h3&gt;
&lt;p&gt;二维布局方式，相对于使用 HTML 结构实现的 table 布局，grid 布局都是在 CSS 中完成的；&lt;/p&gt;</description></item></channel></rss>