我有一个样式表和很多具有相同边框颜色的样式(确切地说#CCCCCC
)。
有没有办法指定某种变量并重用它,所以不要反复输入#CCCCCC
,我可以输入:
border: 1px solid $bordercolor;
P.S。我正在使用ASP.NET MVC。
答案 0 :(得分:24)
.classA, .classB, .classC {
border-color: #CCC;
}
.classA {
border-width: 1px;
border-style: solid;
}
...
但是你不能再使用简写语法来定义边框了。
答案 1 :(得分:11)
元素可能分配了多个类。因此,您可以创建一种样式来定义边框颜色,并将其与其他类一起用于其他属性:
.bordercolor { border-color:#CCCCCC; }
<div class="bordercolor otherstyle">
答案 2 :(得分:10)
不是我知道的,但您可以从.NET页面生成CSS。
然后用
调用它StyleSheet.aspx看起来像
<%@ Page Language="C#" %>
H1
{
background-color:<%= MyColourVariable %>;
}
答案 3 :(得分:8)
答案 4 :(得分:7)
你无法在CSS中真正定义变量,但是你可以通过几种方式完成你的工作。首先,您可以将多个类应用于元素,并在其自己的类中保留颜色。
.myBorderColor { border-color: #000000; }
.myOtherClass { font-weight: bold; }
<div class="myBorderColor myOtherClass">content</div>
另一种选择是实际级联您的样式,因此应用了超过1个块。
div.a { font-weight: bold; }
div.b { color: #cccccc; }
div.a div.b { border-color: #000000; }
这样你仍然可以从一个地方控制你的颜色。
答案 5 :(得分:4)
我想你可能指的是CSS variables。不幸的是,他们得不到很好的支持。
答案 6 :(得分:3)
您可以将CSS作为带有text / css类型的php文件提供。然后,您可以使用所需的所有PHP变量。这适用于每个浏览器。这是一个例子:
答案 7 :(得分:2)
许多人已经完成了HttpHandlers,它为CSS添加了变量支持。基本上,HttpHandler负责在客户端看到CSS之前用它们的值替换变量。例子包括:
这肯定会奏效。我没有在我的任何应用程序中尝试过,所以我不能谈论性能影响。
答案 8 :(得分:1)
答案 9 :(得分:1)
我也在考虑T4模板。 它只是我认为的Visual Studio,所以它不是最通用的方式,但我想我会分享它。
<#@ template inherits="Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation" language="C#v3.5" debug="true" hostSpecific="true" #>
<#@ output extension=".css" #>
<# string font = " font-family: Verdana, Helvetica;\n\tfont-size: 11px;";#>
body {
<#= font #>
}
table.Bid {
background-color:red;
<#= font #>
}
这会生成一个包含以下内容的test.css文件:
body {
font-family: Verdana, Helvetica;
font-size: 11px;
}
table.Bid {
background-color:red;
font-family: Verdana, Helvetica;
font-size: 11px;
}
答案 10 :(得分:0)
您可以为父标记设置边框样式。例如,如果#content中的每个元素都使用此边框属性,则可以将所需的边框样式应用于#content本身。
答案 11 :(得分:0)
扩展颜色内的样式定义
LE:参见KennyTM的样本
答案 12 :(得分:0)
在Rails中,这对我很有用:
http://unixgods.org/~tilo/Ruby/Using_Variables_in_CSS_Files_with_Ruby_on_Rails.html
也许你可以为.NET框架编写类似的预处理器..?