尝试在动态生成的HTML标记上应用样式属性
本文关键字:应用 属性 样式 HTML 动态 | 更新日期: 2023-09-27 17:49:21
在动态生成的Html标记上不能使用硬编码(标准)css样式设置,这是一个已知的问题吗?
在一个项目中,我目前正在工作,我正在生成html标记,针对每个元素说一个未排序的列表项(…来源为数据库查询结果)
为了说明目的,我只是画出这个想法,我认为这已经做了很多…
collection = some sql query results returned as `List<string>` type
counter = 0
foreach item in collection
someHtmlString = String.Format("<li id='{0}_{1}'> {0}</li> ", item, counter)
counter ++
所以对于进入for/foreach循环的每个项目,我都制造一组特定的css和html属性,通常它被划分为进入循环的列表项目的子集,就像你通常在这种情况下为每个元素分配一个类一样,所以碰巧我有堆属性,随着更具体的设计而增长,甚至更多。其他属性作为javascript事件,但主要是样式,
假设有10个CSS属性,设置3或4种类型的设置,这意味着看到我的代码中的足迹不再那么有趣了
和一个步骤之前,我现在可以认为只是从一个文件(使用System.IO
), 我确实尝试应用这些属性,通过他们属于的地方,在一个样式。css文件,但我可以注意到,这些样式属性不能应用从一个style.css
代码/文件生成的代码,而不是硬编码的html标记。
所以我想知道,如果你想避免代码后面的一堆行,除了从一个分隔的文件中读取它(像我能想到的逗号分隔),然后解析它,有什么选择:
说一个txtfile -每一行都是属性, 值。
就像在字典中一样,所以你可以直接从文件中读取/加载到代码中,
dictionary<string, string> StyleDict = new dictionary<string, string>();
styleDict.add(styleProperty, some value);
...etc' (10 lines like this, x 3 or 4 times , as each could be a css class i could use)
我想我已经没有想法了,什么是正确的方式来应用样式生成的HtmlMarkup ?(这是我做错了,还是一个已知的问题?)
正如Zack T.建议的那样,您可以使用他展示的方法应用样式:
someHtmlString = String.Format("<li id='{0}_{1}' class='listItem'>{0}</li>", item, counter);
Head
标记中的Style
标记下呈现。或者到外部CSS
文件的链接应该放在Head
标记内。
下面的示例代码片段<html>
<head>
<style type="text/css">
.listItem
{
background-color:Red;
}
</style>
</head>
<body></body>
</html>