代码之家  ›  专栏  ›  技术社区  ›  Denver Dang

如果打印时选择A5尺寸的纸张,是否更改CSS?

  •  0
  • Denver Dang  · 技术社区  · 4 年前

    我正在创建一个网站,可以选择打印用户创建的任何内容。到目前为止,当选择A4纸时,我可以使打印输出看起来非常漂亮(至少是打印),但当选择A5时,它会变得有点乱。

    那么,我可以在A4纸和A3纸上使用一些不同的CSS吗?或者这只是玩打印时的游戏名称?

    1 回复  |  直到 4 年前
        1
  •  1
  •   DCR    4 年前

    您可以尝试以下媒体查询,但我不确定支持范围有多广:

    /* style sheet for "A4" printing */
    @media print and (width: 21cm) and (height: 29.7cm) {
      @page {
         margin: 3cm;
      }
     }
    
    /* style sheet for "letter" printing */
    @media print and (width: 8.5in) and (height: 11in) {
      @page {
      margin: 1in;
      }
    } 
    

    function paperSelect(){
    
    var elems = document.body.getElementsByTagName("*");
    
     if (event.target.id == 'a3'){
        for(let i = 0; i < elems.length; i++){
           elems[i].classList.add("mystyle");    
        }
     }else{
        for(let i = 0; i < elems.length; i++){
           elems[i].classList.remove("mystyle");    
        } 
     }
    
    }
    li{
       display:block;
    }
    
    li.mystyle{
       display:inline;
    }
    <ul>
    <li>item 1</li>
    <li>item 2</li>
    <li>item 3</li>
    </ul>
    A4<input id='a4'  type='radio' name='print' checked onchange='paperSelect()'>or A3
    <input id='a3' type='radio' name='print' onchange='paperSelect()'>

    解决这个问题的一种方法是,在A3 css的基础上创建A4 css,并进行必要的更改,然后添加一个类。然后,您可以给用户一个选项,让他们选择要使用哪篇论文,并切换课程。