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

如何更优雅的编写CSS代码

SCSS是css的预处理器。基本上,它是CSS的超集:它添加了一些很酷的特性,比如:变量、嵌套、导入和混合。我会略将下我们马上要使用的特性。 变量 在scss你可以使用变量。主要好处:可重用性。...scss还有一些更多的特征,比如混合、继承和其它指令(@for,@if,…)。但我不会在这里谈它们。 如果你想了解更多关于scss的知识,可以阅读它们的文档,这更便于理解和学习。...它是一个工具,可以解析 CSS 并使用 can I use 的值将浏览器供应商前缀添加到 css 规则。...实际上,在构建网站时,你可能会使用到并非所有浏览器都完全支持的特性,这时候,添加浏览器供应商前缀可以支持这些特性,下面是示例: -webkit-animation-name: myAnimation...所有我们按如下方式编写 css 代码: 将所有的 scss 文件写入一个主文件 通过 Autoprefixer为css添加浏览器供应商前缀 编译 css 文件 这将是最后的步骤了,所有耐心和我一起完成吧

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

在Vite接入现代化的CSS 工程化方案

,如果页面出现红色的文字部分,就说明 scss 文件的样式已经成功生效。...>};现在打开浏览器,可以看见 p 标签的名已经被处理成了哈希值的形式说明现在 CSS Modules 已经正式生效了!...首先,我们来安装一个常用的 PostCSS 插件——autoprefixer:pnpm i autoprefixer -D这个插件主要用来自动为不同的目标浏览器添加样式前缀,解决的是浏览器兼容性的问题。...overrideBrowserslist: ['Chrome > 40', 'ff > 31', 'ie 11'] }) ] } }}配置完成后,我们回到 Header 组件的样式文件添加一个的...Tailwind CSS接下来我们来接入 Tailwind CSS 方案,为了避免和之前的 Windi CSS 混淆,这里我建议你起一个 Vite 项目。小册对应的 GitHub 代码地址。

1.1K50

【Uniapp】-uni-app全局样式和局部样式

首先来看我们的全局样式,例如我有 title 这么一个 class 名,然后我分别给首页与账号页面进行使用,我只在 App.vue 的 style 编写了这个 title 名的样式,那么两个组件所使用的就是...打开浏览器进行查看,即可验证我这么一个说法是正确的。...看完了全局样式,接下来就是局部样式了,很简单,我们直接在首页的 style 编写一下 title 的样式即可: 打开浏览器,查看,首页的文字是蓝色的 blue: 而我们的账号页面文字是红色的: 通过自行浏览器查看...第一件事 定义全局的 scss 样式变量 如果你不知道可以在 uni.scss 定义全局 scss 变量,你的做法,可能是在 static 定义全局变量 scss 文件, 然后在 app.vue 中导入...替代,删除在 app.vue 导入 base.scss 的代码,将颜色变量转移到 uni.scss 然后查看效果即可。

79800

Ionic 2 应用剖析0 开始之前1 创建一个的Ionic 2 应用2 目录结构3. Class 定义Root Components 模版App Module总结

目录结构——src 通常在一个Ionic 1应用程序,人们所有的Javascript文件(控制器、服务等)在一个文件夹,所有的模板在另一个文件夹,然后所有的样式包含在一个app.scss文件。...index.html 已经是惯例了,浏览器第一个打开的文件就是 index.html 。因此我们先来看看Ionic 2是怎样的: <!...theme 这个 theme 目录包含了你应用程序的 global.scss 和variables.scss 文件。...多数你应用的样式是通过使用每个组件自己的 .scss 文件,但是你可以使用 global.scss 文件定义任何自定义样式,通过不同的方式,你也可以修改 variables.scss 文件的 SASS...为构造函数定义的每一个页面创建一个按钮,号语法意味这它将为每个页面创建一个嵌入式模版(它不会在DOM渲染出上面的代码,而是使用模版创建),通过使用let p我们可以获取到某个特定页面的引用,用于点击事件时传递到

4.4K50

前端入门23-CSS预处理器(Less&Sass)声明正文-CSS预处理(less&Sass)

浏览器最终肯定是只认识 CSS 文件的,它并无法处理 CSS 的那些变量、逻辑语句,所以需要有一个编译的过程,将 Sass 或 Less 写的代码转换成标准的 CSS 代码,这个过程就称为 CSS...Less 使用 Less 写的 CSS 文件后缀名为 .less,但浏览器并不认识 less 文件,所以最后需要转换成 css 文件,有两种方式: 借助 less.js,程序运行期间,浏览器会自动借助...另外,有的文章,对 Mixins 的解释是说,在 class 中使用 class,但上面的例子也测试了,class 也是可以使用其他 id 选择器的属性样式的,所以应该不仅限于 class 选择器...从 Sass 3.4 版本开始,Sass 已经可以正确处理作用域的概念,并通过创建一个的局部变量来代替。...(})后添加空行,除非下一行还是右闭大括号(}),那么就在最后一个右闭大括号(})后添加空行。

1.6K30

Sass入门使用指南

嵌套规则 &标识符: 在需要避免sass默认解套后空格连接父子选择器导致样式不生效的的情况下使用&处理,如遇到伪选择器:hover等。...导入SASS文件 css的@import执行到后下载css文件,导致页面加载慢 sass的@import在生成css的时候导入,无法额外下载 sass导入可以省略后缀 导入sass部分文件 通常在编写的...通过将文件命名为'_'开头即不会在编译时生成单独文件 如需导入的文件为: themes/_night-sky.scss,那么导入的时候可以写@import "themes/night-sky"; 默认变量值..."blue-theme" } 原生css导入 勿用sass的@import导入原始css文件 可将css文件后缀修改为scss后缀 5....选择器与属性等单独占用一行,缩进量与 Sass 文件中一致,每行的缩进量反映了其在嵌套规则内的层数。当阅读大型 CSS 文件时,这种样式可以很容易地分析文件的主要结构。

3.3K20

webpack4.0各个击破(2)—— CSS篇

的解决方案:预编译语言 + 构建工具 + BEM + ACSS全局样式+CSSModule组件样式+ POSTCSS 预编译语言的使用基本不变,但现代化开发已经不再需要通过预定义函数来解决单位转换或是兼容性的问题...的方案涉及到很多的概念,但这并不是简单的炫技,每一个概念都有优点和适用的场合,你需要在恰当的场合使用恰当的技术,最愚蠢的做法就是因为某种技术热门而盲目地要求开发人员在整个项目中使用。 三....extract-text-webpack-plugin插件,将处理后的CSS代码提取为独立的CSS文件 optimize-css-assets-webpack-plugin——插件,实现CSS代码压缩 autoprefixer——自动化添加浏览器兼容前缀...postcss.config.js的配置较为简单: module.exports = { plugins:[ require('autoprefixer') ] } package.json增加的参数指定打包需要支持的浏览器类别...使用CSS-Modules 项目地址:CSS Modules开源地址 CSS Module在CSS中使用选择器,其基本原理是将CSS代码的样式名替换为哈希值,并建立一个json对照表,在js文件对于属性名选择器的使用均被替换为哈希字符串

78930

怎样才能写出更好的 CSS

你必须遵守以下两条规则: 将所有内容分别写入7个不同的文件夹。 将它们全部导入位于根级别的 main.scss 文件。仅此而已。 7 个文件夹: base:你可以将所有的样板代码放入该文件夹。..._variables.scss main.scss 你可以随便选。 你可能会想:你说服了我!但是我该如何使用呢?我是说,哪些不支持scss文件的浏览器该怎么办呢?说的好!...你可以在编程的时候运行npm run watch,并在浏览器打开index.html文件。如果你想缩小CSS,只需运行npm run build。 5....将npm-run-all添加到项目依赖项:npm install npm-run-all --save-dev:有了它我们就可以同时运行多个脚本。...这就是为什么我们需要自动前缀来帮助我们的CSS代码获得浏览器的兼容,而不用增加额外的复杂性。 那么我们如何用更聪明地构建CSS呢? 将所有的SCSS文件编译成一个主CSS文件。

1.7K10

你可能不需要 CSS 框架

应用程序的外观逐渐偏离框架,组件被添加进来,已有的布局和组件被修改,开发者必须通过覆盖框架来适应这些变化。然而,覆盖框架比从头开始实现要困难得多。...开发者将起始 CSS 直接添加到代码库,而不是将其作为外部依赖。起始 CSS 带来了框架所能提供的好处(减少样板、提升质量和一致性),但没有缺点。...请记住,无论选择哪一个,你都是从其中的一小部分 CSS 开始,然后随着时间的推移逐渐添加的内容。随着设计的演变,逐渐修改起始库的样式而不是去覆盖它们。...的 CSS 特性,如变量、作用域、嵌套和值函数,意味着像 SCSS 或 JS-to-CSS 这样的语言所提供的价值无法抵消它们带来的复杂性。...CSS 的这些不足曾经迫使开发者远离 CSS,转向 SCSS 和 JS。然而,的 CSS 特性已经帮助弥补了这一差距,减少了对其他解决方案的需求。

10010

Sass 基础(三)

扩展/继承     继承对于了解css 的同学来说一点都不陌生,先来看一张图     在Sass 也具有继承一说,也就是继承的样式代码块,在Sass时通过关键词“@extend”来     ...混合     混合宏vs继承vs占位符 a Sass的混合宏使用       //SCSS混合宏使用       @mixin mt($var){               margin-top...b)Sass中继承     同样的,将上面代码的混合宏,使用名来表示,然后通过继承来调用。           ...c)占位符       最后来看占位符,将上面的代码的基.mt 换成Sass的占位符格式     //SCSS占位符的使用       %mt{         margin-top...那么占位符和继承的主要区别的,“占位符是独立定义,     不调用的时候是不会在 CSS 中产生任何代码;继承是首先有一个基存在,不管调用与不调用,基的样式都将会出现在编译出来的 CSS 代码

75450

为什么我们不擅长 CSS

等框架的实用工具并无太大区别,只不过在任何其他情况下,你都不会使用 page__header 为元素添加 20 像素的 padding 。...就是这张卡片看起来如何)转移到标记名上,而不是在我们的CSS添加名。...现在,我们还可以在常青树浏览器中使用的范围语法进行媒体查询!我们可以使用 width >= 图像 当设计师在大屏幕和小屏幕之间采用完全不同的设计时,我有点抓狂。我会尽我所能让它发挥作用。...为了补偿这一点,我在文本容器内联添加了一个 align-self: center。(这是针对一个非常具体的设计选择需要考虑的很多事情,但这种情况确实会发生。)...现在是时候添加更多工具了!

16810

几款开发 CSS 最好的前端开发工具

把你的注意力从方法和技术的洪流移开一会,你就可能会错过什么! 上周我遇到我的一个前端开发朋友,他很兴奋地跟我谈论他使用的一些新工具。其中最有意思的是使用 Grunt 来编译 SCSS。...SCSS 库 库是一个大型工具包,它包含并混合从 CSS 重置、跨浏览器背景渐变和使用黄金比例设置字体大小的便捷数学计算等的很多东西。...我用在 Compass 上学到的知识创建了一个轻量级的自定义栈插件,它使得 scss 编译时间从4秒降低到几乎为零。 3. Autoprefixer 不必担心浏览器前缀问题了!...Minification for front end development CSSNANO 也可以删除所有不必要的或过时的浏览器前缀,如果有的话,以及重复的。 5....CSSNANO 也可以删除所有不必要的或过时的浏览器前缀,如果有的话,以及重复的

50120

Vue笔记:在项目中使用 SCSS

CSS预处理器 css预处理器定义了一种的编程语言,编译后成正常的CSS文件。为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代码的维护等诸多。...2.安装SCSS 在webpack,所有预处理器都要匹配相应的loader,vue-loader允许其他的webpack-loader处理组件的一部分吗,然后它根据lang属性自动判断出要使用的loaders...npm install sass-loader --save-dev npm install node-sass --sava-dev 3.添加配置 在build文件夹下的webpack.base.conf.js...的 rules 标签下添加配置。...{ test: /\.scss$/, loaders: ['style', 'css', ' } 4.如何使用 在页面代码 style 标签把 lang 设置成 scss 即可。

1K10

Sass-学习笔记【基础篇】

七、[Sass]扩展/继承@extend 类似css的属性继承 在Sass也有继承这一说,也是继承的样式代码快。...b) Sass 中继承 将上面代码的混合宏,使用名来表示,然后通过继承来调用: //SCSS 继承的运用 .mt{   margin-top: 5px; } .block {   @extend...c) 占位符 将上面代码的基 .mt 换成 Sass 的占位符格式: //SCSS占位符的使用 %mt{   margin-top: 5px; } .block {   @extend...那么占位符和继承的主要区别的,“占位符是独立定义,不调用的时候是不会在 CSS 中产生任何代码; 继承是首先有一个基存在,不管调用与不调用,基的样式都将会出现在编译出来的 CSS 代码。...:可以在值列表添加值 4:@each规则:能够给值列表的每个项目添加样式 值列表可以再包含值列表。

4.8K50
领券