我想为Perl CGI程序中需要打印的内容设置字体颜色和样式。
我们没有使用CPAN.txt文件来安装模块使用Term::ANSIColor
和所有。
示例:
print "Hello world";
答案 0 :(得分:2)
CGI相关答案 (当问题被修改为CGI时)
如果您想在网页上实现颜色,请通过CSS执行此操作。
在html标记中,您可以应用直接标记来设置字体样式,大小和颜色:
function func(num) {
num = num + 1;
var opt = document.getElementById('opt1');
opt.innerHTML= num + "%" ;
var move = setTimeout("func("+num+")",15);
var nocolnum = document.getElementById('nocolnum');
if(num == 100){
nocolnum.innerHTML++;
clearTimeout(move);
}
if (nocolnum == 5) {
// I dont know what to put here
// to break out
// a break, return or something??
}
var one = 0;
func(one);
}
建议将CSS与标记分开,改为使用CSS样式属性。
<span style="font-size: 1.5em; color: #555555; font-family: "Times New Roman", Times, serif;">Hello World</span>
通过这种方式,CSS 类可以在HTML标记中的任何地方重复使用。
您还可以将所有CSS放入其自己的CSS文件中(例如...
<head>
<style>
.hello {
font-size: 1.5em;
color: #555555;
font-family: "Times New Roman", Times, serif;
}
<style>
</head>
<body>
<div><span class="hello">Hello World</span></div>
...
):
my.css
然后在输出的HTML中.hello {
font-size: 1.5em;
color: #555555;
font-family: "Times New Roman", Times, serif;
}
:
<link>
在使用perl时,您最好使用templating来解决问题。将HTML放入模板文件中,通过...
<head>
<link rel="stylesheet" type="text/css" href="my.css">
</head>
<body>
<div><span class="hello">Hello World</span></div>
...
或HTML::Template
等内容加载模板,填充所需的任何值,然后从该模板输出HTML页面。
这使您可以将“markup / html”与编程逻辑分开,避免内联文档的混乱,并使您将来的代码维护更容易。
如果您的输出具有“动态”颜色(可能在页面上更改的颜色),请将每个颜色定义为一个类,并使用模板设置要使用哪个类来提供所选样式。
原始问题解答 (当看起来输出到终端时)
Termcap可以提供颜色(取决于您环境中设置的Template::Toolkit
)。
您可以通过TERM
CPAN模块使用termcap:
Term::ScreenColor
我不推荐使用 use Term::ScreenColor;
my $term = new Term::ScreenColor();
$term->green->puts('This is green')->reset();
,因为它只发布原始ANSI颜色序列,并且无法识别您的术语环境。 (如果您在没有颜色的字词上使用Term::ANSIColor
运行代码,则输出中会出现Term::ANSIColor
类型序列。
注意:此模块依赖于[34;2m
,而Term::Screen
又需要Term::Cap
。
答案 1 :(得分:1)
根据更新的问题回答。 Drav已经向您展示了如何在终端中打印彩色输出。
要在浏览器中打印彩色信息,请使用CSS。编辑HTML /模板文件以包含相关的HTML标记和样式表。
如果您想提供CGI脚本中的样式数据,那么您可以执行以下操作
print h1({-style=>'Color: red;'},'Hello world');
另外:在提出这些基本问题之前,请先阅读CGI documentation。