如何在字符串中使用HTML样式?

时间:2019-05-07 20:04:55

标签: powershell

假设我有一个像这样的字符串:

string = 
"<style>li { list-style: none; }</style>
<li><b>Source:</b> $Source</li>
<li><b>Security:</b> $Security</li>
"

我仍然得到要点

我不能这样使用它,因为由于$Source之类的$变量,该字符串已经用双引号引起来了

<li style="list-style: none;">

我得到Unexpected token 'list-style:' in expression or statement.是因为我不能使用双引号

所以我唯一的选择就是像这样使用它:

<style>li { list-style: none; }</style>

但是它没有被应用……为什么?

更新:为澄清起见,我想利用列表机制而不显示要点

1 个答案:

答案 0 :(得分:1)

如果将字符串变量设置为单引号,则这些值可以包含文字双引号。这样做的问题是,单引号中的所有内容都将视为文字字符串,这意味着$Source$Security将不会扩展。如果要在同一字符串中使用双引号和变量,建议使用反引号将内部双引号转义。

$string = 
"<ul style=`"list-style-type:none; padding-left:0`">
<li><b>Source:</b> $Source</li>
<li><b>Security:</b> $Security</li>
</ul>
"

list-style-type:none属性将列表项标记设置为none。 'padding-left:0删除列表的左缩进。

要进行测试,只需将内容输出到文件(s.html)中,然后从浏览器中打开文件即可。

$string | Set-Content s.html

如果在Outlook之类的电子邮件客户端中对此进行测试,结果可能会有所不同。 Outlook不支持list-style-type: none

如果您只需要一个带有粗体属性的列表即可在电子邮件客户端中阅读,则可以简化此过程。然后将Send-Mailmessage-BodyAsHtml开关一起使用,并将以下字符串作为正文。

$string = "
<b>Sources:</b> $source<br>
<b>Security:</b> $security<br>
"