首页
学习
活动
专区
圈层
工具
发布

50个有价值的CSS编写规则,让你写出更好的CSS

如果你知道页面上唯一的链接是导航链接,也许使用选择器 a 是可以的,但如果你知道会有更多,使用一个类来区分它,比如 .nav-link。...例如,出于样式目的向所有内容添加 id 或 class,除非您使用类实用程序优先库或确实需要额外的性能。为了获得更好的主意,请尝试了解 CSS 的工作原理。...14、 将常见技巧转换为实用程序类 如果你发现自己一遍又一遍地应用技巧或相同的样式,请将它们转换为 class-utils 以直接在 HTML 标记上使用。...对我来说,这些是像带有显示 flex 或网格的 center 这样的东西,所以我创建了一个类 .center-flex 和 .center-grid。创建类实用程序来自动化这些重复的样式组合。...(最小化你的 CSS)、postcss-preset-css(允许你编写未来的 CSS),以及许多其他可以帮助你定义标准和规则、介绍工具、类实用程序、与 javascript 通信并标准化。

3.3K20

为什么和 CSS-in-JS 说拜拜

渲染内的序列化与渲染外的序列化 样式序列化是指Emotion将CSS字符串或对象样式转换为可以插入文档的普通CSS字符串的过程。...为了改进DX,我们决定引入一个实用类系统。实用类就是是在元素上设置一个单一的CSS属性的CSS类。通常情况下,结合多个实用类来获得所需的样式。对于上面的例子,可以这样写。... Bootstrap和Tailwind是提供实用程序类的最流行的CSS框架。这些库在其实用程序系统中投入了大量的设计工作,所以采用其中一个而不是推出我们自己的实用程序是最有意义的。...最近,我们看到越来越多的CSS-in-JS库在编译时将样式转换为普通CSS。...像本例中的 color prop 这样的动态样式不能在构建时提取,所以Compiled使用 style prop(又称内联样式)将该值添加为CSS变量。

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

    编写优秀 CSS 代码的 8 个策略

    2.将CSS看作可重用组件 不要将CSS元素视为每个单独页面上的特定表单或元素,如果你可以定义可重用的CSS实用程序和组件以供自己使用,则可以减少很多复杂性。...首先,如果大多数样式被定义为你所知道的实用程序和类,那么你就不必花费大量时间刷新和重新创建应用程序中已存在的样式。...3.在CSS中定义实用工具来干你的CSS 我们将’utilities’定义为一个CSS类,实际上它只用来做一件特定的事情,而不是封装整个元素。...实用程序背后的理念是,你认为你可能会不止一次地使用它们。如果它是一次性样式,或者如果你认为组合样式会经常使用,那么可能它作为CSS类将可以更好地工作。...所以你试图为黑色的链接编写一个工具类: .link--black{color: black; } 此处.link–black链接将被CSS特殊性所覆盖,并且将无法压倒.my-form li a样式。

    1.4K60

    web 编写优秀 CSS 代码的 8 个策略

    2.将CSS看作可重用组件 不要将CSS元素视为每个单独页面上的特定表单或元素,如果你可以定义可重用的CSS实用程序和组件以供自己使用,则可以减少很多复杂性。...首先,如果大多数样式被定义为你所知道的实用程序和类,那么你就不必花费大量时间刷新和重新创建应用程序中已存在的样式。...3.在CSS中定义实用工具来干你的CSS 我们将’utilities’定义为一个CSS类,实际上它只用来做一件特定的事情,而不是封装整个元素。...实用程序背后的理念是,你认为你可能会不止一次地使用它们。如果它是一次性样式,或者如果你认为组合样式会经常使用,那么可能它作为CSS类将可以更好地工作。...所以你试图为黑色的链接编写一个工具类: .link--black { color: black; } 此处.link–black链接将被CSS特殊性所覆盖,并且将无法压倒.my-form li a样式。

    2.6K00

    Tailwind CSS (可能)是名过其实的

    你并不需要编写基础的 CSS 样式规则,只需要直接在 HTML 中应用已经事先定义好的类名。 这样的类名还有很多。...语法 正如上面所展示的,我们直接在 HTML 中书写工具类名。我们会很快想到这和内联 CSS 是非常相似的,这或许也能解释为什么 Tailwind 的开发者会在文档的开头部分就提及这个问题。...我可不想像找威利一样去找元素的字号(译者注:威利是儿童书籍《威利在哪里》中的人物,读者需要在一张人山人海的图片中找到威利) 我的观点是,部分 HTML 元素会使用非常多的样式,这种情况下应该考虑将样式与...这样,我们就可以组织样式并增强其可读性。你不能把 CSS 的所有功能”塞到“ class 这一个 HTML 标签属性里,Tailwind 也不能。这样做只会让 HTML 结构越发臃肿。...我并没有对 Tailwind 的优点避而不谈,其提供的部分工具类一定有更多用处亟待探索。但谈及语法的时候,我还是希望标记语言(HTML) 和样式规则可以进行明确的分离。我想,这是一个主观的看法。

    2.4K20

    React组件设计实践总结03 - 样式的管理

    解决的方向: 由工具来转换或创建类名 5️⃣ 常量共享 常规的 CSS 很难做到在样式和 JS 之间共享变量, 例如自定义主题色, 通常通过内联样式来部分实现这种需求 解决的方向: CSS-in-js...内联 CSS 不支持复杂的样式配置, 例如伪元素, 伪类, 动画定义, 媒体查询和媒体回退(对象不允许同名属性, 例如display: -webkit-flex; display: flex;) 内联样式通过...当然通过某些工具可以将静态的 object 提取出去 不方便调试和阅读 … 所以 内联 CSS 适合用于设置动态且比较简单的样式属性 社区上有许多 CSS-in-js 方案是基于内联 CSS 的, 例如...而在 React 生态中使用svgr更加方便, 它可以将 svg 文件转换为 React 组件, 也就是一个普通的 JS 模块, 它有以下优势: 转换为普通 JS 文件, 方便代码分割和异步加载 相比...这类固定比例的组件的样式可以更容易的被配置, 可以配合函数将px转换为em: 扩展: Understanding and Using rem Units in CSS Rem 布局的原理解析 ----

    8.2K20

    css-in-js 探讨

    在这个由两部分组成的系列中,我想将CSS放在聚光灯下,并探索弥合它与JavaScript之间的差距。在本系列中,我将假设您正在使用像webpack这样的模块解析器。...我们只能有条件地应用样式集 - 如果按钮是主要的,我们可能会应用“primary”类并在单独的CSS文件中定义它的样式以应用它在屏幕上的样式。...可能会想到内联样式来解决此问题,但它们不支持伪类,属性选择器,媒体查询等。 可重用性 重用规则集,媒体查询等是我最近很少看到的一个主题,因为它已经被Sass和Less等预处理器解决了。...这样,您可以更轻松地按照示例进行操作。 CSS-in-JS CSS-in-JS是一种样式方法,它将CSS模型抽象到组件级别,而不是文档级别。...生成的类是唯一的,因此您永远不必担心它们与其他样式冲突。 换句话说,你可以自由的使用作用域! 这就是大多数CSS-in-JS库的工作方式 - 当然,我们将在功能和语法方面进行一些改进。

    6.9K20

    CSS、CSS3知识点清单

    CSS的简介: 层叠样式表(级联样式表),能够对网页中元素位置的排版进行像素级精确控制, 支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。...Css的四种引入方式 1、内联式 ? 2、内嵌式 ? 3、连接式 ? 4、导入式 ? 注:css引入方式的原则,就近原则。样式跟随最近的控制标签。...CSS中的选择器 1、通用选择器(代表所有元素) 2、元素选择器(指定某个具体元素div…) 3、ID选择器(#id的名称 id的名称保证唯一) 4、类选择器(.类名,可以指定多个相同的div)...:none; 将内联元素转换为行内元素。...不换行(例:将两个p标签的内容合并) display:inline 将元素变为行内块级元素显示,在同一行显示,且能设置宽和高: display:inline-black; 9、其他样式

    82730

    前端-在2018年你应该知道的9个关于CSS组件化的JS库

    一个特别有趣的概念是在CSS中使用JS将CSS抽象到组件级别本身,使用JavaScript以声明性和可维护的方式描述样式。...可以根据需要将CSS属性添加到组件中,就像通常使用CSS一样。解析JS时,样式组件将生成唯一的类名,并将CSS注入DOM。您可以在Max Stoiber的精彩演讲中了解更多信息。...Radium提供标准接口和抽象,用于处理内联样式无法轻松容纳的CSS功能。 Radium允许您将样式与React组件捆绑在一起,将javascript,html和样式结合在一起。...Aphrodite将所有内容转换为类并使用class属性。 在4Kstars,这个项目有或没有React工作,都一并提供诸如注入风格的Dom,自动前缀样式等功能。 4. Emotion ? ?...受到这场精彩演讲的启发,Glamour小而有效。它允许您使用相同的Object CSS语法在组件中编写内联CSS,React支持样式prop。

    3K40

    2种方式!带你快速实现前端截图

    导语 | 本文将介绍在前端开发中页面截图的两种方式,包括对其实现原理和使用方式进行详细阐述,希望能为更多前端开发者提供一些经验和帮助。...,大概步骤如下: 递归去克隆dom节点(调用cloneNode函数) 处理字体,获取所有样式,找到所有的@font-face和内联资源,解析并下载对应的资源,将资源转为dataUrl给src使用。...处理节点的样式,通过getComputedStyle方法获取节点元素的所有CSS属性的值,并将这些样式属性插入新建的style标签上面, 同时要处理“:before,:after”这些伪元素的样式, 最后处理输入内容和...function cloneStyle() { ... } // 提取伪类样式,放到css function clonePseudoElements() { ....core:工具函数的封装,包括对缓存的处理函数、Context方法封装、日志模块等。 css:对节点样式的处理,解析各种css属性和特性,进行处理。

    4.9K21

    CSS基础知识

    CSS 样式 CSS样式代码插入的形式来看基本可以分为以下3种:内联式、嵌入式和外部式三种。...3.外部式css样式(也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css ”为扩展名,在内(不是在标签内)使用标签将css样式文件链接到...这样就会使第一段文字内容中的“胆小如鼠”文字加入鼠标滑过字体颜色变为红色特效 关于伪选择符: 关于伪类选择符,到目前为止,可以兼容所有浏鉴器的“伪类选择符”就是 a 标签上使用 :hover 了(其实伪类选择符还有很多...设置display:block 就是将元素显示为块级元素。如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点。...当然块状元素也可以通过代码display:inline 将元素设置为内联元素。如下代码就是将块状元素div转换为内联元素,从而使 div 元素具有内联元素特点。

    1.8K20

    使用chrome调试CSS

    添加或更改CSS样式 添加内联样式 1、相当于向HTML的 style 属性的添加属性值。...点击 element.style 顶部附近区域,输入新添加的样式属性名,按 Tab 键,再输入样式属性值,并按 Enter 键。这样就添加了一条内联样式。...####修改已有样式规则的声明 1、在需要更改的原有样式上双击,修改样式规则,并按 Enter 键。 给元素添加CSS类 1、在 styles 选项卡中点击 .cls 。...2、如果想在特定位置添加新样式规则,可以鼠标悬浮在插入规则的上一个样式规则处,此时会在右下角出现三个点更多操作的符号,x悬浮上去就会出现加号2➕,点击加号2就会在此条样式的后面新增一条样式规则。...Shift+ Command+ Up(Mac)或 Shift+ Page Up(Windows,Linux)将值增加100。 减量也有效。只需将Up上面提到的每个实例替换为Down。

    7.4K20

    tailwindcss 从0到1

    简介 Tailwind CSS 是一个功能类优先的 CSS 框架,它集成了诸如 flex, pt-4, text-center 和 rotate-90 这样的的类,它们能直接在脚本标记语言中组合起来,构建出任何设计...简单的理解 tailwind css 是原 atom css 的升级版,提供更灵活的配置, 更系统的预设样式类, 更完整的配置体系 简单例子 [图片上传失败......title{ color: orange; } } @layer base { .title { color: blue; } } // 这里title 颜色为红色, 不同的分组将影响类的优先级顺序...配置文件,能实现更多自定义功能 配置主要分为: theme 主题 定制字体,颜色等视觉定义 variants 状体修饰定义 plugins 引入外部定义js 样式插件 presets 自定义基础类...非常适合有UI设计体系或要求统一UI视觉的产品, 通过组合基础样式模板,统一样式规范,提高编写效率。 如果UI本身就没有统一规范的化,还是内联样式文件来的灵活些。

    2K20

    2020 年你应该知道的 React 库

    如果不行,像 Redux 或者 MobX/Mobx State tree 这样的解决方案可能会有所帮助。 如果你想了解更多细节,请访问我的综合状态管理反应教程。...建议: React Router React 中的样式库 虽然关于 React 样式处理有很多解决方法,但是作为一个 React 初学者,刚开始使用内联样式和基本 CSS 是很好的。...{title} 虽然内联样式可以用 JavaScript 在 React 中动态地添加样式,但是一个外部的 CSS 文件可以拥有 React 应用程序的所有剩余样式。...CSS Modules 受到 create-react-app 的支持,并为您提供了将 CSS 封装到模块中的方法。这样,它就不会意外地泄漏到其他人的样式中。...您甚至可能希望在将这些实用函数链接起来时更加灵活,甚至可以将它们动态地组合在一起。这时,您将引入一个实用程序库: Lodash 或 Ramda。

    18.7K40

    深入理解 CSS(Cascading Style Sheets)中的层叠(Cascading)

    如果此时,我们希望改变 .txt p 标签元素的内容文字的颜色,但是不能去修改内联 CSS,只能通过样式文件去实现,像是这样: .txt { color: green; } 嗯。...这样的声明没有选择器,所以它得分总是1000 百位: 选择器中包含ID选择器则该位得一分 十位: 选择器中包含类选择器、属性选择器或者伪类则该位得一分 个位:选择器中包含元素、伪元素选择器则该位得一分...总的来说是规则是: 内联 > id 选择器 > 类/属性/伪类选择器 > 标签元素/伪元素 上面的规则没有问题的。...更多详细的关于层叠和样式优先级的概念,你可以看看下面: Introducing the CSS Cascade Cascade and inheritance css-cascade-4 上述 MDN...更多精彩 CSS 技术文章汇总在我的 Github -- iCSS ,持续更新,欢迎点个 star 订阅收藏。

    1.6K40

    优化网站加载速度的14个技巧

    注意:如果过期时间与文件挂钩,而此时文件中的内容需要更改的话,那必须先重命名文件,以便浏览器可以获取新添加的代码。 3.gzip压缩 gzip压缩是一个压缩实用程序,我们可以用它来快速加载网站。...7.置于顶部的样式表和底部的脚本标记内容,从而增加了网站的加载时间。通过延迟解析脚本,那么就可以减少初始网站的加载时间了。 将样式表放在顶部有助网站的迅速加载,因为这样可以使得网页渐进式呈现。...所以不妨推迟加载那些不重要的JavaScript,或者采用异步加载的方式。另一种选择是将这些HTML代码内嵌到网站上,同时需要确保CSS的优化。...建议使用JPEG格式,而不是GIF和PNG图像,除非图像包含Alpha因子或者是透明的。 12.优化代码:不使用内联CSS 内联了样式就不能清清楚楚地将内容从设计中剥离开来。...总之,炫彩夺目的图形,有趣的内容和更好的导航可以帮助你获得更多的网站访问者,但更快的网页加载速度则能帮助你留住他们。 CSS Minifier Avivo HTML Compressor

    1.1K30

    Imooc之Html与CSS

    ,这样服务器端程序就可以处理表单传过来的数据。...设置display:block就是将元素显示为块级元素。如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点。...当然块状元素也可以通过代码display:inline将元素设置为内联元素。如下代码就是将块状元素div转换为内联元素,从而使 div 元素具有内联元素特点。...css 样式由选择符和声明组成,而声明又由属性和值组成,如下图所示: 选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到影响...如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

    8.1K20

    26 个 CSS 面试的高频考点助力金三银四

    这种结构和设计的分离允许HTML执行比原来更多的功能。 问题3:CSS的主要版本有哪些? CSS的不同版本: CSS1 CSS2 CSS2.1 CSS3 问题4:CSS样式的组成部分是什么?...简而言之,所有 HTML 属性都转换为 CSS 属性。 值– CSS中的值定义CSS属性的一组有效值。...问题 5:有多少种方法可以将 CSS 集成为 web 页面 CSS 可以集成为三种方式 内联:直接在HTML元素上使用 hello worldCSS 中有四类可以授权选择器的特异性级别: 内联样式 ID 类,属性和伪类 元素和伪元素 问题12:CSS有什么缺点 CSS的缺点有: 版本太多 – 与HTML或Javascript等其他参数相比,...我们可以使用诸如font-awesome或者阿里的 iconfont 之类的图标库将图标添加到HTML网页。 我们必须将给定图标类的名称添加到任何内联HTML元素中。 (或)。

    2.7K20
    领券