我希望能够将当前的BODY css更改为万圣节的CSS主题。问题是我的.Net页面是模板。必须有一种方法可以让body类检查是否存在CSS主题覆盖?
我可以通过这样的方式来改变主题:
CSS:
/* standard theme */
body {
background-color: white;
font-color: #000;
}
/* halloween theme css */
body.halloween {
background-color: black;
font-color: #666;
}
然后将其置于HEAD的可编辑区域:
<%
'CSS Theme overwrite - uncomment if required
cssTheme = "halloween"
%>
我的身体标签
<body class="<%=cssTheme%">
content........
</body>
我已经尝试过以上但是它没有用。
我是否需要附加到<body>
的函数doOnLoad()来检查cssTheme并应用(如果有的话)?
答案 0 :(得分:0)
是的,你可以这样做 - CSS中的“C”代表级联,这意味着你可以用更具体的定义覆盖样式表的某些元素。
下面使用div
进行了说明,但与body
或HTML中的任何其他元素的工作方式相同。 (注意:javascript是无关紧要的,只是用于添加CSS类Halloween
,您将看到它定义了不同的表示规则。)
$('button').click(function(){
$('div').addClass("halloween");
});
div{
background-color:grey,
color:Black
}
div.halloween{
background-color:black;
color:orange
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
Content here
</div>
<button>make halloween</button>
答案 1 :(得分:-1)
- c#
的示例 void Application_PostReleaseRequestState(object sender, EventArgs e)
{
if (Response.ContentType == "text/html")
Response.Filter = new myFilter(Response.Filter);
}
class myFilter:System.IO.MemoryStream
{
private System.IO.Stream outputStream =null;
public myFilter(System.IO.Stream output)
{
outputStream = output;
}
public override void Write(byte[] buffer, int offset, int count)
{
var contentInBuffer = System.Text.UTF8Encoding.UTF8.GetString(buffer);
//change the .css here
contentInBuffer = contentInBuffer.Replace(@"MainDesign.css", @"MainDesign_hallow.css");
outputStream.Write(System.Text.UTF8Encoding.UTF8.GetBytes(contentInBuffer), offset, System.Text.UTF8Encoding.UTF8.GetByteCount(contentInBuffer));
}
}