使用JQuery printElement和IE8时,如何从css打印轮廓和背景色?

使用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,我希望我的颜色等在两个

在Chrome中打印我的html日历-
表格
时,它可以完美地工作

另一方面,在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不能使用
显示:表格
,触摸屏浏览器不能使用
:悬停
,纯文本浏览器不能显示不同的字体大小,语音浏览器不能显示颜色,以及某些浏览器