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

使用BEM命名规范来组织CSS代码

如何使用BEM 一个独立(语义上或视觉上),可以复用而不依赖其它组件部分,可作为一个块(Block) 属于块某部分,可作为一个元素(Element) 用于修饰块或元素,体现出外形行为状态等特征...,可作为一个修饰(Modifier) 在本规范中,以双下划线 __ 来作为块和元素间隔,以单下划线 _ 来作为块和修饰元素和修饰 间隔,以中划线 - 来作为 块|元素|修饰 名称中多个单词间隔...-- 错误不能出现多个元素 --> 标题 搜索 <!...(此处是在块theme1修饰元素,某些时候有必要) */ .search-form_theme1 .search-form__input {} /* 错误:使用了标签 */ button.search-form

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

如何编写简练清晰HTML代码?

如何提升 Web 页面的性能,很多开发人员从多个方面来下手如 JavaScript、图像优化、服务配置,文件压缩或是调整 CSS。...如何有效降低 HTML 代码复杂度和页面元素数量,本文主要解决了这个问题,从多个方面介绍了如何编写简练,清晰 HTML 代码,能够使得页面加载更为迅速,且能在多种设备中运行良好。...HTML 不能用于修饰样式内容,也不能在头标签中输入文本内容,使代码变得冗长和复杂,相反使用 CSS 来修饰布局元素和外观比较合适。...可采取以下措施: 在工作流中添加验证功能:使用验证插件如HTMLHint或SublineLinter帮助你检测代码错误。...将文本和元素混合,并作为另一元素元素,会导致布局错误, 例如: Name: 复制代码 换种写法会更好:

1.8K60

你不可不知HTML优化技巧

如何提升Web页面的性能,很多开发人员从多个方面来下手如JavaScript、图像优化、服务配置,文件压缩或是调整CSS。...如何有效降低HTML 代码复杂度和页面元素数量,本文主要解决了这个问题,从多个方面介绍了如何编写简练,清晰HTML 代码,能够使得页面加载更为迅速,且能在多种设备中运行良好。...HTML 不能用于修饰样式内容,也不能在头标签中输入文本内容,使代码变得冗长和复杂,相反使用CSS 来修饰布局元素和外观比较合适。...当使用模板时,合法HTML代码显得异常重要,经常会发生模板单独运行良好,当与其他模块集成时就报各种各样错误,因此一定要保证HTML代码质量,可采取以下措施: 在工作流中添加验证功能:使用验证插件如...将文本和元素混合,并作为另一元素元素,会导致布局错误, 例如: Name: 换种写法会更好:

1.3K60

那些年,我们被耍过bug——haslayout

你被IEbug耍过几次了? IE,这个令所有网站设计人员讨厌,但又不得不为它工作浏览。...它决定了一个对象(就是一个标签div、li等)在内容中如何显示、与周围对象位置关系、以及怎样响应程序或用户产生事件。 这个属性可以被一些css强制激活。...2.可以包含浮动元素,即计算高度时包括其浮动元素 效果如图: ?...本例子中也使用了 overflow: hidden 触发 BFC ,跟上例相似,这利用了 BFC 可以包含浮动元素特性达到元素在 IE 与现代浏览表现统一。...3.背景图像显示问题 元素背景图不能正确显示是网页重构中最常见问题之一了,在 IE 7 及以下 IE 版本中,没有设置高度、宽度元素往往不能显示出背景图(背景色则显示正常),这实际上与 hasLayout

66410

angular浏览兼容性问题解决方案

--- 问题:IE浏览下,在多个tab页中切换,echart所在容器高度坍塌 原因:IE浏览下父元素不能动态调整高度(即通过元素动态改变调整高度) 解决方案:固定echart图表所在容器高度 -...-- 问题:IE浏览下,初始化表单时,触发表单验证 原因:这个是IE问题,IE10+实现了input事件,但是触发时机却是错误。...比如在placeholder改变时,placeholder文字不是英语时候就会触发,Edge15+修复这个问题,但是IE可能永远都不会修复这个问题。...这种方式经验证,最终效果是,初始化表单后,表单输入元素边框闪烁(红色)一下。...,插件需要自己添加到项目文件中(根据angular团队所说,这个插件修复了一个IE10或者IE11bug,但是提交了太多代码,这会给增加现有的应用打包体积,虽然后面关于这个PR讨论了挺久,但是看样子是准备把这个放到

3K30

编写模块化CSS——BEM

接下来,你必须通过覆盖你 元素修复代码(并且可能会在修复中“伤及无辜” )。 ?...现在,这不是你通常看到选择,所以我来解释一下。 第一部分( [class*='button'] )告诉解析查找包含文本 button 所有 class。...同样,我也不能立即知道.button-secondary是否也是修饰符! 很具有讽刺意味,但是这个丑陋语法让我代码更简洁,更易于维护。...他们是: 只把子元素链接到有意义块 创建新块来保存元素 链接孙元素到块 虽然 BEM 建议你将 BEM 元素写作 .block__element ,但它不会规定你 HTML 应如何。...article__title 是 article 元素(或者说是 .article__header 元素,如果你将它们同时表示为 .article 元素,就没有冲突,因为这个表单同时只有他们存在

2.1K70

CSS中常见BUG调试

通常在IE6中出现BUG。非常可能是由于布局缘故而产生,因而修复IE中BUG时候,第一件事就是尝试通过规则迫使元素拥有布局来看是否能修复。...因此能够利用该匿名根元素来讲特定规则应用在IE6及其更低版本号浏览上,如 * html { width: 1px; } 3)应用选择hack 利用选择不被IE老版本号所理解特性。...创建仅仅适用于现代浏览规则 html>body { background-image: url(bg.png); } 仅仅有支持选择浏览才干应用该规则 3、常见BUG及其修复方法 1)双外边距浮动...非浮动元素会被父元素覆盖,又一次载入才会出现。...4)相对定位元素中绝对定位错误——IE6及其更低版本号 bug:相对定位元素中包括绝对定位元素元素定位时參照物不是父元素而是视口。

32110

一文带你梳理React面试题(2023年版本)

react18取消了这个限制,第二次渲染会以浅灰色出现在控制台日志Suspense不再需要fallback捕获支持useId在服务和客户端生成相同唯一一个id,避免hydrating不兼容useSyncExternalStore...它可以帮助应用保持响应,根据用户设备性能和网速进行调整,它通过渲染可中断来修复阻塞渲染机制。...,props元素属性,children元素。...,"lyllovelemon")lyllovelemon// 转义后React.createElement(App,null,lyllovelemon)---React组件为什么不能返回多个元素这个问题也可以理解为...hash模式改变URL以#分割路径字符串,让页面感知路由变化一种模式,通过hashchange事件触发history模式通过浏览history api实现,通过popState事件触发九、数据如何

4.2K122

这是一篇很好互动式文章,Framer Motion 布局动画

如果我们在 play 步骤之前暂停动画,我们可以看到在 inverse 转步骤中出了问题--正方形没有完全与它原始位置对齐: 修复转换起点 我们试着搞清楚这个问题。...缩放变换似乎是这里罪魁祸首--它从正方形中心开始缩放,导致正方形最终出现错误位置。...换句话说,这个错误发生是因为测量距离和变换原点之间差异:getBoundingClientRect()返回元素左上角,而变换原点默认是在元素中心。...有了这个见解,我们也可以通过使用中心之间距离而不是左上角点来解决这个问题。 纠正元素变形 到目前为止,我们已经能够制作一个布局动画,可以无缝过渡到大小和位置变化。...现在让我们增加一个测试--如果我们元素元素会怎样? 如上图可以看到文字大小被改了。我们怎样才能解决这个问题呢? 导致该问题原因还 是inverse 比例变换。

2.4K20

你是否彻底了解margin属性?

——W3School 边界,元素周围生成额外空白区。“空白区”通常是指其他元素不能出现且父元素背景可见区域。...实际工作中,垂直外边距合并问题常见于第一个元素margin-top会顶开父元素与父元素相邻元素间距,而且只在标准浏览下(FirfFox、Chrome、Opera、Sarfi)产生问题,IE下反而表现良好...这个问题发生原因是根据规范,一个盒子如果没有上补白(padding-top)和上边框(border-top),那么这个盒子上边距会和其内部文档流中第一个元素上边距重叠。...一般说来这个问题解释到这里,大多数文章就不会再深入下去了,但作为一名实战开发者,最求是知其然知其所以然,原本使用margin-top就是为了与父元素隔开距离,而按照你这么一个解法,其实是一种“修复”,...为了“弥补修复这个父子垂直外边距合并这个CSS规范“Bug”,而强制在父元素上使用border-top和padding-top,不舒服,也不容易记住,下次再发生这样情况还是会忘记这条准则,而且在页面设计稿里如果不需要

80020

史上最全前端基础面试题,你必须掌握哦!

后将Button1移动到Button2后面 网页中实现一个计算当年还剩多少时间倒数计时程序,要求网页上实时动态显示"××年还剩××天××时××分××秒" 完成一个函数,接受数组作为参数,数组元素为整数或者数组...兼容性IE9+ X:first-child:伪类,选择满足X选择元素,且这个元素是其父节点第一个元素。...兼容性IE7+ X:last-child:伪类,选择满足X选择元素,且这个元素是其父节点最后一个元素。...兼容性IE9+ X:only-child:伪类,选择满足X选择元素,且这个元素是其父元素唯一元素。...(见块级可视化上下文部分) 设置容器元素元素进行清理推荐清理浮动方法 /** * 在标准浏览下使用 * 1 content内容为空格用于修复opera下文档中出现 * contenteditable

1.9K31

自动化测试未来趋势

以Healenium项目为例,看看自动化测试自愈技术是怎么工作: 假设我们通过id 方式来定位应用程序界面上一个按钮,定位应该是:#button 从上图可以看到,元素可以被正确定位到。...Healnium会将正确定位保存下来,作为下一次测试执行基准值。现在,我们假设开发人员变更了应用程序UI界面,改变了这个按钮id属性,从#button变更为#green_button。...那么当我们再次执行脚本时候,在尝试使用#button旧定位去定位按钮时候,脚本就会报错,提示 “NoSuchElement”错误异常。...它采用得分最高定位并使用该定位执行操作。正如我们看到元素被成功找到并通过了测试。...Healenium 使用一种机器学习算法来分析当前网页变化:基于权重最长公共序列算法更多关于这个项目的详情,可以访问这个项目官网:https://healenium.io/ 通过这个案例,我们来对比一下传统自动化测试方式和基于自愈技术自动化测试方式中对象维护差异

1.3K50

【Java 进阶篇】JavaScript DOM 编程:理解文档对象模型

属性(Attribute)是元素特性,如 id、class。 文本(Text)是元素文本内容。 如何访问 DOM 元素? 要访问 DOM 元素,你需要使用 JavaScript。.../移除元素 上面的代码首先获取具有 id 属性为 “parent” 元素,然后创建一个新 元素,并将其作为元素添加到 “parent” 元素中。...添加事件监听 var button = document.getElementById("myButton"); button.addEventListener("click", function()...你可以为按钮、链接或其他元素添加 click 事件监听,以便在用户点击时执行相应操作。...你可以使用这个事件来验证用户输入或执行其他操作,然后阻止表单提交或继续提交。

18620

前端面试指南之React篇(二)

表单如何呈现由表单元素自身决定。如下所示,表单值并没有存储在组件状态中,而是存储在表单元素中,当要修改表单数据时,直接输入表单即可。有时也可以获取元素,再手动修改它值。...主要原因是,约東性组件支持即时字段验证,允许有条件地禁用/启用按钮,强制输入格式等。React 父组件如何调用组件中方法?...从使用者角度而言,很难从使用体验上区分两者,而且在现代浏览中,闭包和类性能只在极端场景下才会有明显差别。所以,基本可认为两者作为组件是完全一致。... 有课前端网 前端技术学习平台;//不建议使用如下方式,在这个案例中会抛出错误。...(componentWillUpdate后经过渲染、计算、再更新DOM元素,最后才调用componentDidUpdate),如果这个时间段内用户刚好拉伸了浏览高度,那componentWillUpdate

2.8K120

原生标签能力你挖掘了多少?

button autofocus 属性可实现聚焦滚动到指定位置 光标会自动定位到该元素上面,不管元素在哪 使用场景:已进入页面的时候需要自动滚动到x位置,你又懒得用js去计算定位 demo:在线编辑失效...事件冒泡,把事件绑定在父元素身上,利用事件冒泡,他元素都可以监听该事件。...基于这个前提,来实现一个,a元素下面的任何一个元素获取到焦点时候,触发事件 tabindex:元素是否可以聚焦,-1表示可以被聚焦,但是不能被tab索引,经常测试大部分元素都是-1.也就是说大部分元素其实都可以有焦点相关事件...我同事再次基础上扩充了一些语法web-template,学习了解一下思路是一个很不错选择,用不用的话,看业务契合度吧 如何用 css 判断浏览类型 用 css 判断这个问题不大,比如filter这个属性只有火狐支持...: right; } } 没想到可以用浏览不支持属性作为浏览判断,这个有优点也有缺点,缺点就是如果哪一天浏览css支持,那就完了,而且要找到这个css属性也不容易 关注原生标签和属性 一个个都是宝

26620

React学习笔记(二)—— JSX、组件与生命周期

这时候就需要用到组件props属性。组件 props用于把父组件中数据或方法传递给组件,供组件使用。 props是一个简单结构对象,它包含属性正是由组件作为JSX标签使用时属性组成。...定义无状态组件除了使用 ES 6 class方式外,还可以使用函数定义,一个函数组件接收props作为参数,返回代表这个组件UI React 元素结构。...如果验证不通过,它应该返回Error对象,而不是`console.warn `或抛出错误。`oneOfType`中不起作用。...//验证器用来验证数组或对象每个值。验证前两个参数是数组或对象本身,还有对应key。...Greeting那么,控制台会出现警告 //传了两个子元素给组件Greeting那么,控制台会出现警告 元素1</span

5.5K20
领券