<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <title>HTML5 - Part 2: Video of Working with CSS Style Sheets in HTML5 Applications</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
        <meta name="description" content="A screencast that demonstrates how to use the IDE to 
              create and edit CSS in an HTML5 application.">
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    </head>
    <body>

<!--
Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
-->

        <h1>HTML5 - Part 2: Video of Working with CSS Style Sheets in HTML5 Applications</h1>

        <table>
            <tr>
                <td class="valign-top">

                    <p>This screencast demonstrates some of the tools provided by NetBeans IDE
                    to help you create and modify CSS rules in HTML5 applications.
                    The screencast demonstrates how to work with the CSS windows and wizards in the IDE to 
                    and how you can use the Chrome browser with NetBeans integration to visually locate CSS rules
                    for elements in a page.
                    </p>
                    
                    

                    <p>Author: Ken Ganfield<br>Time: 7:11</p>

                    <p><a href="http://bits.netbeans.org/media/html5-css-screencast.mp4">Download / Watch full size</a> (39 MB)</p>

                    
                    
                    

                    
                </td>

                <td width="486" class="valign-top align-center">

                   
                    <script src="/images_www/js/mediaplayer-5.9/jwplayer.js" type="text/javascript"></script>                   
    <div id="player" >
        <center>
	    <div id="flashContent"></div>
        </center>
    </div>
    <script type="text/javascript">
	$(function(){
	    var targetFile='http://bits.netbeans.org/media/html5-css-screencast.mp4';
		jwplayer('flashContent').setup({
	                'id': 'flashContentId',
	                'width': '530',
	                'height': '340',
	                'autostart': 'true',
	                'file': targetFile,
	                'controlbar':{position:'bottom'},
	                'modes': [
	                      {type: 'html5'},
	                      {type: 'flash', src: '/images_www/js/mediaplayer-5.9/player.swf'},
	                      {type: 'download'}
	                         ]
	           });	
	});
    </script>


                    </td>
            </tr>
            <tr>
                <td colspan="2">
                    <p>For more about working with HTML5 applications in NetBeans IDE, watch the following screencasts.</p>
                    <ul>
                        <li><a href="html5-gettingstarted-screencast.html"> HTML5 - Part 1: Getting Started with HTML5 Applications</a></li>
                        <li><a href="html5-css-screencast.html"> HTML5 - Part 2: Working with CSS in HTML5 Applications</a></li>
                    </ul>
                    
                    <br style="clear:both;">
                    <div class="feedback-box">
                        <a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Video%20of%20Working%20with%20CSS%20Stylesheets%20in%20HTML5%20Applications">Send Feedback on This Tutorial</a>
                    </div>
                    <br style="clear:both;">
                    
                </td>
            </tr>
        </table>
        <h2>Related links</h2>

        <ul>
            <li>Demo:<a href="html5-gettingstarted-screencast.html"> HTML5 - Part 1: Getting Started with HTML5 Applications</a></li>
            <li>Demo:<a href="html5-javascript-screencast.html"> HTML5 - Part 3: Testing and Debugging JavaScript in HTML5 Applications</a></li>
            <li><a href="../webclient/html5-gettingstarted.html">Getting Started with HTML5 Applications </a></li>
            <li><a href="../webclient/html5-editing-css.html">Working with CSS Style Sheets in HTML5 Applications</a></li>
            <li><a href="../webclient/html5-js-support.html">Debugging and Testing JavaScript in HTML5 Applications</a></li>
            <li><a href="http://wiki.netbeans.org/HTML5">HTML5 Support in NetBeans IDE wiki page</a></li>
            <li><a href="../../trails/php.html">PHP and HTML5 Learning Trail</a></li>
        </ul>
        
        <ul>
            <li><a href="http://wiki.netbeans.org/HTML5">HTML5 Support in NetBeans IDE wiki page</a></li>
            <li><a href="../../trails/java-ee.html">Java EE &amp; Java Web Learning Trail</a></li>
        </ul>

    </body>
</html>
