<?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>Display on Last Stand</title><link>https://amatsuzero.github.io/LastStand/tags/display/</link><description>Recent content in Display on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 18 Nov 2024 00:00:00 +0800</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/tags/display/index.xml" rel="self" type="application/rss+xml"/><item><title>display</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/css/display/</link><pubDate>Thu, 10 Oct 2024 00:00:00 +0800</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/css/display/</guid><description>&lt;h4 id="一display属性介绍"&gt;一、display属性介绍&lt;/h4&gt;
&lt;p&gt;display 属性规定元素应该生成的框的类型。&lt;/p&gt;
&lt;p&gt;以下是一些关于display比较常用的属性值：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;值&lt;/th&gt;
&lt;th&gt;描述&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;none&lt;/td&gt;
&lt;td&gt;元素不会显示&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;block&lt;/td&gt;
&lt;td&gt;此元素将显示为块级元素，此元素前后会带有换行符。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;inline&lt;/td&gt;
&lt;td&gt;默认。此元素会被显示为内联元素，元素前后没有换行符。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;line-block&lt;/td&gt;
&lt;td&gt;行内块元素。（CSS2.1 新增的值）[IE6/7不支持]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;list-item&lt;/td&gt;
&lt;td&gt;此元素会作为列表显示。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;inline-table&lt;/td&gt;
&lt;td&gt;此元素会作为内联表格来显示（类似 table），表格前后没有换行符。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;table&lt;/td&gt;
&lt;td&gt;此元素会作为块级表格来显示（类似 table），表格前后带有换行符。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;table-row&lt;/td&gt;
&lt;td&gt;此元素会作为一个表格行显示（类似 tr）。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;table-cell&lt;/td&gt;
&lt;td&gt;此元素会作为一个表格单元格显示（类似 td 和 th）.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;inherit&lt;/td&gt;
&lt;td&gt;规定应该从父元素继承 display 属性的值。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;其中我们在前端开发中比较常用的属性值一般是none、block、inline、inline-block。我将按顺序为这些属性值一一讲解。&lt;/p&gt;
&lt;h4 id="二displaynone"&gt;二、display:none&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;将元素与其子元素从普通文档流中移除。这时文档的渲染就像元素从来没有存在过一样，也就是说它所占据的空间消失了。元素的内容也会消失。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="三displayblock"&gt;三、display:block&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;block元素会独占一行，多个block元素会各自新起一行。默认情况下，block元素宽度自动填满其父元素宽度；&lt;/li&gt;
&lt;li&gt;block元素可以设置margin和padding属性；&lt;/li&gt;
&lt;li&gt;block元素可以设置width、height属性。&lt;/li&gt;
&lt;li&gt;块级元素即使设置了宽度，仍然是独占一行。块级元素在设置宽度的情况下，是通过自定义margin-right来自动填满一行，这个时候你设置margin-right是无效的；块级元素在没有设置宽度的时候，margin-right会生效，块级元素的width通过自定义在自动填满一行。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;块级元素在设置宽度的情况下，是通过自定义margin-right来自动填满一行，这个时候你设置margin-right是无效的，如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/css/display/image-01.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;块级元素在没有设置宽度的时候，margin-right会生效，块级元素的width通过自定义在自动填满一行，如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/css/display/image-02.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="四displayinline"&gt;四、display:inline&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;inline元素不会独占一行，多个相邻的行内元素会排列在同一行里，直到一行排列不下，才会新换一行，其宽度随元素的内容而变化；&lt;/li&gt;
&lt;li&gt;inline元素设置width、height属性无效；&lt;/li&gt;
&lt;li&gt;inline元素的margin和padding属性，水平方向的padding-left、padding-right、margin-left、margin-right都产生边距效果；但竖直方向的padding-top、padding-bottom、margin-top、margin-bottom不会产生边距效果。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/css/display/image-03.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="五displayinline-block"&gt;五、display:inline-block&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;将对象呈现为inline对象，但是对象的内容作为block对象呈现，之后的内联对象会被排列在同一行内。就是集合了block和inline的全部优点。width、height、margin、padding设置都会生效。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/css/display/image-04.png"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;原文：&lt;a href="https://juejin.cn/post/6844903781566513160"&gt;https://juejin.cn/post/6844903781566513160&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="常见考点"&gt;常见考点&lt;/h2&gt;
&lt;h3 id="1-基本概念"&gt;1. &lt;strong&gt;基本概念&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;请简述 CSS 中的 &lt;strong&gt;&lt;code&gt;display&lt;/code&gt;&lt;/strong&gt; 属性及其作用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;display&lt;/code&gt;&lt;/strong&gt; 属性的常见值有哪些？请列举并解释其含义。&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;例如：&lt;code&gt;block&lt;/code&gt;、&lt;code&gt;inline&lt;/code&gt;、&lt;code&gt;inline-block&lt;/code&gt;、&lt;code&gt;flex&lt;/code&gt;、&lt;code&gt;grid&lt;/code&gt;、&lt;code&gt;none&lt;/code&gt; 等。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-display-block"&gt;2. &lt;strong&gt;&lt;code&gt;display: block&lt;/code&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;什么是 &lt;strong&gt;&lt;code&gt;display: block&lt;/code&gt;&lt;/strong&gt;？它会给元素带来哪些表现？&lt;/li&gt;
&lt;li&gt;一个块级元素通常具有哪些特点？例如：它的宽度会如何变化？它是否会换行？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-display-inline"&gt;3. &lt;strong&gt;&lt;code&gt;display: inline&lt;/code&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;什么是 &lt;strong&gt;&lt;code&gt;display: inline&lt;/code&gt;&lt;/strong&gt;？它与 &lt;strong&gt;&lt;code&gt;display: block&lt;/code&gt;&lt;/strong&gt; 有什么不同？&lt;/li&gt;
&lt;li&gt;内联元素如何处理宽度和高度？它们是否会占据整个可用宽度？&lt;/li&gt;
&lt;li&gt;如何让一个内联元素变得像块级元素一样换行？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-display-inline-block"&gt;4. &lt;strong&gt;&lt;code&gt;display: inline-block&lt;/code&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;什么是 &lt;strong&gt;&lt;code&gt;display: inline-block&lt;/code&gt;&lt;/strong&gt;？它结合了 &lt;code&gt;inline&lt;/code&gt; 和 &lt;code&gt;block&lt;/code&gt; 的哪些特点？&lt;/li&gt;
&lt;li&gt;使用 &lt;strong&gt;&lt;code&gt;inline-block&lt;/code&gt;&lt;/strong&gt; 时，元素的宽高如何影响布局？&lt;/li&gt;
&lt;li&gt;&lt;code&gt;inline-block&lt;/code&gt; 元素如何与其他元素对齐？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-display-none"&gt;5. &lt;strong&gt;&lt;code&gt;display: none&lt;/code&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;请解释 &lt;strong&gt;&lt;code&gt;display: none&lt;/code&gt;&lt;/strong&gt; 的作用与 &lt;strong&gt;&lt;code&gt;visibility: hidden&lt;/code&gt;&lt;/strong&gt; 的区别。&lt;/li&gt;
&lt;li&gt;使用 &lt;strong&gt;&lt;code&gt;display: none&lt;/code&gt;&lt;/strong&gt; 会有什么样的表现？例如，它对页面布局有何影响？&lt;/li&gt;
&lt;li&gt;当你将一个元素的 &lt;strong&gt;&lt;code&gt;display&lt;/code&gt;&lt;/strong&gt; 设置为 &lt;strong&gt;&lt;code&gt;none&lt;/code&gt;&lt;/strong&gt; 时，它会消失，但仍然存在于 DOM 中。如何通过 JavaScript 使其重新显示？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="6-display-flex"&gt;6. &lt;strong&gt;&lt;code&gt;display: flex&lt;/code&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;display: flex&lt;/code&gt;&lt;/strong&gt; 是什么？它通常用来实现什么样的布局效果？&lt;/li&gt;
&lt;li&gt;在使用 &lt;code&gt;flex&lt;/code&gt; 布局时，如何控制子元素的排列方向、对齐方式等？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;justify-content&lt;/code&gt;&lt;/strong&gt;、&lt;strong&gt;&lt;code&gt;align-items&lt;/code&gt;&lt;/strong&gt;、&lt;strong&gt;&lt;code&gt;flex-direction&lt;/code&gt;&lt;/strong&gt; 等 Flexbox 属性的作用是什么？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="7-display-grid"&gt;7. &lt;strong&gt;&lt;code&gt;display: grid&lt;/code&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;什么是 &lt;strong&gt;&lt;code&gt;display: grid&lt;/code&gt;&lt;/strong&gt; 布局？它与 &lt;strong&gt;&lt;code&gt;flex&lt;/code&gt;&lt;/strong&gt; 布局有何区别？&lt;/li&gt;
&lt;li&gt;在 &lt;strong&gt;&lt;code&gt;grid&lt;/code&gt;&lt;/strong&gt; 布局中，如何设置行和列的大小？如何控制子元素的位置？&lt;/li&gt;
&lt;li&gt;请举例说明 &lt;strong&gt;&lt;code&gt;grid-template-columns&lt;/code&gt;&lt;/strong&gt;、&lt;strong&gt;&lt;code&gt;grid-template-rows&lt;/code&gt;&lt;/strong&gt;、&lt;strong&gt;&lt;code&gt;grid-gap&lt;/code&gt;&lt;/strong&gt; 等属性的使用方法。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="8-display-table"&gt;8. &lt;strong&gt;&lt;code&gt;display: table&lt;/code&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;什么是 &lt;strong&gt;&lt;code&gt;display: table&lt;/code&gt;&lt;/strong&gt;，它如何模仿传统的 HTML &lt;code&gt;&amp;lt;table&amp;gt;&lt;/code&gt; 元素？&lt;/li&gt;
&lt;li&gt;使用 &lt;strong&gt;&lt;code&gt;display: table&lt;/code&gt;&lt;/strong&gt; 时，如何控制表格的行和列布局？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;display: table-row&lt;/code&gt;&lt;/strong&gt;、&lt;strong&gt;&lt;code&gt;display: table-cell&lt;/code&gt;&lt;/strong&gt; 和 &lt;strong&gt;&lt;code&gt;display: table-caption&lt;/code&gt;&lt;/strong&gt; 的作用是什么？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="9-布局模型对比"&gt;9. &lt;strong&gt;布局模型对比：&lt;code&gt;block&lt;/code&gt; vs &lt;code&gt;inline&lt;/code&gt; vs &lt;code&gt;flex&lt;/code&gt; vs &lt;code&gt;grid&lt;/code&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;你如何选择使用 &lt;strong&gt;&lt;code&gt;block&lt;/code&gt;&lt;/strong&gt;、&lt;strong&gt;&lt;code&gt;inline&lt;/code&gt;&lt;/strong&gt;、&lt;strong&gt;&lt;code&gt;flex&lt;/code&gt;&lt;/strong&gt; 或 &lt;strong&gt;&lt;code&gt;grid&lt;/code&gt;&lt;/strong&gt; 布局？&lt;/li&gt;
&lt;li&gt;在实际项目中，什么时候使用 &lt;code&gt;flex&lt;/code&gt; 布局，什么时候使用 &lt;code&gt;grid&lt;/code&gt; 布局？&lt;/li&gt;
&lt;li&gt;请比较 &lt;code&gt;flex&lt;/code&gt; 和 &lt;code&gt;grid&lt;/code&gt; 布局的优缺点及应用场景。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="10-display"&gt;10. &lt;strong&gt;&lt;code&gt;display&lt;/code&gt; 与其他布局属性&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;在使用 &lt;strong&gt;&lt;code&gt;display: flex&lt;/code&gt;&lt;/strong&gt; 或 &lt;strong&gt;&lt;code&gt;display: grid&lt;/code&gt;&lt;/strong&gt; 布局时，如何与其他布局属性（如 &lt;code&gt;position&lt;/code&gt;、&lt;code&gt;float&lt;/code&gt; 等）配合使用？&lt;/li&gt;
&lt;li&gt;如何解决使用 &lt;strong&gt;&lt;code&gt;display: flex&lt;/code&gt;&lt;/strong&gt; 或 &lt;strong&gt;&lt;code&gt;display: grid&lt;/code&gt;&lt;/strong&gt; 布局时遇到的常见布局问题，例如元素溢出、对齐等？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="11-display-none"&gt;11. &lt;strong&gt;&lt;code&gt;display: none&lt;/code&gt; 与性能&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;display: none&lt;/code&gt;&lt;/strong&gt; 对页面性能有何影响？如何通过 JavaScript 动态控制显示/隐藏元素以提高性能？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-display-contents"&gt;12. &lt;strong&gt;&lt;code&gt;display: contents&lt;/code&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;什么是 &lt;strong&gt;&lt;code&gt;display: contents&lt;/code&gt;&lt;/strong&gt;？它是如何工作的？它与其他 &lt;strong&gt;&lt;code&gt;display&lt;/code&gt;&lt;/strong&gt; 值有什么区别？&lt;/li&gt;
&lt;li&gt;请举例说明 &lt;strong&gt;&lt;code&gt;display: contents&lt;/code&gt;&lt;/strong&gt; 的应用场景及可能的问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="13-display"&gt;13. &lt;strong&gt;&lt;code&gt;display&lt;/code&gt; 的继承性&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;display&lt;/code&gt;&lt;/strong&gt; 属性是否继承？如果没有，如何通过样式继承的方式控制多个元素的 &lt;strong&gt;&lt;code&gt;display&lt;/code&gt;&lt;/strong&gt; 属性？&lt;/li&gt;
&lt;li&gt;你如何在多个嵌套元素中保持一致的布局设置？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="14-display"&gt;14. &lt;strong&gt;&lt;code&gt;display&lt;/code&gt; 的可见性与布局&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;display&lt;/code&gt; 属性会影响元素的布局、渲染和可见性。请简要解释 &lt;strong&gt;&lt;code&gt;display: none&lt;/code&gt;&lt;/strong&gt; 和 &lt;strong&gt;&lt;code&gt;visibility: hidden&lt;/code&gt;&lt;/strong&gt; 的区别，它们对页面的影响不同吗？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="15-实际应用"&gt;15. &lt;strong&gt;实际应用&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;请描述一个你在实际开发中使用 &lt;strong&gt;&lt;code&gt;display&lt;/code&gt;&lt;/strong&gt; 属性解决布局问题的案例。&lt;/li&gt;
&lt;li&gt;如果需要在一个响应式设计中调整元素的布局，如何根据屏幕尺寸调整 &lt;code&gt;display&lt;/code&gt; 属性？&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>