如何在css中编写可重用类

如何在css中编写可重用类,css,less,Css,Less,这不是这样的问题,我只是想知道我对CSS中可重用类的理解是正确的。在这个例子中,我有两个div。我想给两者都添加一个填充,但值不同。(例如,div one的左边填充为10px,div 2和左边填充为15px)。所以现在我想用一个更少的函数来编写可重用的css类 示例1 <div id="div1" class="small-left-space"> </div> <div id="div2" class="large-left-space"> </di

这不是这样的问题,我只是想知道我对CSS中可重用类的理解是正确的。在这个例子中,我有两个div。我想给两者都添加一个填充,但值不同。(例如,div one的左边填充为10px,div 2和左边填充为15px)。所以现在我想用一个更少的函数来编写可重用的css类

示例1

<div id="div1" class="small-left-space">
</div>

<div id="div2" class="large-left-space">
</div>
示例2

Html


由于使用较少,最好使用可重用的mixin而不是可重用的类。它有几个优点:

  • 如果没有使用mixin,它就不会被编译,也不会出现在生成的CSS中
  • 您的HTML标记是干净的、语义的,没有很多修饰类
  • 您可以使用一个mixin(带有一个参数),其中您可以使用多个CSS类
这就是你制作很棒、干净和可重用代码的方法

例如:

更少的文件,包含mixin:

/* Size */
.box(@value) {
    width: @value;
    height: @value;
}
.bigBox() {
    .box(500px);
}
.mediumBox() {
    .box(300px);
}
.smallBox() {
    .box(100px);
}

/* background-color */
.backgroundColor(@value){
    background-color: @value;
}

/* margin-left */
.leftSpace(@value) {
    margin-left: @value;
}
.smallLeftSpace() {
    .leftSpace(20px);
}
.mediumLeftSpace() {
    .leftSpace(50px);
}
.largeLeftSpace() {
    .leftSpace(100px);
}

#box2 {
    .mediumBox();
    .backgroundColor(blue);
    .mediumLeftSpace();
}
#box3 {
    .smallBox();
    .backgroundColor(green);
    .largeLeftSpace();
}
#box2 {
  width: 300px;
  height: 300px;
  background-color: #0000ff;
  margin-left: 50px;
}
#box3 {
  width: 100px;
  height: 100px;
  background-color: #008000;
  margin-left: 100px;
}
<div id="box2"></div>
<div id="box3"></div>
CSS文件,已生成:

/* Size */
.box(@value) {
    width: @value;
    height: @value;
}
.bigBox() {
    .box(500px);
}
.mediumBox() {
    .box(300px);
}
.smallBox() {
    .box(100px);
}

/* background-color */
.backgroundColor(@value){
    background-color: @value;
}

/* margin-left */
.leftSpace(@value) {
    margin-left: @value;
}
.smallLeftSpace() {
    .leftSpace(20px);
}
.mediumLeftSpace() {
    .leftSpace(50px);
}
.largeLeftSpace() {
    .leftSpace(100px);
}

#box2 {
    .mediumBox();
    .backgroundColor(blue);
    .mediumLeftSpace();
}
#box3 {
    .smallBox();
    .backgroundColor(green);
    .largeLeftSpace();
}
#box2 {
  width: 300px;
  height: 300px;
  background-color: #0000ff;
  margin-left: 50px;
}
#box3 {
  width: 100px;
  height: 100px;
  background-color: #008000;
  margin-left: 100px;
}
<div id="box2"></div>
<div id="box3"></div>
使用HTML标记,不带修饰类:

/* Size */
.box(@value) {
    width: @value;
    height: @value;
}
.bigBox() {
    .box(500px);
}
.mediumBox() {
    .box(300px);
}
.smallBox() {
    .box(100px);
}

/* background-color */
.backgroundColor(@value){
    background-color: @value;
}

/* margin-left */
.leftSpace(@value) {
    margin-left: @value;
}
.smallLeftSpace() {
    .leftSpace(20px);
}
.mediumLeftSpace() {
    .leftSpace(50px);
}
.largeLeftSpace() {
    .leftSpace(100px);
}

#box2 {
    .mediumBox();
    .backgroundColor(blue);
    .mediumLeftSpace();
}
#box3 {
    .smallBox();
    .backgroundColor(green);
    .largeLeftSpace();
}
#box2 {
  width: 300px;
  height: 300px;
  background-color: #0000ff;
  margin-left: 50px;
}
#box3 {
  width: 100px;
  height: 100px;
  background-color: #008000;
  margin-left: 100px;
}
<div id="box2"></div>
<div id="box3"></div>

由于使用较少,最好使用可重用的mixin而不是可重用的类。它有几个优点:

  • 如果没有使用mixin,它就不会被编译,也不会出现在生成的CSS中
  • 您的HTML标记是干净的、语义的,没有很多修饰类
  • 您可以使用一个mixin(带有一个参数),其中您可以使用多个CSS类
这就是你制作很棒、干净和可重用代码的方法

例如:

更少的文件,包含mixin:

/* Size */
.box(@value) {
    width: @value;
    height: @value;
}
.bigBox() {
    .box(500px);
}
.mediumBox() {
    .box(300px);
}
.smallBox() {
    .box(100px);
}

/* background-color */
.backgroundColor(@value){
    background-color: @value;
}

/* margin-left */
.leftSpace(@value) {
    margin-left: @value;
}
.smallLeftSpace() {
    .leftSpace(20px);
}
.mediumLeftSpace() {
    .leftSpace(50px);
}
.largeLeftSpace() {
    .leftSpace(100px);
}

#box2 {
    .mediumBox();
    .backgroundColor(blue);
    .mediumLeftSpace();
}
#box3 {
    .smallBox();
    .backgroundColor(green);
    .largeLeftSpace();
}
#box2 {
  width: 300px;
  height: 300px;
  background-color: #0000ff;
  margin-left: 50px;
}
#box3 {
  width: 100px;
  height: 100px;
  background-color: #008000;
  margin-left: 100px;
}
<div id="box2"></div>
<div id="box3"></div>
CSS文件,已生成:

/* Size */
.box(@value) {
    width: @value;
    height: @value;
}
.bigBox() {
    .box(500px);
}
.mediumBox() {
    .box(300px);
}
.smallBox() {
    .box(100px);
}

/* background-color */
.backgroundColor(@value){
    background-color: @value;
}

/* margin-left */
.leftSpace(@value) {
    margin-left: @value;
}
.smallLeftSpace() {
    .leftSpace(20px);
}
.mediumLeftSpace() {
    .leftSpace(50px);
}
.largeLeftSpace() {
    .leftSpace(100px);
}

#box2 {
    .mediumBox();
    .backgroundColor(blue);
    .mediumLeftSpace();
}
#box3 {
    .smallBox();
    .backgroundColor(green);
    .largeLeftSpace();
}
#box2 {
  width: 300px;
  height: 300px;
  background-color: #0000ff;
  margin-left: 50px;
}
#box3 {
  width: 100px;
  height: 100px;
  background-color: #008000;
  margin-left: 100px;
}
<div id="box2"></div>
<div id="box3"></div>
使用HTML标记,不带修饰类:

/* Size */
.box(@value) {
    width: @value;
    height: @value;
}
.bigBox() {
    .box(500px);
}
.mediumBox() {
    .box(300px);
}
.smallBox() {
    .box(100px);
}

/* background-color */
.backgroundColor(@value){
    background-color: @value;
}

/* margin-left */
.leftSpace(@value) {
    margin-left: @value;
}
.smallLeftSpace() {
    .leftSpace(20px);
}
.mediumLeftSpace() {
    .leftSpace(50px);
}
.largeLeftSpace() {
    .leftSpace(100px);
}

#box2 {
    .mediumBox();
    .backgroundColor(blue);
    .mediumLeftSpace();
}
#box3 {
    .smallBox();
    .backgroundColor(green);
    .largeLeftSpace();
}
#box2 {
  width: 300px;
  height: 300px;
  background-color: #0000ff;
  margin-left: 50px;
}
#box3 {
  width: 100px;
  height: 100px;
  background-color: #008000;
  margin-left: 100px;
}
<div id="box2"></div>
<div id="box3"></div>


+1,虽然说到较少的部分,我会说只有一个属性混合根本没有意义(CSS结果比本例中较少的代码可读性好得多)。+1,尽管谈到较少的部分,我会说只有一个属性混合根本没有意义(CSS结果比本例中更少的代码可读性更强)。