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

CSS伪元素的妙用--单标签之美

但是在制作雪碧图的过程中,或者现在很多的打包工具自动生成的雪碧图,都存在着需要为每个 icon 需要预留多少边距的问题。看看下图: ? –> ?...譬如上面这种情况(假设按钮中的图标是采用了雪碧图),产品某天突然要求按钮从状态左变为状态右,那么雪碧图原先预留的位置边距肯定就不够了,导致其他图形出现在按钮中。...所以通常这种情况需要用到雪碧图的话,都是在按钮中设置一个伪元素,将伪元素的高宽设置为原本 icon 的大小,再利用绝对定位定位到需要的地方,这样无论雪碧图每个 icon 的边距是多少,都能够完美适应。...简单来说,在背景色上方叠加一个白色半透明层 rgba(255,255,255,.2) 可以得到一个更亮的颜色。...有一个 Unicode 字符是专门代表换行符的:0x000A 。 在 CSS 中,这个字符可以写作 “00A”, 或简化为 “A”。这里我们用它来作为 ::after 伪元素的内容。

1.6K100

分享 10 个 常用且必须要掌握的 CSS 知识点

对于没有设计和 UI 的 Web 开发人员来说,一切都是不可能的。 因此,在使用 CSS 时保持高效非常重要。在本教程中,我们将介绍最重要的 CSS 专业技巧,以节省您的时间并让您的生活更轻松。...简单来说,CSS 盒模型是一个包含多个组件的容器,包括边框、边距、内边距和内容本身。 总之,它是一个用于自定义不同元素布局的 CSS 工具包。...box-sizing 的默认值为 content-box。 简单来说,这意味着边距、边框和填充将添加到使用 width 和 height 属性指定的总高度和宽度中。...或者换句话说,当向元素添加边距、内边距和边框时,元素的总高度和总宽度不会增加。 CSS盒子模型的组成部分: 1、内容: 这是 CSS 盒子模型的主要元素。...4、边距: 边距是元素边界之外的空间。它在相邻元素之间创建了一个空间。

6.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    创建水平滚动的正确方式【CSS 网格布局】

    但是,当采用水平滚动布局时,至少需要满足两点 UX 原则: 你的设计必须在视觉上提醒他人,这是一组可以水平滚动的内容。最好的方法,就是让可滚动的内容露出一部分。 用户知道什么时候滚到末尾,这很重要。...一种方法指明列表已经滚到最后:在列表末尾使用额外的空间 布局大纲 开始前,我们概览下需要实现的布局特性: 滚动的容器必须准守页面的整体布局。比如,外边距和内边距整体要一致。...的边距,使得内容远离边缘。...还记得不,当水平滚动的时候,我们希望可滚动的内容是从屏幕的边缘滑出。 所以,我们在容器中添加 .full 类,并填补缺失的内边距。...两边添加内边距,会实现我们要的布局。

    2.6K50

    你肯定会用到的CSS多行多列布局

    要做到这一点,首先得确定宽度和边距,宽度通常是已知的,我们只需要把边距确定下来,就能确认剩余空间。...接上面的的例子,假设一行有4个, 每个占比24%,4个就是24% * 4 = 96% , 那么可以确定总边距是4%,由于一行有4个元素,而最后一个的右边距是多余的,那么可以确定单个的边距为 4% / 3...,css函数代替 */ margin-right: calc(4% / 3); margin-bottom: calc(4% / 3); } /* 去除每行尾的多余边距...方案二倒没什么缺点,除了写法会复杂点,但只要封装好mixin在sass中使用足够简单,即使需要兼容ie,也只需要换成float即可。...方案三,兼容性最差,无法在ie中正常使用,但用法最简单,布局甚至比flex还要强大。 综上,实际使用中,还是推荐使用方案二。

    2.2K20

    伪元素的妙用–单标签之美

    但是在制作雪碧图的过程中,或者现在很多的打包工具自动生成的雪碧图,都存在着需要为每个 icon 需要预留多少边距的问题。...看看下图: 譬如上面这种情况(假设按钮中的图标是采用了雪碧图),产品某天突然要求按钮从状态左变为状态右,那么雪碧图原先预留的位置边距肯定就不够了,导致其他图形出现在按钮中。...所以通常这种情况需要用到雪碧图的话,都是在按钮中设置一个伪元素,将伪元素的高宽设置为原本 icon 的大小,再利用绝对定位定位到需要的地方,这样无论雪碧图每个 icon 的边距是多少,都能够完美适应。...简单来说,在背景色上方叠加一个白色半透明层 rgba(255,255,255,.2) 可以得到一个更亮的颜色。...有一个 Unicode 字符是专门代表换行符的:0x000A 。 在 CSS 中,这个字符可以写作 “00A”, 或简化为 “A”。这里我们用它来作为 ::after 伪元素的内容。

    79410

    巧用CSS3的calc()宽度计算做响应模式布局

    calc()能让你给元素的做计算,你可以给一个div元素,使用百分比、em、px和rem单位值计算出其宽度或者高度,比如说“width:calc(50% + 2em)”,这样一来你就不用考虑元素div的宽度值到底是多少...calc()语法 calc()语法非常简单,就像我们小时候学加 (+)、减(-)、乘(*)、除(/)一样,使用数学表达式来表示: width: calc(expression); 其中”expression...calc()的运算规则 calc()使用通用的数学运算规则,但是也提供更智能的功能: 使用“+”、“-”、“*” 和 “/”四则运算; 可以使用百分比、px、em、rem等单位; 可以混合使用各种单位进行计算...; 表达式中有“+”和“-”时,其前后必须要有空格,如”widht: calc(12%+5em)”这种没有空格的写法是错误的; 表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。...好了,到这就告一段络了,再稍微优化一下左右边15px的空距,让两边都挨边。就在父级上加个margin-right:-15px,OK 搞定, 现在拿这个去做响应模式应该很方便了。 本文完〜

    1.7K10

    【CSS进阶】伪元素的妙用--单标签之美

    但是在制作雪碧图的过程中,或者现在很多的打包工具自动生成的雪碧图,都存在着需要为每个 icon 需要预留多少边距的问题。看看下图: ? -->  ?...譬如上面这种情况(假设按钮中的图标是采用了雪碧图),产品某天突然要求按钮从状态左变为状态右,那么雪碧图原先预留的位置边距肯定就不够了,导致其他图形出现在按钮中。...所以通常这种情况需要用到雪碧图的话,都是在按钮中设置一个伪元素,将伪元素的高宽设置为原本 icon 的大小,再利用绝对定位定位到需要的地方,这样无论雪碧图每个 icon 的边距是多少,都能够完美适应。...简单来说,在背景色上方叠加一个白色半透明层 rgba(255,255,255,.2) 可以得到一个更亮的颜色。...有一个 Unicode 字符是专门代表换行符的:0x000A 。 在 CSS 中,这个字符可以写作 "\000A", 或简化为 "\A"。这里我们用它来作为 ::after 伪元素的内容。

    1.2K120

    CSS实现前端布局更巧妙的方案!在 flex 布局中通过使用 margin 实现水平垂直居中以及其他常见的前端布局

    1.4 思考与延伸 但你有没有想过,这些写法是否是最简洁的?能否实现我们日常开发的需求呢?有没有更优雅、更轻量的方案呢? 实际上在很多情况下这两个属性并不能够满足我们的开发需求。...它的工作原理是:在 Flexbox 布局中,margin: auto; 会根据父容器的剩余空间自动调整元素的外边距,直到子元素居中。...它不仅可以处理水平居中,还可以在 Flexbox 布局下根据剩余空间自动调整外边距,实现完全的居中对齐。...这样就使第二个元素的左侧和第四个元素的右侧将会自适应边距间隔。 因此,我们可以使用 margin 巧妙地通过调整子元素的外边距,实现元素的部分集中和对齐布局。...使用 space-around 时如果最后一行的元素数量不满,元素会在行中均匀分布,导致它们集中在中间,而不是靠左或对齐其他行。 大家在遇到这些情况时是不是就在考虑换用 grid 布局了呢?

    16810

    css视口单位vw,vh的妙用(embed篇)

    前天,在往博客上折腾B站视频时,无意间灵机一动,想到了个好主意,就是使用vw单位,配合使用calc。...这里我得电脑端测栏加边距的宽度大约是330px,手机端的边距太小就忽略不算了 对应的css就是这样 @media only screen and (min-width:768px){ embed{height...: calc(9 * 100vw/ 16);width: 100%;} } 其实就是对于电脑端设备,在宽度设置上,提前减去330px,然后在乘9/16。...原理就是这样,因为我也没有去仔细计算我的模板边距测栏宽度总和是多少,所以比例不可能特别精准,还有就是现在iframe同样可以用上述方法。...本来,文章写道这里就应该结束了,但是突然想到了香菇社长那个超宽的屏幕,仅仅是上述代码肯定会导致一个问题,视频高度可能会超出屏幕的高度。 怎么办呢?想了一下,觉得这样比较简单!

    1.1K30

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

    因此,在本文中,我将分享关于 CSS 中的间距、实现该间距的不同方法以及何时使用填充或边距的所有信息。 现在,让我们开始吧。 间距类型 CSS 中的间距有两种类型,一种在元素外,另一种在元素内。...很简单,不是吗? 但是,在处理具有大量细节和子元素的组件时,这可能会变得越来越复杂。 Margin- 外部间距 它用于在一个元素和另一个元素之间添加间距。...在撰写本文时,它仅在 Firefox 中受支持的缺点。...calc() 函数,从 flex-basis 中扣除边距。...处理底边距 假设以下组件堆叠。 每个组件都有一个底部边距。 请注意,最后一个元素有边距。 这是不正确的,因为边距应该只在元素之间。

    13.5K40

    【Web前端】CSS传统布局方法(补充)

    三、创建简单的传统网格框架 3.1 固定宽度网格 固定宽度网格 是最简单的网格布局之一,它通常用于较小的网页或定宽设计中。...这些问题在现代布局方法如 Flexbox 和 CSS Grid 中得到了更好的解决。 1. 清除浮动(Clearfix)问题 当使用浮动布局时,一个最常见的问题是清除浮动(clearfix)。...浮动元素的顺序问题 使用浮动布局时,元素的顺序是固定的,即元素在HTML文档中的排列顺序决定了它们在页面上的显示顺序。这对于需要不同屏幕大小下重新排序的响应式布局来说是一个很大的限制。...边距重叠(Margin Collapse) 浮动元素在处理相邻元素的边距(margin)时可能会出现边距重叠问题,这意味着两个相邻的浮动元素的边距可能会意外地合并,导致布局出现问题。解决这 6....无法轻松实现复杂的网格布局 浮动布局更适合简单的布局需求。当需要实现复杂的网格布局(如多列、多行且包含嵌套的子网格)时,浮动布局的代码会变得异常复杂且难以维护。

    8610

    【面试题】CSS知识点整理(附答案)

    :hidden的区别 em rem vh vw calc() line-height 百分比 rem实现原理及相应的计算方案 清除浮动方法及原理 postcss是什么 css modules CSS预处理器...实现固定宽高比(width: height = 4: 3 )的div,怎么设置 利用css中 padding百分比的计算方法:padding设置为百分比,是以元素的宽度乘以100%从而得到的padding...calc() calc(): CSS3中新增的一个函数, 用于动态计算宽/高, 语法非常简单,就像我们小时候学加 (+)、减(-)、乘(*)、除(/)一样,使用数学表达式来表示 使用“+”、“-”、“*...” 和 “/”四则运算; 可以使用百分比、px、em、rem等单位; 可以混合使用各种单位进行计算; 表达式中有“+”和“-”时,其前后必须要有空格,如"width: calc(12%+5em)"这种没有空格的写法是错误的...负边距[22]是这两种布局中的重中之重 不同点:解决“中间栏div内容不被遮挡”的思路不同 圣杯布局 1.三者都设置向左浮动 2.设置middle宽度为100%; 3.设置负边距, left设置负左边距为

    1.6K40

    分享100 个鲜为人知的 CSS 技巧

    简化布局的网格 CSS 网格提供了一种以更简单的方式创建布局的强大方法。...形状边缘 当与 CSS 形状结合使用时,形状边距指定浮动元素形状周围的边距,从而可以精确控制文本换行和布局。 .shape { shape-margin: 20px; } 75....滚动边距 滚动边距设置滚动容器边缘和滚动内容开始之间的边距,通过提供滚动缓冲空间来增强用户体验。 .container { scroll-margin-top: 100px; } 76....选项卡大小 滚动边距设置滚动容器边缘和滚动内容开始之间的边距,通过提供滚动缓冲空间来增强用户体验。 pre { tab-size: 4; } 77....字体功能设置 font-feature-settings 允许您启用或禁用字体中的 OpenType 功能,例如,连字、字距调整和样式替代。

    14310

    自定义属性--和calc

    自定义属性 (--*) 带有前缀--的属性名,比如--example--name,表示的是带有值的自定义属性,其可以通过 var 函数在全文档范围内复用的。...有了calc(),你就可以通过计算来决定一个CSS属性的值了。你还可以在一个 calc() 内部嵌套另一个 calc() ,里面的 calc() 会被简单地视为加了括号。...表达式中的操作数可以使用任意语法种类的长度。如果你愿意,你可以在一个表达式中混用多种不同的长度单位。在需要时,你还可以使用小括号来调整计算顺序。 注意,+ 和 - 运算符的两边必须始终要有空白符。...例子(使用指定的外边距定位一个对象) 使用 calc() 可以很容易的为一个对象设置一个左右两边相等的外边距.在这个例子中,使用 CSS 创建了一个横跨整个窗口的 banner,该 banner 左右两边各有一个距离窗口边缘...) / 2),然后当它被赋值给 .foo 的 width属性 时,所有内部的这些calc()(无论嵌套的有多深)都将会直接被“拍”成一个括号(原文:be flattened to just parentheses

    72520

    兼容iphone x * 刘海的正确姿势

    fixed; left: 0; bottom: 0; width: 100%; height: 34px; background: #fff; } } 这里的处理方法是使用了媒体查询...右边的安全区域内设置量(CSS像素) 简单来说我们可以通过 constant( ) 可以获取到非安全边距,再结合 padding 或 margin 来控制页面元素避开非安全区域。...Webkit在iOS11中新增CSS Functions: env( )替代constant( ),文档中推荐使用env( ),而 constant( ) 从Safari Techology Preview...否则 calc 会计算出一个不合法的值,则本句声明不会生效。这样在不支持 env 设备中也可以达到兼容的目的。 目前到这,在横屏场景下左侧的内容就不会被刘海遮挡住了: ?...在 safari 中,页面往上稍滑动一点,出现 safari 的操作栏后,底部按钮依然会紧贴着操作栏,非常有灵性: ? 处理起来一切都显得 简洁优雅细腻。

    1.1K30

    盒模型

    替代魔术数值的一个方法是让浏览器帮忙计算。如 calc(30% - 3em),但是还有更好的解决办法。...先寻找一个替代方案。设置高度一定会导致更复杂的情况。...CSS 中最简单的垂直居中方法是给容器相等的上下内边距,让容器和内容自行决定自己的高度。...这是用户代理的样式表添加的,但当前后叠放两个段落时,它们的外边距不会相加产生一个 2em 的间距,而会折叠,只产生 1em 的间隔。 折叠外边距的大小等于相邻外边距中的最大值。...# 容器外部折叠 想要在容器内元素不与容器外元素外边距折叠,有下面方法可以处理: 当使用 Flexbox 布局时,弹性布局内的元素之间不会发生外边距折叠,网格布局也是 在两个外边距之间加上边框或者内边距

    1.9K20

    兼容iPhone X* 刘海的正确姿势

    在 safari 往上段滑动一小段距离,可以看到当 safari 的底部操作栏出现后,页面依然会保留着距底部的 34px 空白。...() 可以获取到非安全边距,再结合 padding 或 margin 来控制页面元素避开非安全区域。...Webkit在iOS11中新增CSS Functions: env( )替代constant( ),文档中推荐使用env( ),而 constant( ) 从Safari Techology Preview...否则 calc 会计算出一个不合法的值,则本句声明不会生效。这样在不支持 env 设备中也可以达到兼容的目的。...目前到这,在横屏场景下左侧的内容就不会被刘海遮挡住了: 三、底部按钮的处理 首先给底部按钮一个外层容器 .btn-container ,设置样式时其中有几点比较关键: 1、设置 padding-bottom

    66410

    59道CSS面试题(附答案)

    最简单的初始化方法就是:*{ padding:0;margin:0;} 11、如何居中div?如何居中一个浮动元素? 确定容器的宽高,例如宽400px、高200px的div.设置层的外边距。...display:none隐藏对应的元素,在文档流中不再给它分配空间,它各边的元素会合拢,即脱离文档流。 visibility:hidden隐藏对应的元素,但是在文档流中仍保留原来的空间。...(1)当两个相邻的外边距都是正数时,折叠的结果是它们两者中较大的值 (2)当两个相邻的外边距都是负数时,折叠的结果是两者中绝对值较大的值。 (3)当两个外边距一正一负时,折叠的结果是两者相加的和。...IE6双边距Bug是指在块属性标签float后又有横行的 margin时,在IE6中显示的margin比设置的大浮动IE产生的双倍距离(IE6的双边距问题是指在IE6下,如果对元素设置了浮动,同时又设置了...display:none隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢,就当它从来都不存在。 visibility:hidden隐藏对应的元素,但是在文档布局中仍保留原来的空间。

    5K50

    uni-app前端H5页面底部内容被tabbar遮挡的问题解决

    使用方法: 官方给出的实例不够清晰,实际上这个属性,是在需要边距或者定位的元素上使用的,比如给 .content 元素设置下边距: .content{   padding-bottom: var(--...window-bottom); } 这样只会在 H5 端给 .content 元素增加一个 tabbar 的高度 的下边距, uni-app 默认给 tabbar 的高度是50px 。...如果 50px 的高度还不够,可以使用下面的方法,在 tabbar 高度的基础上再增加 20px : .content{   padding-bottom: calc(var(--window-bottom...由于在 H5 端,不存在原生导航栏和 tabbar,也是前端 div 模拟。如果设置了一个固定位置的居底 view,在小程序和App端是在 tabbar 上方,但在 H5 端会与 tabbar 重叠。...目前 nvue 在App端,还不支持 --status-bar-height变量,替代方案是在页面 onLoad 时通过 uni.getSystemInfoSync().statusBarHeight

    15.5K20

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

    在本文中,我将介绍有关CSS中的间距,实现此间距的不同方法以及何时使用 padding 或 margin 所需的所有知识。 间距类型 CSS中的间距有两种类型,一种在元素外部,另一种在元素内部。...很简单,不是吗?但是,当处理具有许多细节和子元素的组件时,这会变得越来越复杂。 margin 外部间距 它用于增加元素之间的间距。...此外,CSS Tricks还在页边距底部和页边距顶部之间进行了投票。61%的开发者更喜欢 margin-bottom 而不是 margin-top。...用例和实际示例 在这一节中,你将回顾一下在日常工作中,你在处理CSS项目时,会遇到的不同用例。 header 组件 ? 在这种情况下,标题具有logo,导航和用户个人资料。...: 16px; } 通过使用CSS calc() 函数,可以从 flex-basis 中扣除边距。

    12.1K10
    领券