首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入学习下 CSS 间距相关知识

但是,在处理具有大量细节和子元素组件,这可能会变得越来越复杂。 Margin- 外部间距 它用于在一个元素和另一个元素之间添加间距。...边距折叠 简而言之,两个垂直元素有一个边距,并且其中一个边距大于另一个,就会发生边距折叠。 在这种情况下,将使用较大边距,而忽略另一个边距。...关于解决方案 #2,它没有 CSS 特异性问题。 但是,它用于一个列堆栈。 更好解决方案是通过向父元素添加负边距来取消不需要间距。...或者,它垂直堆叠,这将如何在移动设备上工作? 很多很多复杂性。 使用抽象组件 上述问题一个解决方案是拥有抽象组件,目的是托管其他组件。...让我们假设一个部分需要从左边算起 24px 边距,考虑到这些限制: Margin 不能直接用于组件,因为它是一个已经构建设计系统。 它应该是灵活,间距可能在 X 页面上,但不在 Y 页面上。

13.3K40

【Web技术】610- Web上图片技巧

另外,图片源失败,可以给它们添加伪元素。 响应式图片 好处是,它可以扩展为具有特定口大小照片多个版本。比如说,这可以用于文章图片。 我们有两种不同方式获得一组响应式图片集。...CSS背景图片 使用CSS背景来显示图片时,需要一个有内容或特定宽度高度元素。通常情况下,背景图片主要用途应该是用于装饰。 如何使用CSS背景图片 很简单,我们需要一个元素。...,只有当口宽度大于700px才会显示。...它是静态还是会动态变化(例如来自CMS)? Hero - 解决方案1 通过使用多个CSS背景,我们可以有一个用于叠加,另一个用于实际图片。请看下面的CSS。...但是,当用户上传头像是半白色,或者是很淡头像,这个设计就会失败。 注意到上面的模拟图中,你要真的聚焦好了知道里面有一个圆圈。这就是一个问题。

2.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

【译】Web中图像技术总结,前端开发中各种图片引入优点缺点及实例

虽然另一个折叠了,以适应其空 alt 属性内容,但由于它边框,导致了它作为一个小点出现。 但是,存在 alt 属性值,它将如下所示: ? 这不是很好反馈吗?...另外,图片源发生故障,可以向其中添加伪元素。 1.4 响应式图片 ? 优点在于,可以针对特定口大小将其扩展为具有多个版本图片。例如,这可用于商品图片。...CSS背景图片 使用CSS背景显示图片时,它需要一个具有内容或特定宽度高度元素。通常,背景图片主要用途应该是用于装饰目的。 2.1 如何使用CSS背景图片 简单来说,我们需要一个元素。...700px 显示。...但是,当用户上传半白色头像非常浅头像,此设计将失败。 ? 注意到上面的模拟图中,你要真的聚焦好了知道里面有一个圆形。

5.5K20

前端运用图片技巧总结

另外,图片源失败,可以给它们添加伪元素。 响应式图片 好处是,它可以扩展为具有特定口大小照片多个版本。比如说,这可以用于文章图片。...CSS背景图片 使用CSS背景来显示图片时,需要一个有内容或特定宽度高度元素。通常情况下,背景图片主要用途应该是用于装饰。 如何使用CSS背景图片 很简单,我们需要一个元素。...在检查该元素,要先检查该元素,然后在DevTools中打开URL里面的链接,可以下载一个正在添加CSS图片。 伪元素 可以使用伪元素与CSS背景图片一起使用,例如,在图片顶部显示一个叠加元素。...它是静态还是会动态变化(例如来自CMS)? Hero - 解决方案1 通过使用多个CSS背景,我们可以有一个用于叠加,另一个用于实际图片。请看下面的CSS。...但是,当用户上传头像是半白色,或者是很淡头像,这个设计就会失败。 注意到上面的模拟图中,你要真的聚焦好了知道里面有一个圆圈。这就是一个问题。

2.6K20

CSS | 视差滚动 | 笔记

translateX,translateY表现出在屏幕中上下左右移动,transformZ 直观表现形式就是大小变化, 实质是 XY平面相对于视点远近变化(说远近就一定会说到离什么参照物远近,在这里参照物就是...white; } 解释 image-2023-7-19-17-33-13 虽然所有背景图都重叠在了口处,但只有当其对应容器抵达才能显示对应可视区域背景图。...在上图中,应该在屏幕底部按钮被隐藏了。 更糟糕是,当用户第一次使用手机访问网站,地址栏会显示在页面顶部, 因此用户体验是很糟糕。...一个好解决方案: window.innerHeight 解决这个问题一种方法是依赖 JavaScript 而不是 CSS。...这时候,把很多小图片(需要使用小图标)放在一张图片上,按照一定距离隔开, 就解决了上述两个问题。 显示雪碧图条件: 1. 一个设置好宽和高容器 2.

52221

web 图像技术:前端引入图片各种方式及其优缺点

另一个alt为空图片,会折叠起来看起来像一个小点,这里因为它有边框。 但是,alt属性有值,它看起来是这样: ? 这不是一个很好反馈吗?此外,图像源失败,可以向它们添加伪元素。...例如: img { object-fit: cover; object-position: 50% 50%; } CSS背景图片 使用CSS背景显示图像,它需要一个具有内容或特定宽度高度元素...与使用相比,这是一个额外好处。 在上面的示例中,我们有一个背景图像,仅在口宽度大于700px显示。 可访问性问题 如果使用不当,背景图像可能会影响可访问性。...它是静态还是动态变化解决方案1 通过使用多个CSS背景,我们可以将一个背景作为叠加层,将另一个背景作为实际图像。...解决方案用包裹 头像中,并添加专用于内部边框元素。

4.8K20

使用这种技巧,可以大大地提高前端布局效率

wrapper 简介 当我们说到 wrapper container,实际上是指一组元素被包装包含在另一个元素内。...上图显示了当没有用wrapper进行包裹元素是如何展开,用户不应该体验这种行为。我们来解释一下背后原因。...要考虑重要事项是在左侧和右侧添加padding。 口大小小于 wrapper 最大宽度,这将导致 wrapper 边缘粘在口上。...现在,将display:flex应用于.site-header元素,.wrapper后代项将成为.site-header子项。 ?...流动背景,固定内容 Lea Verou 在她CSS Secrets》一书中介绍了一种有趣技巧,该技巧可用于流动背景(占据整个口宽度)且内部带有wrapper部分。 让我们回顾一下常见做法。

3.9K20

译|CSS间距,前端开发中各种设置间距优点缺点及实例

如果两个多个元素很接近,那么用户就会认为它们以某种方式属于彼此。对多个设计元素进行分组,用户可以根据它们之间空间大小来决定它们之间关系。...但是,处理具有许多细节和子元素组件,这会变得越来越复杂。 margin 外部间距 它用于增加元素之间间距。...margin 折叠 简而言之,两个垂直元素具有margin,并且其中一个元素margin大于另一个元素,发生边距折叠。在这种情况下,将使用更大margin,而另一个将被忽略。 ?...grid-column-gap: 16px; } CSS Flexbox 间隙 gap 是一个提议属性,将用于CSS Grid和flexbox,撰写本文,它仅在Firefox中受支持。...它应该是灵活。间距可能在X页上,但不在Y页上。 我在检查Facebook新设计CSS首先注意到了这一点。 ?

11.8K10

深入了解 Flex 属性

在下面的图中,是没有使用flex-grow情况。换句话说,这是它们自然大小。 ? 要了解 flex 项目宽度计算方式,可以参考下面的公式。 我们来计算一下文本是 CSS 项目宽度。 ?...现在我们把第一项flex-grow值改为2。 这们它又是如何计算? 请注意,本示例可用空间为498px。 ? 上图已经解释很清楚,这里就不在啰嗦了,还不懂,可以多看几次。...如图所示,在口宽度大于300px,宽度为300px,少于 300px,该项目的宽度就被压缩成跟口一样宽度。 大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。...因此,内容越多flex项目就会越大。 ? flex 项目绝对大小 相反,flex-basis属性设置为0,所有flex项目大小会保持一致。...增加用户体验 ? 源码:https://codepen.io/shshaw/pen... 内容大于其包装器 ? 不久前,我收到一个读者问题,他问题如下。

1.6K30

59道CSS面试题(附答案)

例如都是块级元素,显示这些元素中间文本,都将从新行中开始显示,其后内容也将在新行中显示。 行内元素可以和其他行内元素位于同一行,在浏览器中显示不会换行。...有些元素会在浮动元素下方,但是这些元素内容并不一定会被浮动元素遮盖。定位内联元素,要考虑浮动元素边界,围绕浮动元素放置内联元素。...两种解决方案分别是 overflow:hiddenfont-size:容器高度px 25、如何在图片下方设置几像素空白间隙?...IFC中是不可能有块级元素插入块级元素(如在p中插入div),会产生两个匿名块,两者与div分隔开,即产生两个IFC,每个IFC对外表现为块级元素,与div垂直排列。...(1)两个相邻外边距都是正数,折叠结果是它们两者中较大值 (2)两个相邻外边距都是负数,折叠结果是两者中绝对值较大值。 (3)两个外边距一正一负,折叠结果是两者相加和。

4.8K50

小智在这3年开发中遇到 CSS 问题及解决方案,有大佬帮他总结好了 !

Flex 项目的数量是动态,不要使用justify-content: space-between 将justify-content: space-between应用于flex容器,它将分配元素并在元素之间留出相等空间...长单词和链接 当在移动屏幕上阅读一篇文章,一个长单词内联链接可能会导致出现水平滚动条。使用CSS word-break可以防止这种情况发生 ?...口不够高将元素固定在屏幕顶部 如果将元素固定在屏幕顶部,如果口不够高会发生什么情况?很简单:它会占用屏幕空间,因此,用户浏览网站可用垂直区域就会变小,这会影响用户体验。...styles*/ } } 在上面的代码段中,我们告诉浏览器仅在高度等于大于 500`像素标题固定在顶部。...字体与交互式HTML元素不兼容 为整个文档设置字体,它们不会应用于input、button、select和textarea等元素。它们在默认情况下不会继承,因为浏览器将默认系统字体应用于它们。

3.6K10

学姐叫我看 CSS 新出容器查询,然后把公共组件重构成响应式

我们一般使用CSS媒体查询来检测口宽度高度,然后根据该模式改变设计。 这就是在过去10年中设计Web布局方式。...因为它媒体查询宽度是大于1300px。 不仅如此,内容低于预期,我们还会面临一个问题。有时,UP主可能只会添加一篇文章,而设计是包含其中三篇。...然后,再告诉浏览器,如果父元素宽度等于大于500px,它应该以不同方式显示。对于700px查询也是如此。这就是CSS容器查询工作原理。...我们可以使用CSS容器查询来实现它。 有足够空间,清单将展开并显示每个用户名称。聊天列表父元素可以是动态调整大小元素(例如:使用CSS口单元,CSS比较函数)。...然后,如果容器宽度大于180px,将显示用户名。 另一个类似的用例是侧导航。我们可以切换导航项标签位置,从在新行旁边图标。

2.2K30

前端硬核面试专题之 CSS 55 问

float float:left ( right),向左(右)浮动,直到它边缘碰到包含框另一个浮动框为止。且脱离普通文档流,会被正常文档流内块框忽略。不占据空间,无法将父类元素撑开。...Canvas 是基于像素即时模式图形系统,最适合较小表面较大数量对象,Canvas 不支持鼠标键盘等事件。 SVG 是基于形状保留模式图形系统,更加适合较大表面较小数量对象。...有损压缩会使图像数据质量下降,并且在编辑和重新保存 JPG 格式图像,这种下降损失会累积。 JPG 不适用于所含颜色很少、具有大块颜色相近区域亮度差异十分明显较简单图片。...---- 有一个高度自适应 div,里面有两个 div,一个高度 100px,如何让另一个填满剩下高度 ?...尺寸 不过由于 vw 和 vh 是 css3 支持长度单位,所以在不支持 css3 浏览器中是无效

2K20

如何正确使用:has和:nth-last-child

不可能根据元素数量来设计父元素样式 想象一下,有5个更多,我们需要为每个添加display: flex。我们不能用 :nth-last-child 伪类选择器来做这个。...例如,容器口宽度较小时,我们需要每行显示1个项。 为了控制间距要付出更多 有3个更少,间距是水平,而有5个更多时,间距是垂直。...我们没有太多控制,因为我们需要调整minmax()中150px值。有4个更少,它可以很好地工作,而有5个更多就会出现问题。 解决办法是什么?...我们可以用CSS :has检查是否有超过5个项目更多,并在此基础上改变minmax()值。...动态标题布局 在下图中,我们有一个标题,导航项有4个更多时,应该改变其布局。通过CSS :has和:nth-last-child,我们可以检测并改变布局。

16230

Interection Observer如何观察变化

DOM元素(targets)相对于包含元素顶级口(root)可见性和位置。...每个测试都有两个文件:一个用于Intersection Observer,另一个用于滚动事件。 所有测试目的是检测目标元素何时以25%增量向上滚动通过口。...目标首次进入根元素,将创建滚动事件侦听器,然后在目标离开根元素将其删除。滚动,输出显示每个事件时间戳,以实时显示事件变化-比单独观察者要精确得多。 下面是JavaScript。...如果容器具有溢出剪裁css剪裁路径[11]属性,请通过应用容器剪裁来更新intersectionRect。 因此,剪裁目标,将重新计算相交区域边界。Firefox显然尚未实现。...即使Intersection Observer告诉我们目标元素何时跨越根元素边界,也不一定意味着该元素实际上对用户是可见。它可能具有零不透明度,或者可能被页面上另一个元素覆盖。

2.5K20

你真的了解回流和重绘吗

注意,利用visibility和opacity隐藏节点,还是会显示在渲染树上。只有display:none节点不会显示在渲染树上。... 我们可以看到,第一个div将节点显示尺寸设置为口宽度50%,第二个div将其尺寸设置为父节点50%。...比如以下情况: 添加删除可见DOM元素 元素位置发生变化 元素尺寸发生变化(包括外边距、内边框、边框大小、高度和宽度等) 内容发生变化,比如文本变化图片被另一个不同尺寸图片所替代。...页面一开始渲染时候(这肯定避免不了) 浏览器窗口尺寸变化(因为回流是根据大小来计算元素位置和大小) 注意:回流一定会触发重绘,而重绘不一定会回流 根据改变范围和程度,渲染树中或大或小部分需要重新计算...+= 'border-left: 1px; border-right: 2px; padding: 5px;'; 修改CSSclass const el = document.getElementById

4.9K50

你真的了解回流和重绘吗

注意,利用visibility和opacity隐藏节点,还是会显示在渲染树上。只有display:none节点不会显示在渲染树上。... 我们可以看到,第一个div将节点显示尺寸设置为口宽度50%,第二个div将其尺寸设置为父节点50%。...比如以下情况: 添加删除可见DOM元素 元素位置发生变化 元素尺寸发生变化(包括外边距、内边框、边框大小、高度和宽度等) 内容发生变化,比如文本变化图片被另一个不同尺寸图片所替代。...页面一开始渲染时候(这肯定避免不了) 浏览器窗口尺寸变化(因为回流是根据大小来计算元素位置和大小) 注意:回流一定会触发重绘,而重绘不一定会回流 根据改变范围和程度,渲染树中或大或小部分需要重新计算...+= 'border-left: 1px; border-right: 2px; padding: 5px;'; 修改CSSclass const el = document.getElementById

1.2K21

你真的了解回流和重绘吗?(面试必问)

注意,利用visibility和opacity隐藏节点,还是会显示在渲染树上。只有display:none节点不会显示在渲染树上。...       我们可以看到,第一个div将节点显示尺寸设置为口宽度50%,第二个div将其尺寸设置为父节点50%。...比如以下情况: 添加删除可见DOM元素 元素位置发生变化 元素尺寸发生变化(包括外边距、内边框、边框大小、高度和宽度等) 内容发生变化,比如文本变化图片被另一个不同尺寸图片所替代。...页面一开始渲染时候(这肯定避免不了) 浏览器窗口尺寸变化(因为回流是根据大小来计算元素位置和大小) 注意:回流一定会触发重绘,而重绘不一定会回流 根据改变范围和程度,渲染树中或大或小部分需要重新计算...+='border-left: 1px; border-right: 2px; padding: 5px;'; 修改CSSclass constel=document.getElementById

2K40

可能是最全 “文本溢出截断省略” 方案合集

) text-overflow: ellipsis;(规定当文本溢出显示省略符号来代表被修剪文本) 优点 无兼容问题 响应式截断 文本溢出范围显示省略号,否则不显示省略号 省略号位置显示刚好 短板...适用场景 适用于响应式截断,多行文本溢出省略情况 Demo 当前用于文本为中文,若文本中有英文,可自行修改 const text...: break-all;(使一个单词能够在换行时进行拆分) 优点 无兼容问题 响应式截断 文本溢出范围显示省略号,否则不显示省略号 短板 省略号显示可能不会刚刚好,有时会遮住一半文字 适用场景 适用于对省略效果要求较低...设置 A 盒子高度与 B 盒子高度(最大高度)要保持一致 B 盒子高度低于 A 盒子,C 盒子仍会处于 B 盒子右下方。...参考文章 纯 CSS 实现多行文字截断 ( https://github.com/happylindz/blog/issues/12 ) 【 CSS / JS 】限制一行和多行文字数量,溢出部分用省略号显示

3.1K11
领券