Css 避免重复
我有下面的CSS,它使一个语音泡泡。 它工作得很好。 但我的问题是,我希望页面上有不同颜色的语音泡泡 我将类triangle-border1应用于p标记。当然,内联我只需更改Css 避免重复,css,Css,我有下面的CSS,它使一个语音泡泡。 它工作得很好。 但我的问题是,我希望页面上有不同颜色的语音泡泡 我将类triangle-border1应用于p标记。当然,内联我只需更改边框:5px solid#F7827B到我选择的任何颜色。但是该类使用了不能内联更改的伪元素 因此,我有7个相同CSS类的副本,编号为1-7,唯一的区别是颜色!这似乎是错误的做法 有没有人知道如何在不重复CSS的情况下实现这一点 谢谢 .triangle-border1 { position:relative; pa
边框:5px solid#F7827B代码>到我选择的任何颜色。但是该类使用了不能内联更改的伪元素
因此,我有7个相同CSS类的副本,编号为1-7,唯一的区别是颜色!这似乎是错误的做法
有没有人知道如何在不重复CSS的情况下实现这一点
谢谢
.triangle-border1 {
position:relative;
padding:10px;
margin:1em 0 1em;
border:5px solid #F7827B;
color:#333;
background:#fff;
-webkit-border-radius:10px;
-moz-border-radius:10px;
border-radius:10px;
}
.triangle-border1:before {
content:"";
position:absolute;
bottom:-20px;
left:40px;
border-width:20px 20px 0;
border-style:solid;
border-bottom:0px white solid;
border-bottom-color:transparent;
border-left-color:transparent;
border-right-color:transparent;
border-top-color:#F7827B;
}
.triangle-border1:after {
content:"";
position:absolute;
bottom:-10px;
left:47px;
border-width:13px 13px 0;
border-style:solid;
border-bottom:0px white solid;
border-bottom-color:transparent;
border-left-color:transparent;
border-right-color:transparent;
border-top-color:#FFF;
}
正如我所看到的,最好的方法是在元素上使用不同的类,就像边框颜色一样
。三角形边框{
位置:相对位置;
填充:10px;
边距:1米0 1米;
颜色:#333;
背景:#fff;
边界半径:10px;
}
.三角形边框:之前{
内容:“;
位置:绝对位置;
底部:-20px;
左:40px;
边框宽度:20px 20px 0;
边框样式:实心;
边框底部:0px白色固体;
边框底色:透明;
左边框颜色:透明;
右边框颜色:透明;
}
.三角形边框:后{
内容:“;
位置:绝对位置;
底部:-10px;
左:47px;
边框宽度:13px 13px 0;
边框样式:实心;
边框底部:0px白色固体;
边框底色:透明;
左边框颜色:透明;
右边框颜色:透明;
边框顶部颜色:#FFF;
}
.triangle-border.color1{
边框:5px实心#F7827B;
}
.triangle-border.color2{
边框:5px纯红;
}
.triangle-border.color3{
边框:5px纯蓝色;
}
.三角形边框{
边框:5px纯黑;
}
.三角形边框.颜色1:之前{
边框顶部颜色:#F7827B;
}
.三角形边框.颜色2:之前{
边框顶部颜色:红色;
}
.三角形边框.颜色3:之前{
边框顶部颜色:蓝色;
}
.三角形边框.颜色4:之前{
边框顶部颜色:黑色;
}
正如我所看到的,最好的方法是在元素上使用不同的类,就像边框颜色一样
。三角形边框{
位置:相对位置;
填充:10px;
边距:1米0 1米;
颜色:#333;
背景:#fff;
边界半径:10px;
}
.三角形边框:之前{
内容:“;
位置:绝对位置;
底部:-20px;
左:40px;
边框宽度:20px 20px 0;
边框样式:实心;
边框底部:0px白色固体;
边框底色:透明;
左边框颜色:透明;
右边框颜色:透明;
}
.三角形边框:后{
内容:“;
位置:绝对位置;
底部:-10px;
左:47px;
边框宽度:13px 13px 0;
边框样式:实心;
边框底部:0px白色固体;
边框底色:透明;
左边框颜色:透明;
右边框颜色:透明;
边框顶部颜色:#FFF;
}
.triangle-border.color1{
边框:5px实心#F7827B;
}
.triangle-border.color2{
边框:5px纯红;
}
.triangle-border.color3{
边框:5px纯蓝色;
}
.三角形边框{
边框:5px纯黑;
}
.三角形边框.颜色1:之前{
边框顶部颜色:#F7827B;
}
.三角形边框.颜色2:之前{
边框顶部颜色:红色;
}
.三角形边框.颜色3:之前{
边框顶部颜色:蓝色;
}
.三角形边框.颜色4:之前{
边框顶部颜色:黑色;
}
您需要将css拆分为两个不同的类。一个用于形状,一个用于颜色:
<div class="triangle-border1 triangle-color1"></div>
在第二个类中,您可以覆盖现有CSS类中的任何属性。您需要将CSS拆分为两个不同的类。一个用于形状,一个用于颜色:
<div class="triangle-border1 triangle-color1"></div>
在第二个类中,您可以覆盖现有CSS类中所需的任何属性。使用CSS变量如下:
。三角形边框{
位置:相对位置;
填充:10px;
边距:1米0 1米;
颜色:#333;
背景:#fff;
边界半径:10px;
边框:5px实心变量(-c,#fff);
}
.三角形边框:之前{
内容:“;
位置:绝对位置;
底部:-20px;
左:40px;
边框宽度:20px 20px 0;
边框样式:实心;
颜色:透明;
边框底部:0px白色固体;
边框顶部颜色:var(-c,#fff);
}
.三角形边框:后{
内容:“;
位置:绝对位置;
底部:-10px;
左:47px;
边框宽度:13px 13px 0;
边框样式:实心;
颜色:透明;
边框底部:0px白色固体;
边框顶部颜色:#fff;
}
像这样使用CSS变量:
。三角形边框{
位置:相对位置;
填充:10px;
边距:1米0 1米;
颜色:#333;
背景:#fff;
边界半径:10px;
边框:5px实心变量(-c,#fff);
}
.三角形边框:之前{
内容:“;
位置:绝对位置;
底部:-20px;
左:40px;
边框宽度:20px 20px 0;
边框样式:实心;
颜色:透明;
边框底部:0px白色固体;
边框顶部颜色:var(-c,#fff);
}
.三角形边框:后{
内容:“;
位置:绝对位置;
底部:-10px;
左:47px;
边框宽度:13px 13px 0;
边框样式:实心;
颜色:透明;
边框底部:0px白色固体;
边框顶部颜色:#fff;
}
这绝对是我想要的!我一直在寻找减少重复代码行的方法,这太棒了!我不知道CSS变量,但我现在将广泛使用它们!非常感谢。@Jack和CSS变量的神奇之处在于,您可以在pseudo元素上放置属性;)不幸的是,WKHTMLTOPDF不支持CSS变量,所以对于这个特定的项目,我不得不列出所有CSS。。。但肯定是用这个来做其他事情。这绝对是我要找的地方!我一直在寻找减少重复代码行的方法,这太棒了!我不知道CSS变量,但我现在将广泛使用它们!非常感谢。@Jack和CSS变量的神奇之处在于,您可以在pseudo元素上放置属性;)遗憾的是,CSS变量不是supper