【问题标题】:Print stylesheet not working?打印样式表不起作用?
【发布时间】:2014-12-18 07:27:01
【问题描述】:

所以,我第一次参加网页设计课程,我的教授告诉我们为我们的网站使用特定的打印样式表。我希望它专门隐藏 页眉导航栏(页脚、标题等),但我似乎无法正确处理。顺便说一下,导航栏是下面代码中的 'cssmenu' ,而不是 ,这让我很失望。本网站用于教育目的(即无版权使用),所以请不要批评我是如何设置代码的,因为我是新手。如果可以的话,请帮忙。

我的网站是:http://tiger.towson.edu/~kmoore25/Proj_3/Welcome.html

无论如何,它不起作用,它适用于我做过的另一个网站。通过不工作,我的意思是我试图隐藏的元素在尝试打印时仍然可见。这是我被告知要使用的模板:

/* Remove unwanted elements */
#header, #nav, .noprint
{
display: none;
}

/* Ensure the content spans the full width */
#container, #container2, #content
{
width: 100%; margin: 0; float: none;
}

/* Change text color to black (useful for light text on a dark background) */
.lighttext
{
color: #000 
}

/* Improve color contrast of links */
a:link, a:visited
{
color: #781351
}

我是这样调整的:

@charset "UTF-8";
/* CSS Document */

body {
    font-family: Georgia, serif;
    background: none;
    color: black;
}
#page {
    width: 100%;
    margin: 0; padding: 0;
    background: none;
}
#header, .cssmenu, #footer, .noprint {
    display: none;
}
.entry a:after {
    content: " [" attr(href) "] ";
}
#printed-article {
    border: 1px solid #666;
    padding: 10px;
}

h1
{
color: #000
}

h2
{
color: #000
}

a:link, a:visited
{
color: #781351
}

请记住,我是网站新手。最后,这是我网站上其中一个页面的 html,因此您可以看到它是如何不起作用的。我删除了段落和内容以压缩代码,以便您更好地理解它,因为我怀疑这是问题所在:

<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OITNB - Piper Kerman</title>
<meta name="keywords" content="html, responsive, grid, css, web design" />
<link rel="stylesheet" type="text/css" href="css/main.css" />
<link rel="stylesheet" type="text/css" href="css/drop_down.css" />
<link rel="stylesheet" type="text/css" href="css/component.css" />
<script src="js/modernizr.custom.js"></script>
<script type='text/javascript' src='js/drop_down.js'></script>
</head>

<body>
<div class="page">
  <header align="center"> <a href="Welcome.html"><img src="images/oitnb.jpg" alt="OITNB" width=""/></a> </header>
  <div id='cssmenu'>
    <ul>
      <li class='has-sub'><a href='#'><span>About the Show</span></a>
        <ul>
          <li class='active last'><a href='synopsis.html'><span>Synopsis</span></a></li>
          <li class='active last'><a href='piper.html'><span>The Real Piper Kerman</span></a></li>
        </ul>
      </li>
      <li class='has-sub'><a href='#'><span>Seasons</span></a>
        <ul>
          <li><a href='season_one.html'><span>Season One</span></a></li>
          <li class='active last'><a href='season_two.html'><span>Season Two</span></a></li>
        </ul>
      </li>
      <li class='has-sub'><a href='#'><span>Cast</span></a>
        <ul>
          <li class='active last'><a href='season_one_cast.html'><span>Season One</span></a></li>
          <li class='active last'><a href='season_two_cast.html'><span>Season Two</span></a></li>
        </ul>
      </li>
      <li class='has-sub'><a href='#'><span>Pics</span></a>
        <ul>
          <li><a href='posters.html'><span>Posters</span></a></li>
          <li><a href='fan_art.html'><span>Fan Art</span></a></li>
          <li><a href='thumbnails.html'><span>Thumbnails</span></a></li>
          <li><a href='gifs.html'><span>GIFs</span></a></li>
        </ul>
      </li>
      <li class='active'><a href='contests.html'><span>Contests</span></a> </li>
      <li class='active last'><a href='contact.html'><span>Contact</span></a></li>
    </ul>
  </div>
</body>
</html>

【问题讨论】:

  • 你在css文件中使用过@media print { ... }吗?

标签: javascript jquery html css print-style


【解决方案1】:

这是关于在您的 CSS 文件中找到与您要更改的 html 中的元素、id 或类匹配的正确 CSS 选择器:

将 CSS 文件 (#header, .cssmenu, #footer, .noprint) 中的选择器与 html 中的 id、类和标签进行比较。

您的 html 有一个没有 id 的标题标签。那么 CSS 选择器需要是“header”,没有 '#' 或 '.'。

您的 html 有 id='cssmenu'。那么 CSS 选择器需要是“#cssmenu”。

CSS 中的#footer.nopint 指的是html 中具有id='footer'class='noprint' 的元素。这些似乎暂时不用。

【讨论】:

    【解决方案2】:

    您需要使用媒体查询来阻止元素在打印时显示。类似这样的东西应该可以解决问题。

    @media print
    {
        /* Remove unwanted elements */
        #header, #nav, .noprint
        {
            display: none;
        }
    
        /* Ensure the content spans the full width */
        #container, #container2, #content
        {
            width: 100%; margin: 0; float: none;
        }
    
        /* Change text color to black (useful for light text on a dark background) */
        .lighttext
        {
            color: #000 
        }
    
        /* Improve color contrast of links */
        a:link, a:visited
        {
            color: #781351
        }
    }
    

    这个question应该会给你更详细的信息。

    【讨论】:

    • 非常感谢您不只是将我引向另一个问题。我认为解决方案会很困难,因为打印样式表模板看起来很简单(所以我认为代码可能是错误的),所以这就是我发布这个问题的原因。感谢您的帮助!
    • 顺便说一句,它不起作用。我应该发布更多代码吗??
    • 究竟是什么不工作?这段代码不应该逐字复制,而是作为您应该如何解决问题的示例。
    猜你喜欢
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多