我想在运行时访问外部.css文件中定义的网站的一些CSS属性。我发现有一种方法可以在代码隐藏中以编程方式设置css属性,但我没有遇到任何方法来读取已定义的属性。 (我正在使用C#)
答案 0 :(得分:4)
您只能使用客户端脚本“在运行时”阅读它们。
使用jQuery非常简单,然后您可以使用AJAX将值发送到服务器,然后处理或存储以供以后使用。
如果它是有效选项让我知道,我可以发布我的意思的基本例子。
首先,使用HTML:
<div class="mydiv" id="testDiv">I'm red</div>
<button type="button" id="testButton">Test</button>
CSS:
<style type="text/css">
.mydiv { background-color: red; }
</style>
现在你必须包含jQuery:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
最后有了这个JS代码:
<script type="text/javascript">
$(document).ready(function() {
$("#testButton").click(function() {
var oDiv = $("#testDiv");
var sColor = oDiv.css("background-color");
$.get("TestZone.aspx?cssvalue=" + sColor);
alert("value has been sent");
});
});
</script>
这将在单击按钮时将测试div
的运行时背景颜色发送到服务器,并且在TestZone.aspx
后面的代码中,您可以处理该值。该示例通过查询字符串发送它,如果您愿意,可以将其作为POST数据发送。
答案 1 :(得分:0)
这是在后面的代码中获取display
的{{1}}值的方法:
aWebControl
答案 2 :(得分:0)
ASP.NET 仅处理页面本身的标记。
您可以使用WebControl.Style
属性以编程方式获取或设置内联样式(使用style
属性使用元素内联声明的CSS)。这将为您提供一组名称/值对,表示该元素的内联样式。
control.Style["font-family"] = "Verdana";
内联样式被认为是非常不愉快的,所以除非你有充分的理由,否则不要使用它们。
页面的任何外部,您无法本机访问ASP.NET。本质上,外部样式表仅由呈现页面的浏览器加载,并且不由ASP.NET运行时处理,因此您没有机会检查它们。
如果要解释这些文件,则需要手动加载它们并使用CSS解析器解析它们。看看这个问题可能的解决方案: