如何写出优雅耐看的css代码?css命名小技巧分享!

如果使用 css 有一段时间,那么您就会知道继承、特异性和命名是一些最难处理的事情。由于所有 css 都是全局的,随着代码库的增长,防止样式相互冲突并导致意外副作用变得越来越困难!下面本篇文章给大家分享一些css命名小技巧,让我们的代码优雅又耐看,希望对大家有所帮助!

如何写出优雅耐看的css代码?css命名小技巧分享!

CSS命名——BEM

BEM是什么

BEM是一种CSS命名规范。【推荐学习:css视频教程】

BEM代表 “块(block),元素(element),修饰符(modifier)”。

立即学习“前端免费学习笔记(深入)”;

在选择器中,由以下三种符号来表示扩展的关系:

-   中划线 :仅作为连字符使用,表示某个块或者某个子元素的多单词之间的连接记号。__  双下划线:双下划线用来连接块和块的子元素_   单下划线:单下划线用来描述一个块或者块的子元素的一种状态

使用BEM示例对比

Block

如下面的例子,li.item 是列表的一个子元素

/* 常规写法和BEM写法相同 */.list

元素(Element)

/* 常规写法 */   
  • Pricing
  • Contact
/* BEM写法 */
  • Pricing
  • Contact
/* 常规写法 */ .list{} .list .item{} /* BEM写法 */ .list{} .list__item{}

修饰符(modifier)

一个“修饰符”可以理解为一个块的特定状态!

/* 常规写法 */   
  • Pricing
  • Contact
/* BEM写法 */
  • Pricing
  • Contact
/* 常规写法 */ .list{} .list .item{} .list .item.active{} /* BEM写法 */ .list{} .list__item{}.list__item_active{}

BEM 的好处

摆脱特异性的困扰修复继承问题停止担心命名

css命名几大原则

短命名比长命名会更好

因为短命名缩短书写时间,也减小了css文件大小!例如这个例子:

//  推荐.some-intro{...}// 不推荐.some-introduction{...}

组合命名比单命名会更好

// 不建议.header{...}//推荐.cs-header{...}

面向属性的命名和面向语义的命名

面向属性的命名指选择器的命名是跟着具体的CSS样式走的,与项目、页面、模块统统没有关系。例如,比较经典的清除浮动类名.clearfix:

.clearfix:after { content : ''; display: table; clear: both; }

面向语义的命名则是根据应用元素所处的上下文来命名的。例如:

.header { background-color: #333; color: #fff; }.logo {font-size: 0; color : transparent;}

上述两种命名方式各有优缺点:

1、面向属性

优点:在于CSS的重用率高,性能最佳,即插即用,方便快捷,开发也极为迅速,因为它省去了大量在 HTML 和CSS文件之间切换的时间。缺点:在于由于属性单一,其适用场景有限,另外因为使用方便,易被过度使用,从而带来更高的维护成本。

2、面向语义

优点是应用场景广泛,可以实现非常精致的布局效果,扩展方便;缺点:在于代码啰唆,开发效率一般,因为所有HTML都需要命名,哪怕是一个10像素的间距。这就导致很多开发者要么选择直接使用标签选择器,要么就选择一个简单的类名,然后通过父子关系限定样式,结果带来了更糟糕的维护问题。

命名汇总推荐

状态

前一个    prev后一个    next当前的    current显示的    show隐藏的    hide打开的    open关闭的    close选中的    selected有效的    active默认的    default反转的    toggle禁用的    disabled危险的    danger主要的    primary成功的    success提醒的    info警告的    warning出错的    error大型的    lg小型的    sm超小的    xs

布局

文档    doc头部    header(hd)主体    body    尾部    footer(ft)    主栏    main侧栏    side    容器    box/container

通用部件

列表    list列表项  item表格    table    表单    form链接    link标题    caption/heading/title菜单    menu集合    group条      bar内容    content    结果    result

组件

按钮        button(btn)字体        icon下拉菜单    dropdown工具栏      toolbar分页        page缩略图      thumbnail警告框      alert进度条      progress导航条      navbar导航        nav    子导航      subnav面包屑      breadcrumb(crumb)    标签        label徽章        badge巨幕        jumbotron面板        panel洼地        well标签页      tab提示框      tooltip弹出框      popover轮播图      carousel手风琴      collapse 定位浮标    affix

语义化小部件

品牌        brand标志        logo额外部件    addon版权        copyright注册        regist(reg)登录        login搜索        search    热点        hot帮助        help信息        info提示        tips开关        toggle新闻        news广告        advertise(ad)排行        top    下载        download

功能部件

左浮动    fl右浮动    fr清浮动    clear

命名网站推荐

codelf:https://unbug.github.io/codelf

参考文档:

1、张鑫旭的《css选择世界》

2、https://www.cnblogs.com/qianxiaox/p/13816077.html

(学习视频分享:web前端)

以上就是如何写出优雅耐看的css代码?css命名小技巧分享!的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1624838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 08:35:17
下一篇 2025年12月24日 08:35:39

相关推荐

  • 巧妙利用 CSS 实现文字二次加粗和多重边框效果

    如何二次加粗文字?如何实现多重边框?下面本篇文章就来给大家介绍一下巧妙利用 css 实现文字二次加粗和多重边框效果,希望对大家有所帮助! p { font-size: 64px; letter-spacing: 6px; font-weight: bold; -webkit-text-stroke:…

    2025年12月24日
    000
  • 聊聊为什么不应该依赖CSS 100vh?

    为什么不应该依赖css 100vh?下面本篇文章就来带大家聊聊原因,希望对大家有所帮助! 如果有一个文本和一个按钮,我们想让文本粘在上面,而按钮粘在下面!使用CSS Flex 似乎很容易做到。【推荐学习:css视频教程】 // HTML Lorem ipsum dolor sit amet… S…

    2025年12月24日 好文分享
    000
  • 手把手带你使用CSS Flex和Grid布局实现3D骰子(附代码)

    在前端面试中,经常会问到如何使用 css 实现骰子/麻将布局。下面本篇文章给大家介绍一下用css 创建一个 3d 骰子(flex和grid布局实现3d骰子)的方法,希望对大家有所帮助! 通过本文可以学到: 使用transform来实现3D形状;给 3D 骰子实现旋转动画;使用 Flex 布局来实现骰…

    2025年12月24日 好文分享
    000
  • CSS小技巧:利用transition保留hover状态

    如何保留 hover 的状态?下面本篇文章给大家介绍一下不借助javascript保留hover状态的方法,希望对大家有所帮助! 通常情况下,hover 是无法保存状态的。鼠标移入触发额外样式,一旦移出就还原了。 el:hover{ color: red} 这就意味着,如果需要保留hover的状态,…

    2025年12月24日 好文分享
    000
  • 看看这两个 CSS 面试题,考察你的基础!

    见微知著,本篇文章给大家分享两道有意思的 css 面试题,考察考察你的基础! 今天在论坛,有看到这样一道非常有意思的题目,简单的代码如下: First Paragraph 样式如下: p#a { color: green;}div::first-line { color: blue;} 试问,标签 …

    2025年12月24日 好文分享
    000
  • CSS媒体查询完全指南(Media Quires)

    本篇文章带大家学习css媒体查询(media quires),详细介绍了媒体查询语法定义,从三个具体布局例子学习媒体查询的使用技巧;并介绍了一些scss、css属性知识。 什么是SCSS Sass: Sass Basics (sass-lang.com) SCSS 是 CSS 的预处理器,它比常规 …

    2025年12月24日 好文分享
    000
  • 手把手带你使用单个标签+CSS实现复杂的棋盘布局

    最近,有群友问我,他们的一个作业,尽量使用少的标签去实现这样一个象棋布局: 他用了 60 多个标签,而他的同学,只用了 6 个,问我有没有办法尽可能的做到利用更少的标签去完成这个布局效果。 其实,对于一个页面的布局而言,标签越少不一定是好事,我们在考虑 DOM 的消耗的同时,也需要关注代码的可读性,…

    2025年12月24日 好文分享
    000
  • CSS实用小技巧:利用视差实现酷炫交互动效

    本文将介绍利用 CSS 实现滚动视差效果的一个小技巧,并且,利用这个技巧来制作一些有意思的交互特效。【学习视频分享:css视频教程、web前端】 关于使用 CSS 实现滚动视差效果,在之前有一篇文章详细描述过具体方案 – CSS 实现视差效果,感兴趣的同学可以先看看这篇文章。 这里,会运…

    2025年12月24日 好文分享
    000
  • CSS新特性学习:方向裁切overflow:clip

    本篇文章将介绍一个新特性,从 chrome 90 开始,overflow 新增的一个新特性 — overflow: clip,使用它,轻松的对溢出方向进行控制。 overflow: clip 为何 首先,简单介绍下 overflow: clip 的用法。 overflow: clip: …

    2025年12月24日 好文分享
    000
  • 原来利用纯CSS也能实现拼图游戏!

    原来利用纯css也能实现拼图游戏!本篇文章就来给将向大家介绍一种将多个 css 技巧运用到极致的技巧,利用纯 css 实现拼图游戏。 本技巧源自于 Temani Afif 的 CodePen CSS Only Puzzle game。一款完全由 CSS 实现的拼图游戏。 我们要做的,就是将散落的图片…

    2025年12月24日 好文分享
    000
  • 详解怎么使用纯CSS实现多行文本的渐隐动画

    本文将探讨一下,在多行文本情形下的一些有意思的文字动效。多行文本,相对于单行文本,场景会复杂一些,但是在实际业务中,多行文本也是非常之多的,但是其效果处理比起单行文本会更困难。 【学习视频分享:css视频教程、web前端】 单行与多行文本的渐隐 首先,我们来看这样一个例子,我们要实现这样一个单行文本…

    2025年12月24日 好文分享
    000
  • 一张图帮你完全掌握CSS所有属性!

    css 属性被分为不同的类型,如字体属性、文本属性、边框属性、边距属性、布局属性、定位属性、打印属性等。对于初学者来说,初学 css 的最大障碍是如何熟悉并掌握这些属性的使用。 提示:不要急于记住每个 CSS 属性,不要急于一下吃透它们的用法,更不能机械记忆,如果使用背英语单词的方法来记忆,效果势必…

    2025年12月24日
    000
  • 20个首页流行布局样式,总有一个可以用上!

    有时我们会在网站上遇到一些内容布局问题,如文字对齐、图片设计与内容和谐、为文章选择合适的字体……在今天的文章中,介绍一些设计精美的创意布局,let‘s  开始。【推荐学习:css视频教程】 代号 001 源码:https://codepen.io/xmark/pen/epeo…

    2025年12月24日 好文分享
    000
  • 利用CSS也能轻松实现超酷炫的转场动画!

    利用css也能轻松实现超酷炫的转场动画了!只需利用最新的 css @scroll-timeline 规范即可。下面本篇文章就通过两个案例来看看利用@scroll-timeline怎么实现超酷炫的转场动画,希望对大家有所帮助! 在 WeGame 的 PC 端官网首页,有着非常多制作精良的基于滚动的动画…

    2025年12月24日 好文分享
    000
  • 深入了解CSS中一个非常有意思的属性 mask

    本篇文章带大家深入了解css中一个非常有意思的属性 mask,希望对大家有所帮助! 顾名思义,mask 译为遮罩。在 CSS 中,mask 属性允许使用者通过遮罩或者裁切特定区域的图片的方式来隐藏一个元素的部分或者全部可见区域。【推荐学习:css视频教程】 其实 mask 的出现已经有一段时间了,只…

    2025年12月24日 好文分享
    000
  • 看看CSS如何利用计数器来实现长按点赞累积动画

    本篇文章给大家分享一个css自定义计数器的使用小技巧,聊聊如何利用它实现长按点赞累积动画,希望对大家有所帮助! 【推荐学习:css视频教程】 在某条 APP 中,如果长按点赞,会出现这样花里胡哨的动画,如下 立即学习“前端免费学习笔记(深入)”; 这个动画有两部分组成,其中这个随机表情的实现可以参考…

    2025年12月24日 好文分享
    000
  • CSS mask-composite高级技巧:单张图片的任意颜色转换

    本篇文章给大家介绍一种基于 css mask-composite 的高级切图技巧,实现基于单张图片的任意颜色转换,希望对大家有所帮助! 通过掌握 CSS mask-composite ,我们可以通过一张 图片,得到关于它的各种变换,甚至乎,得到各种不同颜色的变换。【推荐学习:css视频教程】 通过单…

    2025年12月24日 好文分享
    000
  • css如何排除第一个子元素

    4种方法:1、用“:not()”和“:first-child”,语法“元素:not(:first-child){样式}”;2、用“:nth-of-type”,语法“元素:nth-of-type(n+2){样式}”;3、用“:nth-child”,语法“元素:nth-child(n+2){样式}”;4…

    2025年12月24日 好文分享
    000
  • 巧用CSS实现鼠标跟随 3D 旋转效果,让交互更加生动!

    本篇文章给大家介绍一下如何使用css实现有意思的鼠标跟随 3d 旋转效果,让交互更加生动,希望对大家有所帮助! 今天,群友问了这样一个问题,如下所示的鼠标跟随交互效果,如何实现: 简单分析一下,这个交互效果主要有两个核心: 立即学习“前端免费学习笔记(深入)”; 借助了 CSS 3D 的能力 元素的…

    2025年12月24日 好文分享
    000
  • 详解用SVG给 favicon 添加标识

    怎么使用svg给 favicon 添加标识?下面本篇文章给大家介绍一下使用 svg 生成带标识的 favicon的方法,希望对大家有所帮助! 之前做了一个 Chrome 插件,可以根据地址的不同生成不同的图标,这样可以很方便的区分不同的开发环境,效果如下 主要实现过程其实不复杂,首先获取网站 fav…

    2025年12月24日 好文分享
    000

发表回复

登录后才能评论
关注微信