html - 隐藏左侧导航栏后如何使打印样式表的内容全宽

标签 html css

在创建打印样式表时,我想隐藏所有导航,但由于该站点有一个左侧导航栏延伸了整个窗口的高度,我怎样才能让打印的内容占据整个窗口的宽度这一页?目前,内容可以正常显示和打印,但在导航栏所在的页面上有一个“列”。

<!DOCTYPE html>
<html>

<head>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
  <style>
    .column {
      padding: 15px;
    }
    
    .clearfix::after {
      content: "";
      clear: both;
      display: table;
    }
    
    .menu {
      position: absolute;
      background-color: #e9e9e9;
      top: 0;
      bottom: 0;
      width: 25%;
    }
    
    .content {
      position: relative;
      margin-left: 25%;
      padding-left: 60px;
      right: 0;
    }
    
    .menu ul {
      list-style-type: none;
      margin: 0;
      padding: 0;
    }
    
    .menu li {
      padding: 8px;
      margin-bottom: 8px;
      background-color: #33b5e5;
      color: #ffffff;
    }
    
    .menu li:hover {
      background-color: #0099cc;
    }
    
    @media print {
      .menu {
        display: none;
      }
    }
  </style>
</head>

<body>

  <div class="clearfix">
    <div class="column menu">
      <ul>
        <li>Nav Item</li>
        <li>Nav Item</li>
        <li>Nav Item</li>
        <li>Nav Item</li>
      </ul>
    </div>

    <div class="column content">
      <h1>Title / Heading</h1>
      <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
      <p>Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit.</p>
    </div>
  </div>

</body>

</html>

最佳答案

除了在 .menu 上设置 display: none 之外,您还需要“重置”margin-left.contentpadding-left 回到 @media print 内的 0:

@media print {
  .menu {
    display: none;
  }
  .content {
    margin-left: 0;
    padding-left: 0;
  }
}

这可以从以下方面看出:

<!DOCTYPE html>
<html>

<head>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
  <style>
    .column {
      padding: 15px;
    }
    
    .clearfix::after {
      content: "";
      clear: both;
      display: table;
    }
    
    .menu {
      position: absolute;
      background-color: #e9e9e9;
      top: 0;
      bottom: 0;
      width: 25%;
    }
    
    .content {
      position: relative;
      margin-left: 25%;
      padding-left: 60px;
      right: 0;
    }
    
    .menu ul {
      list-style-type: none;
      margin: 0;
      padding: 0;
    }
    
    .menu li {
      padding: 8px;
      margin-bottom: 8px;
      background-color: #33b5e5;
      color: #ffffff;
    }
    
    .menu li:hover {
      background-color: #0099cc;
    }
    
    @media print {
      .menu {
        display: none;
      }
      .content {
        margin-left: 0;
        padding-left: 0;
      }
    }
  </style>
</head>

<body>

  <div class="clearfix">
    <div class="column menu">
      <ul>
        <li>Nav Item</li>
        <li>Nav Item</li>
        <li>Nav Item</li>
        <li>Nav Item</li>
      </ul>
    </div>

    <div class="column content">
      <h1>Title / Heading</h1>
      <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.</p>
      <p>Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit.</p>
    </div>
  </div>

</body>

</html>

关于html - 隐藏左侧导航栏后如何使打印样式表的内容全宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50053081/

相关文章:

html - 试图将文本写入表格中的 WRAP

css - Em 字体大小在我的 h1 顶部增加了边距?

asp.net - 响应式网页设计不适用于图片

html - 如何在div中像网格一样显示图像

javascript - 添加页面时管理多个样式表和 .js 文件

html - 动态高度可滚动div

html - 为什么即使我有内联 block ,div 元素在调整大小时也会分开?

javascript - jQuery 淡入/淡出不起作用?

javascript - 如果只有一个错误类,如何选择输入内容

html - CSS - 悬停时的渐变过渡确实可以双向工作