>您正在启动一个新的Web项目,并正在寻找一种新的CSS方法,该方法将帮助您扩展代码。提供了越来越多的用于编写模块化CSS的技术,包括SMACS,BEM和许多其他类似的方法,所有方法都是基于面向对象的CSS(OCS)的。如您所见,有很多编写和组织CSS的技术。
,重复的代码较少:助手类(也称为实用程序类)。 这个概念是在Thierry Koblentz上有关Smashing Magazine的文章中进行了讨论的,但我想我会用自己的话来解释这种方法。
钥匙要点通过创建一组可以在HTML元素上反复使用的抽象类,可以通过创建一组抽象类来帮助删除CSS中的重复。这使得代码更加重复使用,可扩展以使以后的添加。
>让我们看看一个简单的示例,说明什么实用程序类别以及如何使用它们。查看以下代码片段:
>在这里,我们创建了一组CSS规则,在构建新组件时,我们可以在以后使用这些规则。例如,如果您想对左边的某些内容对齐,则可以使用文本左类。同样,您可以使用左或右类以沿所需方向浮动元素。>
让我们看看一个需要以其内在内容为中心的框的框架的示例。
。
我们通常会做这样的事情:
><span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
>使用此CSS:
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
如果要更改浮点并对齐方向,而不是在不可重用的.box类上进行此操作,则可以使用其他助手类:
网格系统是使用辅助类别的一个很好的例子。这是Foundation网格的一个示例:
<span><span>.box</span> { </span> <span>float: left; </span> <span>text-align: center; </span><span>}</span>
基础提供了许多可以使用和组合在一起的类,以创建一个具有不同宽度的网格系统,适合不同的屏幕尺寸。这种灵活性可帮助开发人员更快地创建新的自定义布局,而无需为网格本身编辑任何CSS。例如:
<span><span><span><div</span> class<span>="left text-center"</span>></span> </span><span><span><span></div</span>></span></span>
> .small-2和.large-4类将根据屏幕大小设置元素的宽度。
我们首先为我们的设计定义一个基本空间单元的变量(使用SASS)。让我们从1EM开始,最重要的是,我们可以为不同的空间尺寸创建类。
选择适合您和您的团队的方法。长名称显然会使您的HTML元素更大,但是与短名称相比,它们更可读,因此您可能需要查看您的CSS来弄清楚事物的工作原理。
宽度和高度
<span><span><span><div</span> class<span>="right text-right"</span>></span> </span><span><span><span></div</span>></span></span>
>
<span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="small-2 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-4 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-6 large-4 columns"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span></span>
和CSS:
<span><span>$base-space-unit: 1em;</span> </span> <span>// Top margin </span><span>.margin-top-none { margin-top: 0; } </span><span>.margin-top-quarter { margin-top: $base-space-unit / 4; } </span><span>.margin-top-half { margin-top: $base-space-unit / 2; } </span><span>.margin-top-one { margin-top: $base-space-unit; } </span><span>.margin-top-two { margin-top: $base-space-unit * 2; } </span> <span>// Top padding </span><span>.padding-top-none { padding-top: 0; } </span><span>.padding-top-quarter { padding-top: $base-space-unit / 4; } </span><span>.padding-top-half { padding-top: $base-space-unit / 2; } </span><span>.padding-top-one { padding-top: $base-space-unit; } </span><span>.padding-top-two { padding-top: $base-space-unit * 2; }</span>
,但我们可以通过一个称为全高的类减少所有这些:
<span><span>.m0</span> { margin: 0 } </span><span><span>.mt0</span> { margin-top: 0 } </span><span><span>.mr0</span> { margin-right: 0 } </span><span><span>.mb0</span> { margin-bottom: 0 } </span><span><span>.ml0</span> { margin-left: 0 }</span>
>位置和z index
与位置相关的属性可以与其他属性(例如Z-Index创建复杂的布局)结合使用。我们可以创建一组类,以设置与视口或祖先元素相关的任何元素的确切位置(右,左,左上等):<span><span><span><div</span> class<span>="contact-section"</span>></span> </span> <span><!-- Content here... --> </span><span><span><span></div</span>></span></span>
“ PIN”助手类是受Mapbox的CSS启发的。
>让我们扩展全高示例,以包含位于右下角的元素。
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
通过组合多个类,我们可以在更少的代码中获得所需的结果。如果要将内部元素放置在右上角,则可以使用销钉右上方而不是销钉右右。您可能已经在上面的代码中注意到了我还添加了另一个辅助类别:填充一类可确保元素不会齐平与容器或视口的边缘齐平。
浮动元素
demo
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
对齐元素
可见性类
<span><span>.box</span> { </span> <span>float: left; </span> <span>text-align: center; </span><span>}</span>
和我们的html:
>
<span><span><span><div</span> class<span>="left text-center"</span>></span> </span><span><span><span></div</span>></span></span>
我们还可以使用这些类来控制触摸设备上的元素:
<span><span><span><div</span> class<span>="right text-right"</span>></span> </span><span><span><span></div</span>></span></span>
可见性课程的一个很好的例子是基金会和自举的响应式实用。
版式
<span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="small-2 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-4 large-4 columns"</span>></span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="small-6 large-4 columns"</span>></span><span><span></div</span>></span> </span><span><span><span></div</span>></span></span>
颜色
>让我们看看如何将其翻译成代码。首先,让我们用sass定义我们的变量:
<span><span>$base-space-unit: 1em;</span> </span> <span>// Top margin </span><span>.margin-top-none { margin-top: 0; } </span><span>.margin-top-quarter { margin-top: $base-space-unit / 4; } </span><span>.margin-top-half { margin-top: $base-space-unit / 2; } </span><span>.margin-top-one { margin-top: $base-space-unit; } </span><span>.margin-top-two { margin-top: $base-space-unit * 2; } </span> <span>// Top padding </span><span>.padding-top-none { padding-top: 0; } </span><span>.padding-top-quarter { padding-top: $base-space-unit / 4; } </span><span>.padding-top-half { padding-top: $base-space-unit / 2; } </span><span>.padding-top-one { padding-top: $base-space-unit; } </span><span>.padding-top-two { padding-top: $base-space-unit * 2; }</span>
>在Mapbox和Google Web Starter套件项目中找到了使用颜色和背景辅助类别的两个好示例。
<span><span>.m0</span> { margin: 0 } </span><span><span>.mt0</span> { margin-top: 0 } </span><span><span>.mr0</span> { margin-right: 0 } </span><span><span>.mb0</span> { margin-bottom: 0 } </span><span><span>.ml0</span> { margin-left: 0 }</span>
>
<span><span><span><div</span> class<span>="contact-section"</span>></span> </span> <span><!-- Content here... --> </span><span><span><span></div</span>></span></span>
>列表
>
<span><span>.left</span> { float: left; } </span><span><span>.right</span> { float: right; } </span> <span><span>.text-left</span> { text-align: left; } </span><span><span>.text-right</span> { text-align: right; } </span><span><span>.text-center</span> { text-align: center; }</span>
辅助类可用于将边界添加到一个元素中,无论是针对各个方面还是一侧。因此,您的CSS/SASS可能看起来像这样:
<span><span><span><div</span> class<span>="box"</span>></span> </span><span><span><span></div</span>></span></span>
以下辅助类别使我们能够使用CSS的显示属性的不同值:
<span><span>.box</span> { </span> <span>float: left; </span> <span>text-align: center; </span><span>}</span>
遵循这一抽象原则可能与您习惯于创作CSS时的方法有很大不同。但是根据我的经验,我可以说这是您下一个项目的一个很好的方法。
相关库链接
mapbox styleguide - base.css
}
然后,您可以将此类应用于任何HTML元素以将其文本中心。
>我可以在单个元素上使用多个辅助类吗?一个HTML元素。这使您可以组合不同的样式和效果,而无需为每种组合创建一个单独的类。例如,如果您有用于中心文本和更改其颜色的助手类,则可以在这样的同一元素上使用两者:
这是一些文本。
>>我如何使用助手类来提高我的生产力?在编写CSS时,帮助人课可以显着提高您的生产力。通过将常见样式封装在可重复使用的类中,您可以减少编写所需的代码量,并使样式表更易于管理。这可以节省大量时间,尤其是在较大的项目上。此外,辅助课程可以帮助您保持设计的一致性,因为它们确保以相同的方式在不同元素和组件中使用相同的样式。
辅助类可以在扩展CSS代码方面起关键作用。通过在可重复使用的类中封装常见样式,您可以轻松地在不同的元素和组件上应用这些样式。这使您的代码更加模块化,可扩展,因为您可以添加,删除或修改样式而不会影响代码的其他部分。此外,随着项目的增长,辅助类可以帮助您保持设计的一致性。
>以上是使用助手类干燥和扩展CSS的详细内容。更多信息请关注PHP中文网其他相关文章!