在我们的项目中我们使用 axios 进行异步调用。 因为异步调用的问题,如果我不采取手段,子页面没有办法获得父页面中的数据,页面将会显示为 没有数据。...问题和解决 这个问题的原因就是子组件在初始化的时候,父组件还没有获得数据。 可以使用的方法是 v-if 进行判断。 对比上面我们使用了 v-if 判断的代码和没有使用判断的代码。...上面的代码能够让子组件正确加载数据。 另外一个需要注意的是,在子组件中需要使用 props:['projects','currentPage'], 将数据从父总结中传递过来。...从父组件中将数据传递过来。 https://www.ossez.com/t/vue/14083
如果为子元素的顶部和底部设置了百分比,它将相对于父元素的高度,并直接进行非静态定位(默认定位)。同样,如果为子元素的左侧和右侧设置了百分比,它将与父元素宽度的直接非静态定位(默认定位)相对应。...如果子元素的 padding 和 margin 设置为百分比,无论是垂直还是水平,它们都是相对于直接父元素的宽度而言的,与父元素的高度无关。...响应式的缺点:如果有太多的样式需要在浏览器尺寸发生变化时进行更改,那么多套样式代码将非常麻烦。...4.3 Rem responsive 布局 rem 通常用于适应移动终端,页面根据视口分为 10 个部分。...4.4 VW、VH 响应式布局 因为 100vw = 100 视图窗口宽度,100vh = 100 视图窗口高度,那么根据 750 的设计草案,100vw 就是 750。
另一种方法是:监听一个事件,比如我监听的就是scroll事件,对会发生隐藏的元素设置scrollIntoView或者scrollIntoViewIfNeeded,通过设置不同的参数,可以使得作用的元素与视口的上面或下面对齐...其实是比视口大,即100vh包含了下面的状态栏的高度。...另外,如上面的代码所示,父元素设置了display:flex, 子元素设置了flex: 1,按理说,子元素设置了这个属性之后,就和父元素的宽高相同了,但是要注意,在这里,子元素还设置了position:...我们看一下W3C的文档怎么说 即,flex容器中的绝对定位子元素会脱离flex布局流,也就是说flex: 1对子元素来说已经失效了。...因此他的高度为绝对定位中的100%设置的高度,但是又设置了overflow:hidden,因此才会在虚拟键盘隐藏时出现一部分空白,从而导致了导航条的隐藏。
视口单位基于页面的根元素,而百分比则基于它们所在的容器。因此,它们彼此不同,但各自都有各自的用处。 视口单位的用例 字体大小 ? CSS 视口单位非常适合响应式排版。...2.第二种解决方案:Flexbox和视口单位(推荐) 通过将100vh设置为body元素的高度,然后可以使用flexbox来使main元素占用剩余空间。...从容器中挣脱出来 我注意到一个用例最适合编辑版面。 一个子元素,即使父元素的宽度受到限制,它也会占据视口100%的宽度。 考虑下面: ?...1.添加 width: 100vw 最重要的一步,将图像的宽度设置为100%的视口。 ?...流行的顶部边框 你知道大多数网站使用的顶部边框吗? 通常,它的颜色与品牌颜色相同,这会赋予一些个性。 ? 我们支持边框的初始值为3px。 如何将固定值转换为视口对象?下面是如何计算它的等效的vw。
,只有在“移动”视口为540px 或更小时才能切换。...540px 将是我们在移动交互式布局和静态桌面布局之间切换的断点。 伪类 一个 链接将 url 散列设置为 #sidenav-open,另一个设置为 empty('')。...3D transforms 我们的布局现在是堆叠在一个移动视口大小。除非我添加一些新的样式,否则它将默认覆盖我们的文章。...为了将移动设备上 Sidenav 的默认状态设置为屏幕外状态,我将元素的位置设置为: transform: translateX (- 110vw); 注意,我在典型的屏幕外代码 -100vw 中添加了...:target 时,将 translateX() 位置设置为 0。
容器查询 在 @container 之前,网页的元素只能响应整个视口的大小。这对于大型布局非常有用,但对于外部容器不是整个视口的小型布局,布局不可能进行相应调整。...在移动设备上,加载页面时,会显示带有 url 的状态栏,此栏会占用部分视口空间。在几秒钟和一些交互之后,状态栏可能会滑开,以便为用户提供更大的视口体验。...以下是新视口变体提供的所有新视口单位选项的完整列表: /* 高度视口单位 */ .new-height-viewport-units { height: 100vh; height: 100dvh...考虑一个子组件,它希望在不同的父级上下文中调整自己,而不是父组件拥有样式并更改子组件: /* parent owns this, adjusting children */ section:focus-within...通常这意味着深色主题样式出现在浅色主题之后;这将浅色设置为默认样式,将深色设置为可选样式。
vw 和 vh 中的较小值 vmax : 选取 vw 和 vh 中的较大值 如果我们将一个元素的宽度设置为 100vw 高度设置为 100vh,它将完全覆盖视觉视口: 这些单位有很好的浏览器兼容性,...但是,在移动设备上的表现就差强人意了,移动设备的视口大小会受动态工具栏(例如地址栏和标签栏)存在与否的影响。视口大小可能会更改,但 vw 和 vh 的大小不会。...因此,尺寸过大的 100vh 元素可能会从视口中溢出。 当网页向下滚动时,这些动态工具栏可能又会自动缩回。在这种状态下,尺寸为 100vh 的元素又可以覆盖整个视口。...代表 Small Viewport 的单位以 sv 为前缀:svw、svh、svi、svb、svmin、svmax。 除非调整视口本身的大小,否则这些视口百分比单位的大小是固定的。...当动态工具栏被缩回时,动态视口等于大视口的大小。 相应的,它的视口单位以 dv 为前缀:dvw, dvh, dvi, dvb, dvmin, dvmax。
响应式设计通过检测视口分辨率,针对不同客户端在客户端做代码处理,来展现不同的布局和内容; 响应式布局的 5 种实现方案 百分比布局 媒体查询布局 rem 响应式布局 vw 响应式布局 flex 弹性布局...但是 padding、border、margin 等属性的情况又不一样 1、子元素的 top 和 bottom 如果设置百分比,则相对于直接非 static 定位(默认定位)的父元素的高度,同样,子元素的...四、vw、vh 响应式布局 vw 和 vh 分别相对的是视图窗口的宽度和视口窗的高度。...100vw = 视图窗宽度 ,100vh = 100 视图窗高度 如果移动端有 5 个不同的视口宽尺寸 750 ,640,480,375,320,则在不同尺寸下,对应的 1vw 的 px 值如下表 移动端尺寸...是自动应视口宽的,所以就达到了响应式开发的效果。
这里先以高度为宽度一半为例,也可以是其他任意比例。 一、思考如何实现 这个问题类似于:我们在移动端页面,上面有一张宽度 100% 的图片,如果我们没设置高度,则图片会根据原有尺寸,等比缩放。...我们可以借助这个想法,根据元素高度,来为元素设置一个相应比例的高度即可。...二、实现方法1 - 通过 vw 视口单位实现 所谓视口单位(viewport units)是相对于视口(viewport)的尺寸而言, 100vw 等于视口宽度的 100%,即 1vw 等于视口宽度的...三、实现方法2 - 通过子元素 padding 实现 通过设置子元素的 padding 属性来实现,是比较常用,也是效果比较好的一种,这里需要理解的是:子元素的 padding 属性百分比的值是先对父容器的宽度而言...分析: 这里我们将父容器 .box 宽度设置为 200px,子元素 .text 的 padding:10% ,因此 .box 的 padding 计算结果为 20px; 接下来结合主题,我们利用这个原理
=no"> Viewport 属性: 属性 含义 取值 width 定义视口的宽度,单位为像素 正整数或 device-width(设备的宽度) height 定义视口的高度,单位为像素 正整数或 device-height...=1, minimum-scale=1"> 如何合理设置 rem 的大小呢?...使用公式:(元素大小 / 设计稿大小)* 100vw 将元素大小转换为 vw 单位的大小。...当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式,提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。...Flexbox 布局的两个基本概念: 容器:弹性布局的父元素(display=flex的元素)。 项目:弹性布局容器中的每一个子元素。
这里先以高度为宽度一半为例,也可以是其他任意比例。 一、思考如何实现 这个问题类似于:我们在移动端页面,上面有一张宽度 100% 的图片,如果我们没设置高度,则图片会根据原有尺寸,等比缩放。...二、实现方法1 - 通过 vw 视口单位实现 所谓视口单位(viewport units)是相对于视口(viewport)的尺寸而言,100vw 等于视口宽度的 100%,即 1vw 等于视口宽度的 1%...下面看看这种情况下,图片加载成功和失败的对比: [1] 三、实现方法2 - 通过子元素 padding 实现 通过设置子元素的 padding 属性来实现,是比较常用,也是效果比较好的一种,这里需要理解的是...:子元素的 padding 属性百分比的值是先对父容器的宽度而言。....box 宽度设置为 200px,子元素 .text 的 padding:10% ,因此 .box 的 padding 计算结果为 20px; 接下来结合主题,我们利用这个原理,来实现等比例的问题:
CSS: .section-image { width: clamp(70px, 80px + 15%, 180px); } 通过设置最小、首选和最大宽度,图像将根据其容器宽度缩小或增长,这是由于使用了固定值和百分比...: 首先,我们将最小值设置为 0%。...条件边界半径 大约一年前,我在 Facebook 提要 CSS 中发现了一个巧妙的 CSS 技巧。它是关于使用 CSS max() 比较函数根据视口宽度将卡片的半径从 0px 切换到 8px。...9999 是一个很大的数字,强制该值为 0px 或 8px。 有了上面的内容,当卡片占据整个视口宽度时,它的半径为零,或者在更大的屏幕上为 8px。...间距 有时,我们可能需要根据视口宽度更改组件或网格的间距。不带 CSS 比较功能!我们只需要设置一次。
background-attachment CSS 属性决定背景图像的位置是在视口内固定,还是随着包含它的区块滚动。 它一共有三个属性: fixed: 键字表示背景相对于视口固定。...当然,你可以直接去这里查看:https://codepen.io/jack-cool/pen/zYxzOpb 这里解释下使用transform: translate3d来实现视差滚动的原理: 1、给容器设置上...transform-style: preserve-3d和perspective: xpx,那么处于这个容器下的子元素就会处于 3D 空间中; 2、给子元素分别设置不同的transform: translateZ...(),这时不同子元素在 3D Z 轴方向距离屏幕的距离也就不一样; 3、滚动滚动条,由于子元素设置了不同的transform: translateZ(),那么他们滚动的上下距离translateY相对屏幕...总结下来就是: 父容器设置transform-style: preserve-3d和perspective: xpx,子元素设置不同的transform: translateZ() 看完了用 css 实现滚动视差的两种方式
也就是说在不设置网页的viewport的情况下,pc端的网页默认会以布局视口为基准,在移动端进行展示。因此我们可以明显看出来,默认为布局视口时,根植于pc端的网页在移动端展示很模糊。...标签中我们会将width设置称为device-width,device-width一般是表示分辨率的宽,通过width=device-width的设置我们就将布局视口设置成了理想的视口。...3. px与自适应 上述我们了解到了当通过viewport元标签,设置布局视口为理想视口时,1个css像素可以表示成: 1 CSS像素 = 物理像素/分辨率 我们直到,在pc端的布局视口通常情况下为980px...: image.png 子元素的初始宽高为0,通过padding可以将父元素撑大,上图的蓝色部分是一个正方形,且边长为100px,说明padding不论宽高,如果设置成百分比都相对于父元素的width...2. vw单位换算 同样的,如果要将px换算成vw单位,很简单,只要确定视图的窗口大小(布局视口),如果我们将布局视口设置成分辨率大小,比如对于iphone6/7 375*667的分辨率,那么px可以通过如下方式换算成
标准模式不包含,标准模式下可以通过设置 box-sizing: border-box 将标准盒模型转化成怪异模式下的盒模型。 怪异模式下,当内容超出容器高度时,会将容器拉伸,而不是溢出。...,是可独立分配的、可复用的结构,如在发布中,它可能是论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组件,或者其他独立的内容项目; nav 描述一个含有多个超链接的区域,该区域包含跳转到其他页面或页面内部其他部分的链接列表...; ch 代表元素所用字体 font 中“0”这一字形的宽度; vh 1vh 相当于视口高度的 1%,100vh 就是视口的高度; vw 1vw 相当于视口宽度的 1%,100vw 就是视口的宽度; vmax...视口高度 vw 和宽度 vh 两者中的最小值 vmin 视口高度 vw 和宽度 vh 两种中的最大值; % 相对于父级元素的大小来确定; 参考:CSS [1] CSS percentage...,可以将事件绑定到父元素上,并让子节点上发生的事件冒泡到父节点上,利用 e.target 属性可以获取到当前触发事件的子元素。
,不管viewport的宽度如何,始终保持相同的宽度。...在viewport宽度小于960像素时,使图像的宽度为viewport宽度的75%。当viewport大于960像素时,使图像的宽度为640像素。 vm ? 当处理宽度的时候,%单位更合适。...如果页面延伸超过视口的高度——滚动条出现——视窗的宽度将会大于html元素的宽度。 因此,如果你将一个元素设置为100vw,这个元素将会延伸到html和body元素范围之外。...在这个例子中,我用红色边框包裹html元素,然后给section元素设置背景颜色。 ? 因为这个细微的差别,当使一个元素横跨整个页面的宽度时,最好使用百分比单位而不是视口的宽度。 2....然而,用vh的话,就像下面写的那么简单: .example { height: 100vh; } 不管.example元素如何嵌套,它还是能够相对于视窗尺寸设置大小。
在我们创建适合各种设备的响应式网站时,了解正确的CSS 单位很重要。不过在深入研究决策之前,让我们先对它们进行分类以便了解它们的用途。 如何决定响应式网站的 CSS 单位?...% 单位 这用于设置元素的宽度,它总是相对于其直接父元素的大小。如果没有定义的父级,则默认情况下body被视为父级。...如果未覆盖,默认字体大小为 16px,假设在父元素中字体大小为 48px,那么在子元素中为 1em == 48px。...所以,如果 1vw == 1% 那么 100vw == 100% 视口宽度。 让我们考虑以下示例,其中一个子项的宽度相对于父项的大小,而另一个子项的宽度相对于根。...让我们考虑以下示例,其中一个子级的高度与父级大小有关,而另一个子级的高度与根相关。
vw and vh 1vw 等于1/100的视口宽度 (Viewport Width) 1vh 等于1/100的视口高度 (Viewport Height) 综上,一个页面而言,它的视窗的高度就是 100vh...,宽度就是 100vw 。...这就是 vh 和 vw 单位为我们提供的。 1vh 等于1/100的视口高度。栗子:浏览器高度900px, 1 vh = 900px/100 = 9 px。...同理,如果视口宽度为750, 1vw = 750px/100 = 7.5 px。 可以想象到的,他们有很多很多的用途。比如,我们用很简单的方法只用一行CSS代码就实现同屏幕等高的框。....slide { height: 100vh; } 假设你要来一个和屏幕同宽的标题,你只要设置这个标题的font-size的单位为vw,那标题的字体大小就会自动根据浏览器的宽度进行缩放,以达到字体和
子元素 word 随着页面滚动显示, 对子元素 bg 设置 background-attachment: fixed, 使其在当前视口固定。...: 1px; /* 创建透视效果 */ } .parallax-layer { height: 100vh; /* 设置每个层的高度为视口高度 */ transform-style: preserve...最好避免 100vh, 而是依赖 JavaScript 来设置高度,以获得完整的视口体验。...这些浏览器没有将 100vh 的高度调整为视口高度变化时屏幕的可见部分,而是将 100vh 设置为隐藏地址栏的浏览器高度。...当页面加载时,将高度设置为 window.innerHeight 将正确地将高度设置为窗口的可见部分。 如果地址栏是可见的,那么 window.innerHeight 是全屏的高度。
例如:在大视口上,带有小中央焦点的全宽头图像可能效果很好: 但是,当缩小以适应小视口时,图像的中央焦点可能会丢失: 这些图像源的主题相同,但为了更好地视觉聚焦于该主题,我们将希望图像源的比例在断点处发生变化...虽然基于视口信息的高级布局决策是可靠的,但它阻止了我们采用完全基于组件层级的开发方法,这意味着可以将组件放置在页面布局的任何部分,并响应组件本身所占用的空间的样式。...这种情况促使出现了容器查询:一种基于父容器大小而非视口大小来为元素设置样式的方法。... 所占用的空间而非基于视口大小来选择 。...在下一个模块中,我们将学习如何将我们所学的有关图像格式、压缩和响应式图片的所有内容集成到现代开发工作流程中。
领取专属 10元无门槛券
手把手带您无忧上云