Welcome to MSDN Blogs Sign in | Join | Help

SYSK 245: Are You Using the ‘media’ Attribute In Your CSS?

Did you ever copy and paste some content from a web page into a Word document, just so you can remove the navigation column, or may be remove a header or footer before you print it?  I have…  many times…  And it’s all because those web sites do not take into consideration that presentation can take many forms – not just the computer screen.  Why not make your web pages adaptable to other mediums like a screen projector, and a printer…

 

Here are some suggestions for starters:

 

1.       Use media attribute in your style elements, e.g.

<style type="text/css" media="screen">

<style type="text/css" media="print">

or add @media block in .css file, e.g.

@media print {

  #nav-area {display: none;}

}

In CSS you can also use @import at the start of a stylesheet to import another stylesheet from a URL, specifying the media type.

 

2.       Create a header and footer for each type of media, e.g.

#header {

display:none;

}

#printheader {

height:100px;

background:#fff;

font-size:18pt;

color:#000;

border-bottom:1px solid #000;

}

#footer {

display:none;

}

#printfooter {

height:40px;

background:#fff;

color:#000;

text-align:right;

font-size:10pt;

border-top:1px solid #000;

margin-top:16px;

}

3.      Remove navigation areas from print and, if makes sense, from projection media (example above)

4.      Add page break rules for print media, e.g.

h1 {

page-break-before: always;

}

5.       Add page numbers for for print media, e.g.

#print-foot:after {

  content: counter(page);

  counter-increment: page;

}

6.       Make sure you use white background on print media, e.g.

html {

padding:0;

margin:0;

border:0;

background:#fff;

font-size:10pt;

font-family: arial, sans-serif;

}

 

If you have other “best practices” on this topic you’d like to share, don’t hesitate to post them as comments.

 

 

Published Tuesday, November 21, 2006 5:20 AM by irenak
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker