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

BEM会强迫你创建不必要的元素吗?

BEM(Block Element Modifier)是一种前端开发的命名规范和方法论,用于管理和组织CSS代码。它的目标是提高代码的可维护性和可扩展性。

BEM不会强迫你创建不必要的元素。相反,它鼓励开发者使用最少的元素来构建页面,并通过类名的方式来表示元素之间的关系。

BEM的核心概念是块(Block)、元素(Element)和修饰符(Modifier):

  • 块(Block)是一个独立的可重用组件,它代表一个完整的功能单元。块应该是自包含的,不依赖于其他元素或块。
  • 元素(Element)是块的组成部分,它们只在特定的块内部存在,并且具有与块相关的语义。元素的类名应该以块的类名为前缀,用双下划线(__)连接。
  • 修饰符(Modifier)是用于修改块或元素的外观、状态或行为的类名。修饰符的类名应该以块或元素的类名为前缀,用双短横线(--)连接。

通过使用BEM,开发者可以清晰地定义和组织CSS代码,避免选择器的嵌套和样式的冲突。这样可以提高代码的可读性和可维护性,并且方便团队协作开发。

BEM适用于任何规模的项目,并且特别适合大型项目和团队开发。它可以帮助开发者更好地理解和管理代码,减少错误和冲突,并提高开发效率。

在腾讯云的产品中,没有直接与BEM相关的产品或服务。然而,腾讯云提供了一系列与前端开发、云计算和互联网相关的产品,例如云服务器、云存储、人工智能服务等。您可以根据具体需求选择适合的产品,腾讯云的官方网站(https://cloud.tencent.com/)提供了详细的产品介绍和文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你会描述你的数据吗?

面对一个数据集,你会描述它吗? 描述数据集,目的是为了理解数据。你对数据理解的越充分和全面,你就越能够更好地处理数据和应用数据。 描述你自己的数据集,可以从这些方面入手。...一 概况分析 1 数据集大小,包括观察大小和维度大小 2 变量的类型观察,因为不同的变量类型会使用不同观察手段和工具 3 元数据分析,也就是对于数据解释的数据,比方说,每个变量表示什么意思,有什么业务含义...二 数据观察 1 从大量数据中可以先选择一部分数据来观察,以对数据有个直观认识 三 数据摘要分析 1 采用描述性统计分析的方法,变量类型的统计特征进行计算和了解 四 变量重要性分析 1 选择一种算法...,评价数据集中变量的重要性 五 可视化分析 1 采用可视化分析,理解变量的分布和变量之间的关系 我们以描述Iris数据集为例 一 参考代码: # -*- coding: utf-8 -*- """...描述你的数据 @author: Luqing Wang """ import matplotlib.pyplot as plt import seaborn as sns import pandas

72620

你的MySQL会抖动吗

你的MySQL会抖动吗 1. 什么是MySQL 抖动 一条SQL语句正常执行的时候特别快,有时候会变得特别慢。但是这种场景不是很常见。 2....MySQL 为什么会抖动 2.1 脏页 内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存为脏页。 2.2 干净页 内存数据写入到磁盘后,内存和磁盘上的数据页的内容一致,称为干净页。...2.4 什么时候会触发flush操作 InnoDB 的 redo log 写满了。 系统内存不够,需要新的内存页了,就需要淘汰一些内存页。 MySQL 认为系统空闲时候,开始flush。...这种情况尽量避免,一旦redo log 写满,系统会拒绝更新操作,此时更新数为0。 2.5.2 系统内存不够。...2.6 InnoDB 刷脏页的控制策略 innodb_io_capacity ,告诉InnoDB你的磁盘能力,建议设置成磁盘的IOPS。

81120
  • 会旋转的树,你见过吗?

    每当向AVL树中插入、删除节点时,AVL树会自动地进行旋转操作将树变为平衡状态,从而保证了AVL树的平衡性。 会旋转的树才够强,AVL树的查询数据的时间复杂度总是控制在 O(logn)量级....{ typedef T1 first_type; typedef T2 second_type; T1 first; // 第一个元素 T2 second; //...第二个元素 // 默认构造函数 pair() : first(T1()), second(T2()) {} // 初始化构造函数 pair(const T1& x, const...子树的平衡因子变化,可能会影响祖先路径上的结点,需要继续向上更新. (1) 当新增结点后,父节点的平衡因子变成0,则插入结束....后续会更新红黑树的介绍,很多人认为红黑树是比AVL树还要优秀的结构,不想要了解一下吗? 还请保持关注哦!

    12610

    这条SQL的索引,你会如何创建?

    在微信群中,老虎刘老师提了一个有趣的问题,这个SQL,object_id列的可选择性非常高,owner列的可选择性比较差,你认为创建什么索引最佳?...select max(object_id) from t where owner='SYS'; 但从这条SQL看,一共就用了两个字段,object_id和owner,如果使用穷举法,排列组合,能创建的B...首先创建测试表,可以看到,object_id选择率很高,owner选择率很低, SQL> create table t as select object_id, owner from all_objects...会根据各种执行计划的成本,选择出成本值最低的一个,虽然owner有索引,但是owner='SYS'的记录会返回接近一半的数据,相比索引单块读,全表扫描多块读,效率会更高一些,此时consistents...,如果没这种需求,就可以创建object_id单键值索引,这样一来,使用object_id和其他字段的复合检索,都可能用上object_id的单键值索引,一举多得。

    1.1K30

    你的爬虫会送你进监狱吗?

    爬虫究竟是合法还是违法的? 随着大数据的火热,数据相关行业竞争不仅“蒸蒸日上”,爬虫之间的战争也越发地激烈。一篇《你的爬虫会送老板进监狱吗?》...在程序猿圈子里被大量转载,甚至有的程序员因为非法获取数据的新闻从而放弃了这一行当。那么,爬虫是什么,它会是悬在程序员头上的达摩克利斯之剑吗?...由于爬虫会批量访问网站,因此许多网站会采取反爬措施。例如:1.IP频率、流量限制;2.请求时间窗口过滤统计;3.识别爬虫等。...由于网络爬虫会根据特定的条件访问页面,因而爬虫的使用将占用被访问网站的网络带宽并增加网络服务器的处理开销,甚至无法正常提供服务。...本文由群友不二辰投稿,刚刚得知他的职业之后我第一个问的问题就是,爬虫合法吗?

    2K30

    正确的表格跨页,你会吗?

    Word是我们平日里最常用的Office软件,大家都已经很熟悉了。小编最近一直在整理毕业的东西,其中关于word里面的表格,就被导师指出了问题。...那么正确的做法是怎么样呢,来跟小编学学吧! 软件 ? Microsoft word 2019 ? 视频教程 ? 不会了看看视频呗 ? ? ? 图文教程 ? 1....打开word,打开我们的表格,那么这里我随机整理了一个表格,用来演示 ? 2. 打开表格之后,首先将表格的行距设置一下,一般1倍或者1.5倍行距就行。 ? 3. 然后看一下,表格分为几页了。...选中下一页的表头,按住Shift + Ctrl + Enter,就会产生空格 ? 4. 我们给表格写上续表 ? 5. 选中第二页,第一行,添加一行,写上表头 ? 6....最后,我们将第一页表格选中,将上下两行设置为1磅,中间的设置为0.5磅 ? 7. 选中第一行,将下面的线设置为0.5磅 ? 8. 其他的分页的表格也同样操作,最终我们分页的表格就做好了。 ?

    1.4K30

    进大厂必备的RocketMQ你会吗?

    定时消息会暂存在名为SCHEDULE_TOPIC_XXXX的topic中,并根据delayTimeLevel存入特定的queue,queueId = delayTimeLevel – 1,即一个queue...消息重投可以最大限度的保证消息发送成功、不丢失,但是也会导致消息重复,当消息量大、网络不好的时候消息重复的概率就会提高。...我们可以根据需要设置消息重试策略: retryTimesWhenSendFailed:同步发送失败重投次数,默认为2 ,在重投的时候不会发送给上次失败的broker,会尝试向其他的broker发送,尽可能的保证消息不丢失...死 信队列 死信队列用于处理消费失败的消息,当消息消费失败的时候,会自动进行消息重试,如果达到最大重试次数后,还是没有消费成功,就说明正常情况下不能正确的消费该消息,此时消息队列会把这个消息发送到该消费者对应的特殊队列中...收发消息前,先创建Topic,创建Topic时需要指定该Topic要存储在哪些Broker上,也可以在发送消息时自动创建Topic。

    81030

    你的爬虫会送你进监狱吗?

    ” 爬虫究竟是合法还是违法的? 随着大数据的火热,数据相关行业竞争不仅“蒸蒸日上”,爬虫之间的战争也越发地激烈。一篇《你的爬虫会送老板进监狱吗?》...在程序猿圈子里被大量转载,甚至有的程序员因为非法获取数据的新闻从而放弃了这一行当。那么,爬虫是什么,它会是悬在程序员头上的达摩克利斯之剑吗?...最早的爬虫程序是1994年休斯敦大学的Eichmann开发的RBSE。著名的谷歌公司使用的Google Crawler是当时还是斯坦福大学生Brin和Page在1998年用Python开发的。...由于爬虫会批量访问网站,因此许多网站会采取反爬措施。例如:1.IP频率、流量限制;2.请求时间窗口过滤统计;3.识别爬虫等。...由于网络爬虫会根据特定的条件访问页面,因而爬虫的使用将占用被访问网站的网络带宽并增加网络服务器的处理开销,甚至无法正常提供服务。

    3.4K20

    你会因技术进步丢掉你的工作吗?

    “我希望自己是错的,”他说,“但是当这些科幻般的技术被付诸实施后,我们还需要人力做什么?” 新经济? 但是,这些新技术真的是造成十年就业增长低迷的元凶吗?...随着工人调整自身技能,创业者基于新技术创造工作机会,工作数量会反弹。这至少是过去贯有的规律。这样一来,问题就变成:现在的计算机技术是否有所不同,会造成长久的非自愿的失业?...人们会找到新的事情来干。” 不过,卡兹也承认,当前的数字技术与之前的技术进步有所不同,可能影响更多类型的工作。他说,问题在于经济史能否提供有用的指导。...到底技术减缓就业增长是一种会随着劳动力的调适而逐渐消失的暂时现象,还是会出现如科幻小说里的情景:自动化流程和拥有超人技能的机器人接管了广泛的人工任务?...他补充说:“这是经济学肮脏的秘密之一:技术进步可以改善经济、创造财富,但是没有一个经济学规律说每个人都可以从中受益。”换言之,在与机器的竞赛中,有些人会胜出,而另一些人会败下阵来。

    40540

    你的简历写了 “熟悉” zookeeper ?那这些你会吗?

    Zxid: znode节点状态改变会导致该节点收到一个zxid格式的时间戳,这个时间戳是全局有序的,znode节点的建立或者更新都会产生一个新的。...另外当dataversion为 -1的时候可以忽略版本进行操作。对一个节点设置权限时aclVersion版本号会递增,下边会详细说ACL权限控制。...watcher 我们在开头就说过:zookeeper可以为dubbo提供服务的注册与发现,作为注册中心,但你有想过zookeeper为啥能够实现服务的注册与发现吗?...服务注册: 服务提供者(Provider)启动时,会向zookeeper服务端注册服务信息,也就是创建一个节点,例如:用户注册服务com.xxx.user.register,并在节点上存储服务的相关数据...以此类推/test/lock/seq-00000003节点监听/test/lock/seq-00000002节点,总是让后一个节点监听前一个节点,不用让所有节点都监听最小的节点,避免设置不必要的监听,以免造成大量无效的通知

    44920

    你会因技术进步丢掉你的工作吗?

    “我希望自己是错的,”他说,“但是当这些科幻般的技术被付诸实施后,我们还需要人力做什么?” 新经济? 但是,这些新技术真的是造成十年就业增长低迷的元凶吗?...随着工人调整自身技能,创业者基于新技术创造工作机会,工作数量会反弹。这至少是过去贯有的规律。这样一来,问题就变成:现在的计算机技术是否有所不同,会造成长久的非自愿的失业?...人们会找到新的事情来干。” 不过,卡兹也承认,当前的数字技术与之前的技术进步有所不同,可能影响更多类型的工作。他说,问题在于经济史能否提供有用的指导。...到底技术减缓就业增长是一种会随着劳动力的调适而逐渐消失的暂时现象,还是会出现如科幻小说里的情景:自动化流程和拥有超人技能的机器人接管了广泛的人工任务?...他补充说:“这是经济学肮脏的秘密之一:技术进步可以改善经济、创造财富,但是没有一个经济学规律说每个人都可以从中受益。”换言之,在与机器的竞赛中,有些人会胜出,而另一些人会败下阵来。

    78370

    软件设计必备的 UML,你会吗?

    组件:一个系统中提供一个或者多个接口的封装模块。 ? 注释:一个用来对元素或元素符号进行注解或约束时所用的符号 ? 节点:表示具有一个内存和计算能力的物理元素 ?...依赖:描述的是当一个实体的改变会影响到另一个实体时这两个实体之间的关系;比如汽车依赖汽油,如果没有汽油,汽车无法行驶,这里的汽车与汽油之间的关系就是属于依赖关系。...类图中的类通常用三个矩形表示,最上面部分来标识类的名称;中间的部分标识类的属性;最下面的部分标识类的方法,如下图所示: ?...时序图主要的图形符号有参与者,生命线,活动,消息调用,消息返回,自我消息,递归消息,创建信息 ,销毁消息,持续消息组成。...部署图 部署图描述软件系统如何部署到物理环境中去,表明了硬件配置与软件之间的关系。 部署图中的符号包括组件图中所使用的符号元素,还新增了一些符号,比如表示机器的节点符号,表示软件的构件等。 ?

    3K20

    接近传感器的选型,你真的会吗?

    电感型接近传感器的检测物体仅为金属。无法检测塑料、木料、纸及陶瓷等材质,因此可实现隔着塑料(不透明)的金属体检测等光电传感器无法检测的操作。...需要注意的是:电感型接近传感器在检测铝和铜等弱磁金属时,检测距离有较大的衰减。 可选择检测铝专用型的接近传感器。...电容式接近开关亦属于一种具有开关量输出的位置传感器,它的测量头通常是构成电容器的一个极板,而另一个极板是物体的本身。检测物体不论材质和导电性(例如金属、矿石、木材、塑料、玻璃、液体等)。...检测距离: 一般指的是检测面到检测物体间的距离。 差动(差动的距离): 标准检测物体与传感器的距离中,传感器「动作」时与「复位」时之间的距离差。...响应时间: t1:标准检测物体进入传感器的动作区域,传感器从处于「动作」状态到输出为ON的时间。 t2:标准检测物体离开传感器的动作区域,传感器的输出至OFF的时间。

    9910

    热议:这样的开源项目,你会支持吗?

    算了,我姑且相信你没有通过提权突破沙盒的能力,允许一次管理员权限吧 结果我一打开,弹出来这个 登录?还必须扫码登录?...顺着说明打开该项目官网,且不谈图片的css样式显然没在高分屏上测试过,4k屏直接右侧就白了 谁给你的脸还写着代码开源的?你发布的源码和你发布的安装包是一个东西吗?...用户能通过源码构建出和安装包一样功能的东西吗?...,却还能截止到现在多出700多star,一些Github用户的星星是不是给的太随意了点 ------ 我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐...如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

    57240

    JAVA反射会降低你的程序性能吗?

    我们看上面这个场景,如果快递员不熟悉你的小区,是不是会慢点,他的时间主要花费在了查找百度地图,询问物业管理。...有些人一听到慢,就非常着急的下结论,反射怎样怎样不行,怎样怎样不能用。但是,同学,反射到底比直接调用慢多少,你造吗,能给我个实际的数据吗?很多人其实对性能只有个模糊的概念,而没有数值支撑。...我认为这个情况是非常非常少的,绝大多数的我们根本就无需考虑这个。就上我上一篇文章提到的工厂,你程序有多少个实体,有100万个吗?...如果你只是在弹出窗口的时候new一下,这个百万分之十秒的影响对你很重要吗? 另外,有些人讲,我要是真有这种需求,要把一个对象new一百万遍,那不还是慢吗?这种情况有没有,有!...大多时候,我们会把程序的性能归结于编程语言,或者使用了反射等技术,而甚少去关心自己的代码,这种心态会导致你技术的发展越来越缓慢,因为你已经失去了求知的欲望,以及一颗追求技术进步的心。

    2.2K30

    这个不可思议的死锁你会解吗?

    这篇文章将介绍一个“简单的死锁”,这个死锁产生的事物中SQL语句都只有一条,而且业务非常简单就是删除一条记录。两个事物同时执行以下两个SQL语句就有可能死锁。...数据是怎么找到的? 要说清楚死锁产生原因,就要先理清楚这条SQL是怎么执行的,会在那些地方加锁。在此之前先说说数据库是怎么找到我们要删除的这行数据的。下面两幅图展示根据年龄为30来查记录的示意图。...同理第二个SQL语句执行时候,加锁位置也是一样的。(可重复度隔离级别上,非唯一索引还要加上间隙锁)。 既然加锁上一样的,那应该是在不同索引加锁顺序是不一样的。...事物2持有这个锁的,事物1持有的锁没有显示,应该是主键上的锁,这是符合预期的。...尽量使用小事务,在业务允许范围内,将隔离级别改成读已提交,可以减少不些不必要的锁; 3. 避免全表扫描; 4. 避免较多索引; 5. 不同事务对表和行操作的顺序尽量一致。

    1.4K40

    ES6的这些操作技巧,你会吗?

    本文就讲述ES6的这些操作技巧,你会吗? ? 强制要求参数 ES6提供了默认参数值机制,允许你为参数设置默认值,防止在函数被调用时没有传入这些参数。...在下面的例子中,我们写了一个required()函数作为参数a和b的默认值。这意味着如果a或b其中有一个参数没有在调用时传值,会默认required()函数,然后抛出错误。...有注意到我们是如何非常高效地使用reduce来同时完成map和filter方法的吗?...,我建议你阅读MDN的相关代码示例。...你可能会枚举整个对象然后删除它们,但实际上只需要简单的将这些无用属性赋值给变量,然后把想要保留的有用部分作为剩余参数就可以了。 下面的代码里,我们希望删除_internal和tooBig参数。

    56630

    你的爬虫会送你进监狱吗?

    小詹说:爬虫是个有意思的事情,但是与之相伴的是许多人好奇的一件事——爬虫是否违法?这里分享好朋友「咸鱼学Python」的一篇分析文章,能够解答这个问题! 爬虫究竟是合法还是违法的?...随着大数据的火热,数据相关行业竞争不仅“蒸蒸日上”,爬虫之间的战争也越发地激烈。一篇《你的爬虫会送老板进监狱吗?》在程序猿圈子里被大量转载,甚至有的程序员因为非法获取数据的新闻从而放弃了这一行当。...那么,爬虫是什么,它会是悬在程序员头上的达摩克利斯之剑吗? 网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。...由于爬虫会批量访问网站,因此许多网站会采取反爬措施。例如:1.IP频率、流量限制;2.请求时间窗口过滤统计;3.识别爬虫等。...由于网络爬虫会根据特定的条件访问页面,因而爬虫的使用将占用被访问网站的网络带宽并增加网络服务器的处理开销,甚至无法正常提供服务。

    5.5K50

    你都理解创建线程池的参数吗?

    多线程可以说是面试官最喜欢拿来问的题目之一了,可谓是老生之常谈,不管你是新手还是老司机,我相信你一定会在面试过程中遇到过有关多线程的一些问题。...如果你此时一脸懵逼,请不要慌,问题不大。 ? 创建线程池的构造方法的参数都有哪些?...workQueue 当前线程数超过corePoolSize时,新的任务会处在等待状态,并存在workQueue中,BlockingQueue是一个先进先出的阻塞式队列实现,底层实现会涉及Java并发的AQS...threadFactory 创建线程的工厂类,通常我们会自顶一个threadFactory设置线程的名称,这样我们就可以知道线程是由哪个工厂类创建的,可以快速定位。...“临时”线程来执行这个任务了; 这里创建的线程用“临时”来描述还是因为它们不会长期存在于线程池,它们的存活时间为keepAliveTime,此后线程池会维持最少corePoolSize数量的线程。

    77440
    领券