使用JQuery printElement和IE8时,如何从css打印轮廓和背景色?
在Chrome中打印我的html日历-使用JQuery printElement和IE8时,如何从css打印轮廓和背景色?,jquery,css,printing,internet-explorer-8,Jquery,Css,Printing,Internet Explorer 8,在Chrome中打印我的html日历-表格时,它可以完美地工作 另一方面,在IE8中,它不包括背景色和图像。我遵循这一点,以便将其设置为默认的通缉选项 唯一的问题是;它不起作用。没有任何变化。 我知道我的css包括在内,因为它都在Chrome中工作,并且因为表格、td和tr边框、宽度、高度、对齐、字体和文本颜色都正确打印。但是,将忽略轮廓、图像和背景色。我仔细检查了IE8设置中的打印机选项是否已设置为包含这些选项,并多次重新启动浏览器 编辑: 我刚刚发现,我需要告诉IE8,我希望我的颜色等在两个
表格
时,它可以完美地工作
另一方面,在IE8中,它不包括背景色和图像。我遵循这一点,以便将其设置为默认的通缉选项
唯一的问题是;它不起作用。没有任何变化。
我知道我的css包括在内,因为它都在Chrome中工作,并且因为表格、td和tr边框、宽度、高度、对齐、字体和文本颜色都正确打印。但是,将忽略轮廓、图像和背景色。我仔细检查了IE8设置中的打印机选项是否已设置为包含这些选项,并多次重新启动浏览器
编辑:
我刚刚发现,我需要告诉IE8,我希望我的颜色等在两个地方。以下是描述第二个问题的链接:
然而,它只对我的颜色起作用。不是我的轮廓边界在细胞之间
这是我启动printElement的代码
function printCalendar(){
$('#printable').printElement({
overrideElementCSS:['../css/calendarprintstyle.css'],
printBodyOptions:{ pageTitle:'calendar'}
});
}
#可打印的
是一个div
,它包装了一个表
下面是一些css示例,它工作不正常。是轮廓
和背景
/背景色
不起作用
table{
display: table;
border-collapse: collapse;
border-spacing: 0px;
border-color: black;
table-layout: fixed;
font-family: arial;
font-size: 12px;
}
th{
background-color:blue;
color:white;
font-weight: bold;
outline: 1px solid black;
}
td, tr{
height: 20px;
max-height: 20px;
padding: 0px;
}
.calendar {
border: 2px solid black;
table-layout: fixed;
white-space: nowrap;
overflow:hidden;
float: center;
}
.calendarcell {
outline: 1px solid black;
height: 20px;
white-space: nowrap;
overflow:hidden;
max-height: 20px;
width: 180px;
max-width: 180px;
}
.datedatacell {
outline: 1px solid black;
width: 20px;
min-width: 20px;
max-width: 20px;
border-left: 2px;
text-align: center;
}
.holidaystyle {
background-color: #f00;
color: #fff;
outline: 1px solid black;
}
.everydaystyle {
background-color: #fff;
color: black;
}
您需要完成两项任务: 第一:请注意,IE8无法识别HTML5标记,并且HTML5shiv(如果包含)在打印时无法工作。请尝试在文档中也包含(HTML5shiv打印) 你们也可以从网站上获得html5shiv和html5print 特定的CSS只是为了修复在处理跨浏览器兼容性时可能存在的样式差异,通常是在定位样式而不是颜色等方面 但请注意,这里的主要问题是IE8不支持HTML5,为了解决这个问题,人们使用 当他们在HTML5页面上处理IE8和更低版本时, 这将为旧浏览器提供支持,以正确呈现HTML5页面 第二:您必须在IE8中添加用于打印的特定样式表(如果要覆盖主样式,或者您面临与css相关的一些问题,如定位),您必须将此代码段添加到您的页面中,并将其添加到HTML代码中:
<!--[if lte IE 8]><link rel="stylesheet" media="print" href="/print.css" type="text/css" /><![endif]-->
之后,必须创建print.css文件并添加所需的样式
这是@media打印查询,其目标是将主样式与打印分离
在浏览器中设置样式,您可以在打印页面时拥有完全不同的外观和感觉
但请注意,这些库在打印时不起作用
如果你想让IE8和更低版本在打印模式下识别HTML5标签,你必须添加另一个js库,比如
大多数浏览器默认情况下不打印背景色和图像,但它们通常有一个允许的设置。对于当前IE,可在“页面设置”对话框中找到设置
IE似乎也不打印彩色边框。您始终需要期望浏览器不会(或通常不能)完全按照指定的方式显示某些内容。IE6不能使用显示:表格,触摸屏浏览器不能使用:悬停,纯文本浏览器不能显示不同的字体大小,语音浏览器不能显示颜色,一些浏览器不能打印彩色边框或背景等等。但这就是网络的工作原理,如果你的设计理念需要这样的东西,然后,是时候重新思考您的设计概念了。我想明确指出,我已经有了独立的打印和显示样式。并将单独的打印样式表传递给打印机。然而,如果我需要一个独立的IE8样式表,我想知道你建议我在css中做什么不同于我上面所附的样式表。老实说,我不认为我通过哪个css是问题所在,而是我无法告诉浏览器/打印机我希望打印我的背景颜色和图像。如果你想分离IE8的打印样式表,你必须包含标签,我已经提到过。通用打印标签在其他浏览器上工作,但是如果你的目标是IE8,你必须使用特定的标签。如果你认为这是因为html5标签,这是真的,因为我认为HTMLShiv在你打印时不支持html5标签,你也必须使用printshive:我很难理解你,但我将尝试总结一下-您建议我制作一个特定的样式表,只在IE8中打印-要做到这一点,我需要添加答案中包含的if标记。从那以后我有点迷路了。你的英语给我留下了深刻的印象,因为我认为你是伊朗人,但有些事情我还是搞不懂。什么是HTML5?为什么这与我有关?据我所知,我没有一个HTML5标签。我有一个,但为了使网站本身与IE8兼容,我将其替换。最后一条评论是,如果有帮助的话,我想尝试为IE8制作一个特定的css,但在我知道我需要在特定样式表中做什么不同之前,这是没有意义的。你需要在浏览器中打开背景打印。在IE中,它位于页面设置对话框中。其他浏览器也有这个设置,但可能在不同的地方。是的,我自己刚找到这个链接。不幸的是,它只影响了我的颜色。不是我表格单元格的边框。我想你需要接受它。您始终需要期望浏览器不会(或通常不能)完全按照指定的方式显示某些内容。IE6不能使用
显示:表格
,触摸屏浏览器不能使用:悬停
,纯文本浏览器不能显示不同的字体大小,语音浏览器不能显示颜色,以及某些浏览器