视口单位 视口单位是相对单位,可以轻松创建可扩展的设计。它们包括 vw(视口宽度)和 vh(视口高度),它们是视口尺寸的百分比。这些单位对于设置适应视口大小的尺寸和间距特别有用。...} 在此示例中,容器跨越视口的整个宽度,确保它适应不同的屏幕尺寸。...随着屏幕宽度的增加,项目的大小会调整为占据容器的 48%,然后是 31%,从而创建响应式网格布局。...组合技术 结合媒体查询、视口单元和流体布局,您可以创建高度响应且灵活的网页设计。...,标题高度使用clamp()进行响应,网格布局根据屏幕尺寸进行调整。
Grid网格布局 网格属性的大小和宽度都是相对于网格容器元素本身。 grid-template-columns: 20% 20%; //定义网格的列数和网格宽度。...: center; //当网格的长小于整个容器时,整个网格在它的父容器内的上下对齐方式 (口内一个田) justify-content: center; //当网格的宽小于整个容器时,整个网格在它的父容器内的左右对齐方式...容器宽高相等 当容器的内边距设置100%且高度为0时,元素高度取的是容器的宽度单位。...增加和去除边框 增加和去除边框导致元素的大小发生变化,同时影响到其他元素产生位移的偏差感:可以调整为边框一直存在,当不需要展示时显示透明,需要的时候再展示颜色。...BFC是一个独立的容器,内部元素不会影响容器外部的元素。 属于同一个BFC的两个盒子,外边距margin会发生重叠,并且取最大外边距。 计算BFC高度时,浮动元素也要参与计算。
我们一般使用CSS媒体查询来检测视口宽度或高度,然后根据该模式改变设计。 这就是在过去10年中设计Web布局的方式。...这样的话,如果我们把思路转向组件的父组件呢?换句话说,如果我们查询父组件,并根据父组件的宽度或高度来决定组件应该是什么样子的呢?我们来看下容器查询的概念。 什么是容器查询 首先,让我定义容器。...此外,我们可以在任何想要的地方定义它们,这意味着如果需要,我们可以在顶级容器上进行查询。现在大家已经理解了CSS容器查询的基本思想,在看看下面图片加深一下映像。 在左边,这是一个正在调整大小的视口。...注意我是如何将每个变体映射到一个特定的上下文,而不是一个视口。为了进一步证明这一点,我们配合 CSS网格一起使用时,组件的行为会有何不同。...CSS容器查询用例 我们来探索一些可以使用CSS容器查询实现的用例。 聊天列表 我在Facebook messenger上看到了这种模式。聊天列表根据视口宽度改变。
在过去的几年里,有一些黑科技来实现这一点,但现在,我们只需要使用CSS 即可,这要感谢overscroll-behavior CSS属性。 在下面的图中,可以看到默认的滚动链接行为。...固定高度 我经常看到主内容部分有固定的高度,而内容却大于这个高度,这就导致了布局的破坏。...min-height: 600px) { .aside__secondary { position: sticky; bottom: 0; } } 这样,只有当视口高度大于或等于...如果有一定数量的子项目,布局看起来会很好。然而,当它们增加或减少时,布局会看起来很奇怪。 考虑以下例子: 我们有一个有四个项目的 flex 容器。...,这在小的视口尺寸上会出现问题。
也就是你的手机屏幕,所以不同设备的视觉视口可能不同,有了 visual viewport,我们就可以实现网页的拖拽和缩放了,为什么? 因为有了一个承载布局视口的容器。...响应式设计里,vw 和 vh 常被用于布局,因为它们是相对于视口的, vw,viewport width,视口宽度,所以 1vw = 1% 视口宽度 vh,viewport height,视口高度,所以...1vh = 1% 视口高度 以 IPhone X 为例,vw 和 CSS 像素的换算如下, 的布局,作为补充,W3C 在后续提出了网格布局(CSS Grid Layout),网格将容器再度划分为 “行” 和 “列”,产生单元格,项目(子元素)可以在单元格内组合定位...网格 关于网格布局推荐阅读这篇文章 A Complete Guide to Grid。 上述文章非常详细地介绍了网格的一些基本概念(比如容器和项目,行和列,单元格和网格线等),使用姿势,注意事项等。
这是带有和不带有padding-top处理的头像的前后外观: 应用padding-top的另一个原因可能是将头像下移并使其更接近线条。 对网格行使用奇数值 奇数值作为网格行的高度是出于什么考虑?...经过进一步检查,似乎是对用户界面进行微调的一种方式。行高的总和为40px,这包括头像的高度和padding-top(36px + 4px)。 可能会好奇为什么这些值没有标准化。...布局列之间的空间感觉有点乱 目前布局列之间的间隔为零。相反,图像的大小为36 * 36像素,而其容器的宽度为48像素。 这样可以模拟这里的间距。...当选项卡数量增加时,我们只需要更改CSS变量的值。很简洁,对吧? 溢出换行 我注意到在帖子正文中使用了overflow-wrap: anywhere。我以前没有使用过或听说过这个关键词。...动态视口单位的使用 我喜欢在启动画面中使用动态视口单位dvh。 防御性的CSS策略 为了确保flexbox布局不会因为最小内容长度而破裂,使用min-width: 0来重置该行为。
其原本占据的空间也会被移除。该元素会定位会相对于视口容器,除非其某个祖先元素也是定位元素(position值不为static)。...baseline: 项目的第一行文字的基线对齐。 stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。...5.2.1 容器和项目 采用网格布局的区域,称为"容器"(container)。容器内部采用网格定位的子元素,称为"项目"(item)。...5.2.2 行和列 容器里面的水平区域称为"行"(row),垂直区域称为"列"(column)。 上图中,水平的深色区域就是"行",垂直的深色区域就是"列"。...上图中,只指定了1号项目的左右边框,没有指定上下边框,所以会采用默认位置,即上边框是第一根水平网格线,下边框是第二根水平网格线。
一般来说,在处理这样的问题时,我们需要开发和提供不同的布局,通过检测视口的分辨率,判断当前访问设备的种类,请求不同的页面布局从而提供尺寸较为合适的展示场景。...其原理是将网页划分成一个个网格,通过任意组合不同的网格,做出各种各样的布局。...当对某个组件设置了自适应之后,组件会根据内部的内容动态的变化自己的高度或宽度,比如文本框,会根据输入的文字内容来动态调节自己的框体大小,附件单元格会按照数据的多少来扩展高度。...在活字格中,范围模式提供了按照像素与占比两种方式来设定范围 活字格的范围模式设置界面 上图中的最大值占比,代表的是当且设置的列,在整个页面占据的比例为1份,也就是说,如果整个页面,只有当前列被设置了占比为...行列自动扩 活字格的每个行列,都可以设置以上3种模式,而占用多行区域的单元格,设置一行或者一列时,这个容器区域内部会自动扩展。比如:表格,图文列表,数据透视表,页面容器单元格,标签页,选项卡等。
然而,浮动布局存在一些显著的缺陷,比如清除浮动(clearfix)问题,需要额外的技巧来防止父元素的高度坍塌。...每一列都具有固定的宽度,并通过 margin 保持间距。 3.2 创建液态网格 液态网格可以根据视口宽度自动调整列的宽度。通过使用 calc() 函数,可以轻松地进行计算。...,使得列的宽度能根据视口的宽度自动调整,创造出更灵活的网格布局。...因为浮动的元素会脱离文档流,父容器往往不会自动扩展以包围浮动的子元素。这会导致父容器的高度坍塌,需要开发者手动清除浮动来解决这个问题。...比如,CSS Grid可以轻松控制网格项之间的间距,Flexbox可以让元素在容器中均匀分布或对齐。
提示:grid-column: start / end; ,其中 start 对应值为数字,表示网格项的起始位置。end 对应值为数字,表示网格项的结束位置。...display: grid; 启用网格布局模式。 grid-template-columns: 1fr 1fr 1fr; 将网格容器划分为 3 列,每列宽度相等(1fr 表示一个灵活的分数单位)。...height: 14vw; 设置高度为视口宽度的 14%,使拼图块高度随视口宽度变化而等比例变化,保持响应式效果。...三、工作流程▶️ 页面结构搭建:HTML 代码构建了基本的页面结构,包含一个 section 容器,内部有一张图片和一个包含 7 个 div 元素的 article 容器,这些 div 作为拼图块的占位...拼图块样式设置:为每个 div (拼图块)设置黑色背景和相对视口宽度的高度,使其在页面上显示为具有一定大小和颜色的拼图块。 测试结果
技术原理在网页布局中,我们常常需要将一系列内容(比如图片、列表或者宝可梦角色等)以网格形式展示。这些内容的数量、宽度和高度可能随时变化,这就给我们使用固定的 CSS 网格布局带来了挑战。...minmax() 函数定义了每个网格项的最小和最大尺寸。min() 函数从一组值中选取最小的尺寸,其中 15ch 是最小尺寸,而 100% 则防止在窄视口下出现溢出。...minmax() 函数定义每个网格项的最小和最大尺寸,min() 函数选取最小尺寸,防止窄视口下溢出,同时可使用 CSS 变量自定义最小宽度。...函数,网格会根据容器宽度和网格项最小尺寸自动调整列数。实施步骤按照实践准则一的步骤创建 HTML 容器和 CSS 样式。...动态添加内容时,未考虑 CSS 样式的更新,可能导致新添加的内容布局异常。性能指标参考值内容加载时间:每增加 10 个内容元素,加载时间增加不应超过 500 毫秒。
CSS中各种布局的背后,实质上是各种*FC的组合。CSS2.1 中只有 BFC 和 IFC, CSS3 中还增加了 FFC 和 GFC。...影响布局的因素: 1.盒的尺寸和类型 2.定位方案 Positioning Scheme (常规流,浮动和绝对定位) 3.文档树中元素之间的关系 4.外部信息(如:视口大小,图片的固有尺寸等) FC -...BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。 计算BFC的高度时,浮动元素也参与计算。...IFC 中的 line box 高度由 CSS 行高计算规则来确定,同个 IFC 下的多个 line box 高度可能会不同(比如一行包含了较高的图片,而另一行只有文本)。...布局规则 通过在网格容器(grid container)上定义网格定义行(grid definition rows)和网格定义列(grid definition columns)属性各在网格项目(grid
所有元素的大小都已给出,无需修改,完成后效果如下(图中灰色线条为布局参考线无需实现): 要求规定 请勿修改页面中所有给出元素的大小,以免造成无法判题通过。... 标签内包含了字符编码、浏览器兼容性、视口设置、页面标题以及外部 CSS 文件的链接。 2.....container 元素被设置为弹性容器,子元素按照弹性布局排列,水平居中且允许换行。 .item 元素被设置为块级元素,具有固定的宽度和高度,图片自适应宽度。...类名以 "box" 结尾的元素应用了特定的宽度、高度、外边距和背景渐变样式。....container、.item、.item img 和 [class$="box"] 的样式与第一段相同。 .box 元素被设置为网格容器,划分为 3 行 3 列的网格。
基本概念 Grid 布局由以下几个基本概念组成: **网格容器 (grid container)**:网格布局由网格容器和网格项组成。网格容器是将网格项放置到网格中的容器。...**网格线 (grid line)**:网格线是将网格容器划分为行和列的线。网格线可以是水平线或垂直线。 **网格列 (grid column)**:网格列是网格容器中垂直方向的线。...**网格行 (grid row)**:网格行是网格容器中水平方向的线。 常用属性 网格容器属性 网格容器具有以下属性用于控制网格布局: display: 设置网格容器的显示模式。...grid-auto-columns: 设置网格容器的列宽。 grid-auto-rows: 设置网格容器的行高。...footer"; /* 定义区域布局,每个区域由一个字符串表示,空格分隔单元格,换行表示新的行 */ min-height: 100vh; /* 设置最小高度,确保内容高度小于视口时
这个指定的区域可能有固定的宽度和高度,或者可能是一个更具响应性的空间,如根据浏览器视口大小变化的网格区域。...在下面的示例中,我们将图像的宽度和高度限制为100%,这样其内容框就与容器div的大小相匹配: img { width: 100%; height: 100%; } 图像及其内容框现在紧密地适应容器...在响应式布局中使用 object-fit object-fit 属性在图像的指定区域的尺寸响应浏览器视口大小的情况下可能最有用。...3; } article { display: grid; grid-template: 5% 1fr 10% / 40% 1fr 40%; height: 100vh; } 随着视口和网格区域的扩展和收缩...,cover 值确保图像始终很好地适应其网格区域,改变图像的可见部分,使其永远不会扭曲。
:设置页面在不同设备上的视口宽度,使页面能自适应不同屏幕尺寸...详细解释 全局样式: html, body:设置整个页面的背景颜色为 #f8d8ab,宽度和高度分别为视口的宽度和高度。使用 Flexbox 布局将页面内容在水平和垂直方向上居中显示。...鼻子样式: .nose:设置鼻子的高度为 100%,背景颜色为 #3b464f,通过设置不同的边框圆角塑造鼻子的形状。使用 grid-area 属性指定鼻子在网格中的位置。...三、工作流程 ▶️ HTML 构建结构:创建包含容器、耳朵、脸部、眼睛、腮红和鼻子等元素的 HTML 结构,为每个元素添加相应的类名。...使用 Flexbox 布局管理容器和耳朵元素的排列。 为耳朵和脸部元素设置宽度、高度、背景颜色和边框圆角,塑造基本形状。 开启 Grid 布局管理脸部元素的定位。
.container 类设置了一个固定宽度的容器,无论屏幕的宽度如何,容器的宽度都保持在800px,...三、灵活网格 灵活网格系统(也称为栅格系统)是响应式设计的核心组件之一。它允许我们通过定义网格的行和列来创建灵活的布局。...3.1 使用CSS网格布局 CSS网格布局是一种强大的布局工具,允许我们创建复杂的网格布局。通过定义网格的行和列,我们可以轻松地创建响应式布局。 示例:基本的CSS网格布局 容器的宽度,同时保持高度的自动调整。...它允许我们设置视口的宽度和缩放级别,从而确保页面在不同设备上能够正确渲染。 7.1 基本视口设置 设置视口宽度为设备宽度,可以确保页面在移动设备上按照预期显示。 示例:视口元标签 <!
10-2 FIex容器的常见属性有哪些? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。...center:交叉轴的中点对齐。 stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。 align-content:属性定义了多根轴线的对齐方式。...正常布局流 display属性 弹性盒子 网格 浮动 定位 CSS 表格布局 多列布局 参考:https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout...@media关键字 10-5 简要说明什么是视口。 在桌面浏览器中,视口的概念等于浏览器中窗口的概念。视口中的像素指的是CSS像素,视口大小决定了页面布局的可用宽度。...视口的坐标是逻辑坐标,与设备无关。
伸缩布局决定的特性是让伸缩项目可伸缩,也就是让伸缩项目的宽度或高度自动填充伸缩容器额外的空间,这可以用flex属性来完成。...这可确保填充和边框包含在元素的总宽度和高度中。...2.1 引入文件 bootStrap.min.css jquery.min.js bootStrap.min.js 2.2 栅格系统 Bootstrap 提供了一套响应式、移动设备优先的流式网格系统,随着屏幕或视口...(viewport)尺寸的增加,系统会自动分为最多 12 列。...Bootstrap4 网格系统规则: 网格每一行需要放在设置了.container (固定宽度) 或 .container-fluid (全屏宽度) 类的容器中,这样就可以自动设置一些外边距与内边距
Vmin 单位 vmin表示视口的宽度和高度中的较小值,也就是vw 和 vh 中的较小值。如果视口宽度大于其高度,则将根据高度计算该值。 我们以下面的例子为例。 ?...视口单位基于页面的根元素,而百分比则基于它们所在的容器。因此,它们彼此不同,但各自都有各自的用处。 视口单位的用例 字体大小 ? CSS 视口单位非常适合响应式排版。...例如,我们可以将以下内容用作文章标题: .title { font-size: 5vw; } 标题的font-size将根据视口宽度增加或缩小。 就像提供的字体大小是视口宽度的5%一样。...通过使用CSS网格和视口单位,我们可以使其完全动态的响应式。...从容器中挣脱出来 我注意到一个用例最适合编辑版面。 一个子元素,即使父元素的宽度受到限制,它也会占据视口100%的宽度。 考虑下面: ?