简单来说,CSS 盒模型是一个包含多个组件的容器,包括边框、边距、内边距和内容本身。 总之,它是一个用于自定义不同元素布局的 CSS 工具包。...简单来说,这意味着边距、边框和填充将添加到使用 width 和 height 属性指定的总高度和宽度中。 此外,添加边距、内边距和边框不会减小内容区域的总大小。...或者换句话说,当向元素添加边距、内边距和边框时,元素的总高度和总宽度不会增加。 CSS盒子模型的组成部分: 1、内容: 这是 CSS 盒子模型的主要元素。...其他各种 CSS 属性可以应用于边框。这些属性包括但不限于边界半径等。 4、边距: 边距是元素边界之外的空间。它在相邻元素之间创建了一个空间。...您还可以尝试 CSS 网格图片库以了解有关 CSS 网格的更多信息。 如何创建 CSS 网格布局? 要创建 CSS 网格布局,我们创建一个容器并将其 display 属性设置为网格。
本文,我们探讨 CSS 网格的弹性布局,它是如何帮助我们实现水平滚动的,同时处理它带来的缺陷。...接下来,我们考虑使用 CSS Grid 网格布局来编码。使用 CSS Grid 网格布局方便我们控制元素之间的距离,无需进一步计算。...对于整体布局,我们将使用简单但强大的 CSS Grid 技术: .app { display: grid; grid-template-columns: 20px 1fr 20px; } .app...{ grid-column: 2 / -2; } .app > .full { grid-column: 1 / -1; } .app 类元素下的子元素都会被“容器化”,它们都有 20px 的边距...我们在网格列两端添加了 2 x 10px 的空间。结合 10px 的网格距离,我们总共有 20px,所以满足我们整体布局的内边距要求。
边距折叠 简而言之,当两个垂直元素有一个边距,并且其中一个的边距大于另一个时,就会发生边距折叠。 在这种情况下,将使用较大的边距,而忽略另一个边距。...-- And so on.. --> 通常,我更喜欢将组件封装起来,避免给它们添加边距,出于这个原因,我有元素 grid__item,我的卡片组件将位于其中。...margin-left: -10px; } .grid__item { flex-basis: 25%; padding-left: 10px; margin-bottom: 16px; } 我使用负边距的原因是因为第一张卡有...使用 CSS 网格,你可以使用 grid-gap 轻松添加间距。 此外,你不需要关心网格项目的宽度或底部边距。 CSS Grid 为你做一切!...正如 Max Stoiber 所说,这有点将管理边距的责任转移到父元素上,让我们以这种心态重新考虑以前的用例。
盒子模型 边距相互抵消 布局 使用表来设置样式表 Em、Rem 和 Px 盒子模型 好吧,学习 CSS 最简单的方法就是理解盒模型以及如何让它成为你的 B*tch 在 div 上给出这个 CSS div...边距相互抵消 好吧,我经常看到人们忘记这个,而不是经常提到的事情。...所以给出以下 CSS 和标记 p { margin: 10px 0; } some-text some-other-text 我们应该在两边都有 10px 的边距,但一个常见的错误是认为边距加起来但实际上相互抵消了...多行 2,3,n 列布局 它主要用于复制行之类的,我通常为此使用网格 对于这个例子,我想创建一个 3 列网格,我们不知道有多少元素进入其中,因为元素数量发生了变化。...然后我们以最短的方式描述我们的布局。
此外,CSS Tricks还在页边距底部和页边距顶部之间进行了投票。61%的开发者更喜欢 margin-bottom 而不是 margin-top。...那是因为它的边距折叠了。...-- And so on.. --> 通常,我更喜欢将组件封装起来,并避免给它们增加边距。由于这个原因,我有 grid__item元素,我的card组件将位于其中。...关于解决方案2,它没有CSS特异性问题。但是,它只能处理一个列栈。 更好的解决方案是通过向父元素添加负边距来取消不需要的间距。...使用抽象组件 解决上述问题的一种方法是使用抽象的组件,其目标是托管其他组件,就像Max Stoiber所说的那样,这是将管理边距的责任移到了父元素上,让我们以这种思维方式重新思考以前的用例。 ?
该元素将占用其父项的100%,加上左侧和右侧的边距。...使用CSS网格时,可以使用自动页边距实现类似于 flexbox 的结果。...如果没有,那么请使用自动页边距作为最后的选择,而应使用CSS逻辑属性。 overflow 属性 当我们有一个元素时,我们应该考虑它应该包含的最小和最大内容。...我们有一个有内边距的 wrapper 元素,还有一个子项。子项目是绝对定位的,但没有任何定位属性。...CSS将如下所示: .item__action { margin-inline-start: auto; } CSS grid 和自动边距 在向网格项目添加边距时,它可以是固定值,百分比或自动值
盒模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边距,边框,填充,和实际内容,可以简单表述为 盒模型由 content,padding,margin,border 几部分组成。...margin 折叠塌陷 1、阻止外边距折叠 margin 塌陷问题:在标准文档流中,块级标签之间竖直方向的 margin 会以大的为准,这就是 margin 的塌陷现象。...,且右边网格的大小自适应。...圣杯布局和双飞翼布局解决问题的方案在前一半是相同的,也就是三栏全部 float 浮动,但左右两栏加上负 margin 让其跟中间栏 div 并排,以形成三栏布局。...虽然是最常用的,但并不是唯一的方法。
要做到这一点,首先得确定宽度和边距,宽度通常是已知的,我们只需要把边距确定下来,就能确认剩余空间。...接上面的的例子,假设一行有4个, 每个占比24%,4个就是24% * 4 = 96% , 那么可以确定总边距是4%,由于一行有4个元素,而最后一个的右边距是多余的,那么可以确定单个的边距为 4% / 3...,css函数代替 */ margin-right: calc(4% / 3); margin-bottom: calc(4% / 3); } /* 去除每行尾的多余边距...,以加快css解析*/ & > * { flex: 0 0 #{$itemWidth + '%'}; height: $itemHeight; margin-right...方案三:网格布局 网格布局,默认就是左对齐,即使使用space-between。
我很好奇选择这个名字的原因。 帖子布局由2列* 4行网格组成。...虽然我在生产代码中找不到具体原因,但它似乎是对UI对齐进行微调。...这是带有和不带有padding-top处理的头像的前后外观: 应用padding-top的另一个原因可能是将头像下移并使其更接近线条。 对网格行使用奇数值 奇数值作为网格行的高度是出于什么考虑?...然而,只要您意识到这个限制,就可以通过使用边距来解决。 以下是一个例子: 由于行大小固定,添加顶部和底部填充不会影响帖子标题。 布局列之间的空间感觉有点乱 目前布局列之间的间隔为零。...网格的内联CSS变量 我很高兴看到像Threads这样的大型应用程序正在使用我和许多其他人提倡的东西。 在用户个人资料中,选项卡网格布局是使用包含选项卡数的内联CSS变量构建的。 很有用。
相应的,span、strong这些是行内元素,所以它们会以行内盒子(简称行盒子,inline box)显示在行内。 CSS 中有几种不同的定位模型,包括浮动、绝对定位和相对定位。...在堆放箱子时,不管箱子之间的间距(类似外边距)是多少,都不会影响箱子的可视大小。 如上,盒模型的计算如果以这一实物方案为参考,更加容易被人理解。...最后,内边距、边框和外边框可以应用于元素的四边,也可以单独用于某一边。外边距甚至可以使用负值,从而使得元素在页面中移动。...如果找不到这样一个定位祖先,那么它就是相对于文档的根元素进行定位的,文档的根元素也叫做起始包含块。...3.3 其他布局模块 除了上面介绍的定位、浮动等,CSS 还有一些比较新的更加灵活稳健的 CSS 布局模块。如弹性盒子布局、网格布局、多栏布局、Region 后续章节会进行详细介绍。
5 cloumn多栏布局 6 grid网格布局 7 display:table伪表格布局 8 css3选择器nth-child() 除非特别说明,以下几种方式的通用html结构如下: <div class...background: rgba(146, 203, 230, 0.65); border-radius: 8px; } 方法一、margin负值实现 原理 原理:margin负边距... 里应外合-li的边距交给孩子们来做,自己只负责一排站三个人的排列工作 ...原理 原理:用CSS Grid 创建网格布局,是最简单也是最强大的方法。...不足 缺点:li必须要设置固定的宽高,且ul也要设置固定宽高,以强制似的li“归位”。 关键点 1. li.nth-child(3n):控制第3以及3的倍数的li的右边距不存在。
XLObj=null; 7.页面设置 ExcelSheet.ActiveSheet.PageSetup.LeftMargin= 2/0.035; //页边距...左2厘米 ExcelSheet.ActiveSheet.PageSetup.RightMargin = 3/0.035; //页边距 右3厘米, ExcelSheet.ActiveSheet.PageSetup.TopMargin...= 4/0.035; //页边距 上4厘米, ExcelSheet.ActiveSheet.PageSetup.BottomMargin = 5/0.035; //页边距 下...5厘米 ExcelSheet.ActiveSheet.PageSetup.HeaderMargin = 1/0.035; //页边距 页眉1厘米 ExcelSheet.ActiveSheet.PageSetup.FooterMargin...= 2/0.035; //页边距 页脚2厘米 ExcelSheet.ActiveSheet.PageSetup.CenterHeader = “页眉中部内容”; ExcelSheet.ActiveSheet.PageSetup.LeftHeader
属性值]:选择属性值以指定值开头的元素 [属性名$=属性值]:选择属性值以指定值结尾的元素 [属性名*=属性值]:选择属性值中含有某值的元素的元素 <!...2选择器3选择器n{} 注意点:交选择器中如果有元素选择器,必须使用元素选择器开头。...伪类一般情况下都是使用:(冒号)开头 例如: :first-child 第一个子元素 :last-child 最后一个子元素 :nth-child()选中第n个子元素 特殊值: ...否定伪类 将符合条件的元素从选择器中去除 超链接的伪类: :link 超链接独有 作用:用来表示没有被点击过的链接 :visited 超链接独有 作用:表示访问过的链接,由于隐私的原因...伪元素使用::开头 例如: ::first-letter 表示第:一个字母 ::first-line 表示第一行 ::selection表示选中的内容 ::before 元素的开始
可以使用CSS的绝对定位和负边距的方式来实现一个盒子在页面中居中。...可以使用CSS的网格布局(grid)和媒体查询来实现一个响应式的网格布局。...伪类和伪元素是CSS中的两个不同概念。 伪类(pseudo-class)是指用于向某些选择器添加特殊效果的关键字,它们以冒号(:)开头,例如:hover、:active、:focus等。...伪元素(pseudo-element)是指用于向某些选择器添加特殊效果的关键字,它们以双冒号(::)开头,例如::before、::after、::first-letter等。...通过创建BFC可以解决一些常见的布局问题,例如清除浮动、防止边距重叠、实现两栏自适应布局等。 仓库地址:https://github.com/webVueBlog/WebGuideInterview
这就是为什么背景和边框会出现在浮动后面的原因。 我们通常有两种方法来解决这个布局问题。...查看演示 overflow 以这种方式工作的原因是,使用 visible 的初值以外的任何值都会创建一个块格式化上下文,而 BFC 的一个特性是它包含浮动。...BFC 可以防止 margin 折叠 了解边距合并是另一个被低估的 CSS 技能。在下一个示例中,假设有一个背景颜色为灰色的 div。 这个 div 包含两个标签 p。...在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。...如果我们把盒子设为 BFC,它现在包含了标签 p 和它们的边距,这样它们就不会折叠,我们可以看到边距后面容器的灰色背景。
)、$=(指定值结尾)、*=(包含指定字符串)、|=(空格分割值指定值开头) 7. css动态伪类选择器,:visited、:hover、:link、:active 8. css结构性伪类选择器, :lang...CSS3仅有的一个子元素 :last-of-type 最后一个指定选择器的子元素 :nth-child() CSS3第n个子元素 :nth-last-child() CSS3倒数第n个子元素 :first-of-type...CSS3第一个同级兄弟元素 :last-of-type CSS3最后一个同级兄弟元素 :only-of-type CSS3唯一的一个同级兄弟元素 :nth-of-type() CSS3第n个同级兄弟元素...:nth-last-of-type() CSS3倒数第n个同级兄弟元素 :empty CSS3没有任何子元素 :target CSS3URL指向的元素 提示 :nth-of-type(odd...4. inline-block 使用 inline-block 布局之后元素之间去除边距等因素后,无法完全紧靠的原因:为了方便理解,可以将 inline-block 容器内的元素看成是两个文字,文字与文字之间不可能是连在一起的
overflow overflow 以这种方式工作的原因是,使用 visible 的初值以外的任何值都会创建一个块格式化上下文,而 BFC 的一个特性是它包含浮动。...BFC 可以防止 margin 折叠 了解边距合并是另一个被低估的 CSS 技能。在下一个示例中,假设有一个背景颜色为灰色的 div。这个 div 包含两个标签 p。...防止 margin 折叠 在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。...如果我们把盒子设为 BFC,它现在包含了标签 p 和它们的边距,这样它们就不会折叠,我们可以看到边距后面容器的灰色背景。...这个问题上弹性盒或许是个更好的解决方案,但这个办法可以用来说明元素在这些环境下的行为。 还有什么能创建 BFC? 除了使用 overflow 创建 BFC 外,其他一些 CSS 属性还创建 BFC。
摘要 本文是一篇关于如何设计优秀的CSS网页布局框架的文章,提供了一些设计指南和具体的代码示例,以帮助读者快速搭建出优秀的网站。...文章重点介绍了选择合适的CSS框架、创建网格系统、使网站响应式以及一些其他设计考虑因素。 选择合适的CSS框架 在设计一个CSS网页布局框架之前,需要先选择一个合适的CSS框架。...创建一个网格系统 创建一个网格系统是设计CSS网页布局框架的重要一步。一个好的网格系统可以使你的网站布局更加一致、稳定,并且可以让你更方便地管理和布局各种元素。...定义了一个 .row 类以设置行的负边距。 此外,我们还定义了一个 .col 类,该类是我们网格系统的构建块。我们使用浮动(left)属性来让列按预期方式对齐。...第二个媒体查询将 .container-fluid 类更改为 .container 类以适应小屏幕并增加外边距和内边距。
外边距重叠 块的上外边距(margin-top)和下外边距(margin-bottom)有时合并(折叠)为单个边距,其大小为单个边距的最大值(或如果它们相等,则仅为其中一个),这种行为称为边距折叠。..."; display: table; } 当上下同时取外边距的时候取上下两者的最大值 ---- padding padding CSS 简写属性控制元素所有四条边的内边距区域。...绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。...both:清除左右两侧浮动 ---- 13.flex布局 flex CSS简写属性设置了弹性项目如何增大或缩小以适应其弹性容器中可用的空间。...---- align-content CSS 的 align-content 属性设置了浏览器如何沿着弹性盒子布局的纵轴和网格布局的主轴在内容项之间和周围分配空间。
当然,初始化样式有时会对SEO产生一定的影响,但鱼和熊掌不可兼得,所以在力求影响最小的情况下初始化CSS。...GIF:支持动画显示,但只支持256色显示,目前已经被Fash大量取代。 35、CSS的 content属性有什么作用?有什么应用?...43、访问超链接后 hover样式就不出现的原因是什么?应该如何解决?...44、什么是外边距重叠?重叠的结果是什么? 外边距重叠就是 margin- collapse在CSS中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。...IE6双边距Bug是指在块属性标签float后又有横行的 margin时,在IE6中显示的margin比设置的大浮动IE产生的双倍距离(IE6的双边距问题是指在IE6下,如果对元素设置了浮动,同时又设置了
领取专属 10元无门槛券
手把手带您无忧上云