尝试在动态生成的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 ?(这是我做错了,还是一个已知的问题?)

尝试在动态生成的HTML标记上应用样式属性

正如Zack T.建议的那样,您可以使用他展示的方法应用样式:

someHtmlString = String.Format("<li id='{0}_{1}' class='listItem'>{0}</li>", item, counter);

现在你又抱怨这些款式不适用了。为此,您需要检查这些定义是否在HTML的Head标记中的Style标记下呈现。或者到外部CSS文件的链接应该放在Head标记内。 下面的示例代码片段
<html>
<head>
<style type="text/css">
    .listItem
    {
        background-color:Red;
    }
</style>
</head>
<body></body>
</html>