简体   繁体   English

两个具有不同 css 样式的打印按钮

[英]Two print buttons with different css styles

I am developing an app in Django.我正在 Django 中开发一个应用程序。 I have an HTML page in which I need to print the receipt.我有一个 HTML 页面,我需要在其中打印收据。 There are 2 print buttons say print_btn and print_btn_new (for using 2 different styles).有 2 个打印按钮,分别是print_btnprint_btn_new (用于使用 2 种不同的样式)。 I have defined 2 stylesheets say, print.css and print_new.css .我已经定义了2个样式表说,print.cssprint_new.css。

In the head section在头部部分

<link rel="stylesheet" href="{% static 'css/print.css' %}" id="printCss" media="print">

It works fine.它工作正常。 But when the print_btn_new is clicked, the print comes like no CSS is applied to it.但是当点击 print_btn_new 时,打印出来的效果就像没有应用 CSS 一样。

For the print_btn_new对于print_btn_new

<button id="print_btn_new" onclick="printNewOnClicked();" name="button">Print New</button>

printNewOnClicked() function : printNewOnClicked()函数:

function printNewOnClicked(){
        document.getElementById('printCss').href = '{% static 'css/print_new.css' %}';
        alert(document.getElementById('printCss').href);
        window.print();
    }

The alert displays the valid URL to print_new.css.警报显示 print_new.css 的有效 URL。 When I copy paste the URL form alert box to the address bar, it shows the correct file.当我将 URL 表单警告框复制粘贴到地址栏时,它显示了正确的文件。

There is a problem with the js code you pasted, in second line you have to use escapes before quotation marks like this:您粘贴的js代码有问题,在第二行中您必须在引号前使用转义符,如下所示:

document.getElementById('printCss').href = '{% static \\'css/print_new.css\\' %}';

And also I don't think changing the href this way will actually change the css styles in your page without reloading.而且我认为以这种方式更改 href 不会在不重新加载的情况下实际更改页面中的 css 样式。

If you set (a) class(es) on the HTML tag you can create separate CSS rules for any number of different rule sets.如果您在 HTML 标签上设置 (a) 个类,您可以为任意数量的不同规则集创建单独的 CSS 规则。 Writing these in plain CSS can become very tedious, LESS/SASS and similar can make this less redundant and laborious.用普通的 CSS 编写这些会变得非常乏味,LESS/SASS 和类似的东西可以减少冗余和费力。 In the following snippet the HTML tag is also capable of holding classes for other reasons, since this technique may be used by others too!在下面的代码片段中,HTML 标记也可以出于其他原因保留类,因为其他人也可以使用这种技术!

 var _global_printCSSnames = [ 'funky' ]; function printPage(mode){ let doc = document.querySelector('html'); //doc.className = mode !== null ? `${mode}-printstyle` : ''; // just for our print css switch _global_printCSSnames.forEach( pmode => { doc.classList.remove( `${pmode}-printstyle` ) } ); if(mode!==null) doc.classList.add( `${mode}-printstyle` ); // if other classes may be set on HTML tag window.print(); }
 html,body{ background-color: #444; color: #fff; } @media(min-width:50em){ html,body{ background-color: #aaa; color: #444; } } @media(min-width:80em){ html,body{ background-color: #444; color: #fff; } } @media print{ html,body{ background-color: #fff; color: #000; } html.funky-printstyle,html.funky-printstyle body{ background-color: #fff; color: #00f; } } .buttonBox{ display: flex; flex-direction: row; justify-content: space-around; } .buttonBox>*{ flex: 0 1 auto; width: 9em; height: 2em; margin: 4px 8px; } button{ background-color: #333; color: #0f8; border-radius: 4px; border: 2px solid #888; box-shadow: 4px 8px 4px rgba( 128, 128, 128, .5 ); transition: all ease-in-out .3s; } button:hover{ background-color: #555; color: #0ff; text-shadow: 1px 1px 0 1px #000, -1px -1px 0 1px #fff; cursor: pointer; }
 <h1>Lorem ipsum…</h1> <p>Zwei flinke Boxer jagen die quirlige Eva und ihren Mops durch Sylt. Franz jagt im komplett verwahrlosten Taxi quer durch Bayern. Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich. Vogel Quax zwickt Johnys Pferd Bim. Sylvia wagt quick den Jux bei Pforzheim. Polyfon zwitschernd aßen Mäxchens Vögel Rüben, Joghurt und Quark. "Fix, Schwyz!" quäkt Jürgen blöd vom Paß. Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich. Falsches Üben von Xylophonmusik quält jeden größeren Zwerg. </p> <p>Heizölrückstoßabdämpfung. Zwei flinke Boxer jagen die quirlige Eva und ihren Mops durch Sylt. Franz jagt im komplett verwahrlosten Taxi quer durch Bayern. Zwölf Boxkämpfer jagen Viktor quer über den großen Sylter Deich. Vogel Quax zwickt Johnys Pferd Bim. Sylvia wagt quick den Jux bei Pforzheim. Polyfon zwitschernd aßen Mäxchens Vögel Rüben, Joghurt und Quark. "Fix, Schwyz!" quäkt Jürgen blöd vom Paß. Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich. Falsches Üben von Xylophonmusik quält jeden größeren Zwerg. </p> <div class="buttonBox"> <button onclick="printPage(null)">print (regular)</button> <button onclick="printPage('funky')">print (funky)</button> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM