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

CSS个div内两个子元素的高度自适应

3-1-2019更新:使用flex布局,align-items:flex-start即可。 ---- 设想这样个情况:个父元素两个子元素,父元素的高度不确定,用子元素撑起来。...但是这会导致个问题:各个子元素的高度不致,为子元素添加height:100%是无效的。这种方式需要父元素高度确定,然而父元素的高度由子元素确定。...你可以 为父元素设置固定高度 配合height:100%,两个子元素都能撑满父元素 利用span元素与布局 如果span的定位是absolute类型,那么它的高度可以等于父元素的高度。...这种方法需要避免span元素与其他元素重合,需要留出span的位置,将span放到位置。...这种方法下,父元素的高度仍然由最高的相对定位的子元素确定,其它元素放到span中,所以需要知道最高的子元素使用同色背景 虽然很简单,却很实用的方法。子元素的高度虽然不都是100%,但效果样。

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

以及伪元素使用小技巧

浏览器版本越来越高的情况下,很多以前顾及到兼容问题不敢使用的html以及css属性现在已经很普遍的使用了。比如些伪和伪元素。这里稍微提实际工作中用到的些小技巧,算是笔记。...1.focus,chenked伪使用。....checkbox-wrap input:checked + label span{background-position: 0 -20px;} input的checked状态下改变span元素的背景图片...2.还有after个这么强大的伪对象,以前竟然只是被用作清除浮动,实在是大材小用暴殄天物。看下面这个demo,就是使用after和befor这对好基友,来实现切换标签的current状态小尖角。...原理非常简单,利用border的展示特性制造两个实心尖角,嵌套之后得来个空心(其实是实心的只是前景色与背景色样。)

90390

编写模块化CSS——BEM

BEM 使用 .form 而不是 元素的原因是因为 允许无限的可重用性,而即使是最基本的元素也可能改变样式。 按钮很好地阐释了可以包含不同样式的块。...如果设置了个 .button 的按钮,则可以在任何 元素上选择是否使用 .button 。...(BEM 元素具有 .block__element 语法)。 在这,你仍然可能不喜欢 BEM 丑陋的 --modifier 语法。我知道为什么,但我爱上这个语法是因为我很讨厌命名。...所以,如果你看到个像那样的名字,比如 form__row ,你将立即知道 .form 块中有个 row 元素。 ? ? BEM 元素两个优点 : 你可以让 CSS 的优先级保持相对扁平。...你能立即知道哪些东西是个子元素。 为了解释以上两点,考虑使用两个单独的 class 的替代方法(许多框架这么做的)。你可能会用这样的东西: ? ?

2.1K70

这些 CSS 命名规范将省下你大把调试时间(文末有福利)

如果使用 BEM 命名规范的话,这些元素名都可以通过两条下划线后加上元素名称来产生。...现实场景里,这可能是个 red 或者 blue 的按钮。这就是之前讲的组件当中的限定修饰。 如果使用 BEM 的话,这些修饰符的名都可以通过两条连字符后加上元素名来产生。...假如我们这个火柴人拥有另个不样的头部大小呢? 元素被加上了修饰符。记住,元素个整体封装区块中的个子组件。...这就是 BEM 的基本用法。 个人来说,我小项目中般只用连字符分割法来写名,在用户界面更复杂的项目中使用 BEM 方法。 为何要使用命名规范?...使用 js- 种减少这类 bug 的方法是使用 js- 的名命名方法。用这种方法来表明这个 DOM 元素和 JavaScript 代码的关联。

908100

CSS规范--BEM入门

但是,如果只是“看起来有点怪”而事实种有效的手段,那么我们开发之前当然应该充分考虑它。是,BEM看上去确实怪怪的,但是它的好处远远超过它外观的那点瑕疵。...这个例子中,网站logo完全是恰巧.header的内部,它也有可能在侧边栏或是页脚里面。元素的范围可能开始于任何上下文,因此你要确定只在你需要用到BEM的地方你才使用它。...如果它是后者(即恰巧.content的内部,而不总是)我们就不需要使用BEM。 然而,切都有可能潜在地用到BEM。...关于原子类(短)与BEM BEM可以不需要用到原子类,但是如果已经引入了类似Bootstrap的框架,也没必要强制避免使用原子类,比如pull-right、ellipsis、clearfix等等,这些非常实用...如果我们用的是BEM,要覆盖样式很简单:找到要覆盖样式的元素,得知它的名,媒体查询中,用它的名作为选择器,写下覆盖样式,样式就覆盖成功了,不需要担心前面样式的权重过大。

1.1K20

从element-ui源码来看BEM实现

以前看过些CSS的编码规范,也照着规范编写代码,但是还是觉得自己的CSS编码风格不是很好,平时开发中使用各个知名的组件库的时候,发现现在挺多组件库都是BEM的命名风格了,于是找了比较知名的element...BEM代表“块(block),元素(element),修饰符(modifier)”,开发组件的过程中经常使用这三个实体,而在选择器中,这三个实体由以下符号来表示扩展关系: - 中划线:仅作为连字符使用...,表示某个块或者某个子元素的多单词之间的连接记号。...,我们应该把关注点放在if和eles分支,为什么会出现hitAllSpecialNestRule函数判断的分支,原因是修饰符或者其他mixin中嵌套元素element,会出现修饰符在前,而元素在后的编译结果...利用刚刚介绍的函数,以及块、元素、修饰符的实现代码,sass中已经能非常高效率并且优雅的基于BEM规范的代码了。

1.9K30

两种 CSS 方法论 「详细分析」

块(Block):个块是视觉或者语义个整体,它是个具体且唯元素,例如,页面上的个弹窗,或者是个搜索框; 元素(Element):般认为是块的组成部分,元素比较用它父级的块名称做为前缀...通过上面的示例可以看出,块与元素是通过两个下划线(__)连接的,而元素和修饰符之间是通过两个短横线(--)连接的。...,修饰符名称同样使用小驼峰规则来命名,并且和组件名直接需要用两个短横线(--)进行连接,这与 BEM 表现致。...SUIT CSS 可以说 BEM 的基础上进行了改进,特别是去除了双下划线的设计,观感就比 BEM 美观了许多,而且各种名称都是通过驼峰的方式命名,省略了部分短横线,这让 SUIT CSS 的名的长度上也会比...状态规则 状态是用来描述模块不同状态下的外观,使用 is- 前缀,这有助于我们 HTML 中区分元素的状态。

93810

如何写出套可维护的CSS库?

规则 BEM的命名模式社区中有着不同方式,以下为 Yandex 团队所提出的命名规则为(本文中的代码使用该规则): ....每个块名前应增加个前缀,这前缀 CSS 中有命名空间(如:m-、u-、分别代表:mod 模块、ui 元件)。每个块逻辑和功能上都相互独立。...同类型的块,显示可能会有定的差异,所以不要定义过多的外观显示样式,主要负责结构的呈现。这样就能确保块不同地方复用和嵌套时,增加其扩展性。综上所述,最终我们可以把BEM规则最终定义成: ....例:header title、menu item、list item 规则 元素名需能简单的描述出,其结构、布局或意义,并且语义与块相关联。块与元素之间用__连接。不能与块分开单独使用。...情景 search 组件中包含 input 和 button,是列表中的个子元素

69530

浅谈 Css 规范

块(block)是 BEM 的核心部分,它定义了个 HTML 元素的基本结构和行为。块可以使用大写字母命名,例如 .Header、.Main、.Footer 等。...缺点: 不适合小项目: 小型项目不定需要可扩展性、可读性和可维护性。 增加的数量: 您可能需要将多个添加到元素以说明所有样式元素。...这可能会给不熟悉 OOCSS 的人带来些困惑,并且会使您的标记变得混乱。 学习成本: 如果您正在使用 OOCSS 而您的同事不熟悉它,这将需要他们继续之前学习如何使用它,这需要时间。...无语义化的名: 根据两个核心的分离原则,我们代码中不可能会出现 .btn 这样名搞定样式的情况,我们只会拆分的很细,但同时我们又需要 .btn 这样的业务名。...命名规则 SMACSS 推荐使用前缀来区分不同部件: 基础规则是直接作用于元素的,因此不需要前缀,使用元素、属性、伪等选择器。不应该出: class、ID、!important 等。

6510

关于BEM的反思

反思BEM “学习爱BEM”中,我要表明我对BEM语法的新感受。 我很高兴地报告说,经过2年以上,我仍然对我的选择感到满意。 当我们项目中选择代码风格时,我们使用BEM和ITCSS的组合。...怎么处理孙子元素个是“孙子”的概念,它不是“标准BEM”的部分(如果有这样的话): .component /* Component */ .component...我的经验告诉我,这导致不必要的长名(BEM已经有错,并且没有必要尝试CSS中反映HTML的结构。 解决这个问题花了我很长段时间。 CSS中反映HTML的底层结构似乎是个干净的想法。...如果你发现你的结构太深,你可能需要定义个新的组件。 缩短修饰符长度 BEM中,修饰符两个连接符表示。 例如,我们有个带有基c-button的按钮。...举个例子:如果你的命名为c-button--large,如果你想去除它,你可以项目中包括javascript,html, css中搜索使用到这个字符串的地方。 使用这种方法,你能寻找到什么?

60520

「前端工程四部曲」模块化的前世今生(下)

BEM 就不样了,虽然看上去很丑,但我们能清晰地看到有个叫 .site-search 的块,它内部是 .site-search__field 和 site-search__button 两个元素。...AM 是使用 HTML 属性及其值而非样式元素的技术。这样每个属性都可以有效地声明个单独的命名空间来封装样式信息,从而使 HTML 和 CSS 更具可读性和可维护性。...使用 Tailwind CSS 后的代码就像下面这样,每个块元素通过很多的 CSS 来定义样式,基本不需要我们自己定义,即使有,也只需要写很少部分额外的 CSS 代码,当然,也可以对 Tailwind...而 CSS Modules 则会将两个 class 名字通过 JS 手段编译最终生成两个不同的 class 名附加到元素从而避免样式冲突,相当于为 CSS 搞了个作用域。...So,我想说的是,如果你的团队 CSS 问题如上,那就赶紧行动起来吧,现代的 CSS 模块化方案之上再使用些像 BEM、ACSS 等约束来把 CSS 规范起来,简单省事,利大于弊。

69620

大型项目中组织CSS

Peergrade.io 处理CSS的方式 法则:(给名)加上前缀 Peergrade.io我们在所有名中用了前缀 .pg 。CSS代码库里不使用前缀是自找麻烦。...在你写它的时候你可能认为.profile-description里只会有个列表,但一两个月后你发现不得不需要另外个列表,页面结构很快超出你的设想。...法则三:采用BEM命名来开发组件 构建可隔离组件时,尽可能采用BEM命名方案给命名。...这就允许我们只要指定区块的修饰符——也就是正在编辑的内容—— 不用在区块内的所有子元素重复修饰符(BEM中的E)。...为了更好地理解类似BEM的命名方式,前往查看Harry Roberts的CSS指南的BEM命名部分。(需要提到的是,我们发现Harry实际建立了套跟我们类似的命名方案。)

77220

CSS命名规范之BEM-源自Yandex的CSS命名方法论

BEM即块(Block)、元素(Element)、修饰符(modifier),是由著名的俄罗斯搜索引擎团队Yandex提出的种前端命名方法论。...hand是表示指针(英文hand有钟表指针的含义)还是只正在玩指纸牌的手呢?使用BEM我们可以获得更多的描述和更加清晰的结构,并且通过命名我们就可以知道元素之间的关联。代码如下: <!...使用BEM记号法后就是下面的代码: <input type="submit" class...BEM看上去有些怪怪的,但是它的好处远远超过外观的瑕疵BEM有可能导致输入更长的文本,但是大部分编辑器都有代码自动补全的功能,而且gzip压缩将会让我们消除对文件体积的担忧 更多干货笔记关注微信公众号

93010

如何使用CSS命名规范提高您的编码效率

元素(Element):元素是块的部分,不能独立存在,因为它依赖于父元素的定义。它是个子块,前缀为双下划线(__)以表示其关系。假设我们正在构建个带有标题、描述和图像元素的卡片组件。...旨在使目了然,并且可以确定元素可以在哪里使用以及与其他元素的关系。...使用BEM,我们还可以CSS中编写样式时表示元素是特定的子元素。...这是为了参考目的,并在新成员入职时作为指南使用。 标准化命名和前缀:采用统的命名约定(例如,BEM的块名称或原子CSS)应该在整个项目中标准化,并保持致性。...应鼓励开发人员从开始就将CSS命名规范融入到他们的开发工作流程中。通过以良好组织和经过深思熟虑的名为基础,开发团队可以建立坚实的基础,减少潜在的错误和冲突,同时促进致的编码风格。

28130
领券