What Are the Two Main Parts of an HTML Document?

The two main parts of an HTML document are the head and the body. Each section contains specific information. The head section contains information that is useful to the Web browser and search engines but is not visible to the reader. The body section contains the information that you want the visitor to see. The document is specifically formatted so that Web browsers are able to parse the information and present it to the visitor correctly.

Structure of an HTML document

An HTML document must be formatted correctly to be read by a Web browser. The following is a general outline of a typical HTML document:

<!DOCTYPE> Information for Web browser and search engines Contents visible to reader

Both the tags and the tags are contained within the main tag. Both sections must be terminated with the "</>" characters for the document to be read.

Head Contents

The head section of the document contains the site's title, keywords for search engines, scripts and the location of a cascading style sheet that should be used in formatting the page. Typical HTML tags used in the head section include the , <link>, <style>, <meta> and <script> tags.</p> <div class="module-ad-wrapper "> <div id="slot1-1" class=" slot module " data-device="mobile" data-loc="ad_1" data-slot="slot1-1" data-sizes="[[300, 250]]"></div> </div> <script> if ((isMobile() && 'mobile' === 'mobile') || (!isMobile() && 'mobile' === 'desktop')) { googletag.cmd.push(function() { googletag.display("slot1-1"); }); } </script> <p class="section-content">The <title> tag defines the title of the document. The <link> tag links an external resource, such as a CSS file, to the document. The <style> tag defines document styles. The <meta> tag is used to define the author, keywords and description of the document. The <script> tag defines a script that is to be run on the visitor's computer. If the head section is not placed in the document, the contents of the document are still displayed by the browser.</p> <section id="jwplayer-section" class="jwplayer-section"> <h2 class="jwplayer__label"> Video of the Day </h2> <div id="jwplayerContainerOuter" class="jwplayer__container-outer"> <div id="jwplayerContainer" class="jwplayer__container"> <div id="jw-player"> </div> <div id="jwplayerClose" class="jwplayer__close"> <span class="close-x"></span> </div> </div> </div> </section> <script> const jwpState = { adCompleted: false, adRequest: false, // pause video if closed when sticky and closed and no ad was requested allowSticky: true, // don't allow sticky again when player was sticky and closed isSticky: false, jwpHandler: {}, needToPause: false, // pause video after ad plays if closed when sticky } function showJwplayer () { return (!isMobile()) } function pushToDataLayer ({ event, message, tag, size }) { window.dataLayer.push({ 'event': event || '', 'message': message || '', 'tag': tag || '', 'size': size || '', }) } function getJwplayerSize () { return (jwpState.isSticky) ? 'resized' : 'fullsize' } function setJwplayerStickiness (isSticky) { jwpState.isSticky = isSticky const $jwplayerContainer = document.getElementById('jwplayerContainer') if (!$jwplayerContainer) { return } if (isSticky) { $jwplayerContainer.classList.add('jwplayer__container--sticky') } else { $jwplayerContainer.classList.remove('jwplayer__container--sticky') } } function setJwPlayerPosition () { if (!jwpState.allowSticky) { return } const $jwplayerContainerOuter = document.getElementById('jwplayerContainerOuter') if (!$jwplayerContainerOuter) { return } const rect = $jwplayerContainerOuter.getBoundingClientRect() // if no change to stickiness if (jwpState.isSticky === (rect.top < -50)) { return } $jwplayerContainerOuter.style.height = (rect.top < -50) ? `${$jwplayerContainerOuter.offsetHeight}px` : 'auto' // set video container stickiness setJwplayerStickiness(rect.top < -50) if (jwpState.isSticky) { pushToDataLayer({ event: 'player_resize', }) // resize player to be fixed player width resizeJwPlayer(300) } else { // resize player to match content width resizeJwPlayer() } } function resizeJwPlayer (width) { const $jwplayerContainerOuter = document.getElementById('jwplayerContainerOuter') if (!$jwplayerContainerOuter) { return } width = width || $jwplayerContainerOuter.offsetWidth // assume 16:9 aspect ratio const height = width * (9 / 16) jwpState.jwpHandler.resize(width, height) } function closeJwplayer () { // move video back to inside article content setJwplayerStickiness(false) jwpState.allowSticky = false jwpState.jwpHandler.setMute(true) // resize player to match content width resizeJwPlayer() // if ad has finished playing, then pause video if (jwpState.adCompleted || !jwpState.adRequest) { jwpState.jwpHandler.pause() } else { // queue up pause event for when ad has completed jwpState.needToPause = true } } document.addEventListener('DOMContentLoaded', (e) => { const player = document.getElementById('jwplayer-section'); const cat = window.dataLayer[0].category.toLowerCase().replace(/[^a-zA-Z0-9]/g, ""); const scat = window.dataLayer[0].subcategory.toLowerCase().replace(/[^a-zA-Z0-9]/g, ""); const art = window.dataLayer[0].article_id; if (!showJwplayer()) { player.style.display = 'none' return } window.dataLayer = window.dataLayer || [] jwpState.jwpHandler = window.jwplayer('jw-player') pushToDataLayer({ event: 'player_jwcall_attempt', }) const pre1 = 'https://as-sec.casalemedia.com/playlist?ix_id=%5Bindex_epr%5D&ix_v=8&ix_s=247074&ix_vt=https%3A%2F%2Fpubads.g.doubleclick.net%2Fgampad%2Fads&ix_sz=640x480&ix_maxd=30&ix_vpos=preroll&ix_pod=1&ix_ppos=1&ix_u=__page-url__&ix_vami=video%2Fmp4~application%2Fjavascript~video%2Fwebm&ix_api=1~2&ix_vastp=2~5~3~6&ix_vasd=0&ix_nf=1&sz=640x480&iu=/6117/techwalla.jw/ad_1&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&vpos=preroll&cust_params=' const pre2 = 'https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/6117/techwalla.branded.vid/ad_1&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=' const playlist = '//cdn.jwplayer.com/v2/playlists/09DuNs0X' let jwplayerAdCount = 1 const setupConfig = { mute: true, playlist: '//cdn.jwplayer.com/v2/playlists/09DuNs0X', } const getFullAdvertisingTag = (adTag) => { return `${adTag}cat%3D${cat}%26scat%3D${scat}%26art%3D${art}&correlator=` } const incrementAdCall = () => { const oldAdCount = 'ad_' + jwplayerAdCount const newAdCount = 'ad_' + (jwplayerAdCount + 1) const pre1 = setupConfig.advertising.schedule.pre1.tag const pre2 = setupConfig.advertising.schedule.pre2.tag setupConfig.advertising.schedule.pre1.tag = getFullAdvertisingTag(pre1.replace(oldAdCount, newAdCount)) setupConfig.advertising.schedule.pre2.tag = getFullAdvertisingTag(pre2.replace(oldAdCount, newAdCount)) jwplayerAdCount++ } // this is to handle plugin changes to sapling and techwalla // techwalla using double pre-roll while sapling is not if (pre1 && pre2) { setupConfig.advertising = { client: 'googima', schedule: { pre1: { offset: 'pre', tag: getFullAdvertisingTag(pre1) }, pre2: { offset: 'pre', tag: getFullAdvertisingTag(pre2) } }, bids: { settings: { bidTimeout: 3000 }, }, } } else { setupConfig.advertising = { client: 'googima', offset: 'pre', tag: `https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/6117/techwalla.jw&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=cat%3D${cat}%26scat%3D${scat}%26art%3D${art}&correlator=`, } } jwpState.jwpHandler.setup(setupConfig) // default google preroll ad, for dev purposes // return 'https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dskippablelinear&correlator=' // register error events jwpState.jwpHandler.on('error', (e) => { player.style.display = 'none' return }) jwpState.jwpHandler.on('setupError', (e) => { // this.showPlayer = false const message = ((e) ? 'error' : 'Error: setup error') pushToDataLayer({ event: 'player_error', message, size: getJwplayerSize(), }) }) jwpState.jwpHandler.on('adError', (e) => { pushToDataLayer({ event: 'ad_error', size: getJwplayerSize(), tag: e.tag, }) }) // jwplayer events jwpState.jwpHandler.on('ready', (e) => { pushToDataLayer({ event: ((e.viewable) ? 'player_impression_resized' : 'player_impression_fullsize'), message: ((e.viewable) ? 'in view' : 'not in view'), }) }) jwpState.jwpHandler.on('play', (e) => { // not in view AND resized AND muted if (!e.viewable && jwpState.isSticky && jwpState.jwpHandler.getMute()) { jwpState.jwpHandler.pause() return } const reason = e.playReason if (reason === 'interaction') { if (isMobile()) { jwpState.jwpHandler.setMute(false) } pushToDataLayer({ event: 'player_play_button', message: ((e.viewable) ? 'in view' : 'not in view'), }) } if (reason === 'autostart' || reason === 'playlist') { pushToDataLayer({ event: 'video_play', size: getJwplayerSize(), message: ((e.viewable) ? 'in view' : 'not in view'), }) } // video starts playing after the sticky player was closed when an ad was playing if (jwpState.needToPause) { jwpState.needToPause = false jwpState.jwpHandler.pause() } }) jwpState.jwpHandler.on('complete', (e) => { incrementAdCall() pushToDataLayer({ event: 'video_complete', size: getJwplayerSize(), }) }) jwpState.jwpHandler.on('adClick', (e) => { pushToDataLayer({ event: 'ad_click', size: getJwplayerSize(), tag: e.tag, }) }) jwpState.jwpHandler.on('adRequest', (e) => { jwpState.adRequest = true pushToDataLayer({ event: 'ad_tagcalled', size: getJwplayerSize(), tag: e.tag, }) }) jwpState.jwpHandler.on('adPlay', (e) => { if (e.oldjwpState !== 'paused') { pushToDataLayer({ event: 'ad_play', size: getJwplayerSize(), tag: e.tag, }) } }) jwpState.jwpHandler.on('adComplete', (e) => { pushToDataLayer({ event: 'ad_complete', size: getJwplayerSize(), tag: e.tag, }) jwpState.adCompleted = true }) jwpState.jwpHandler.on('adSkipped', (e) => { jwpState.adCompleted = true }) // window events window.addEventListener('scroll', setJwPlayerPosition, false) window.addEventListener('resize', (e) => { // no reason to resize if it's sticky if (!jwpState.isSticky) { resizeJwPlayer() } }, false) document.getElementById('jwplayerClose').addEventListener('click', closeJwplayer, false) }) </script> <h2 class="section-title">Body Contents</h2> <p class="section-content">The body section is used to format the actual Web page. Most of the HTML tags, such as the paragraph tag (<p class="section-content">), the anchor tag (<a>), the headings tags (<h1> to <h6>) and the section tag (<div>) are used in this section of the document. Server side scripts are also placed in this section of the document. If you do not have a body section in your HTML document, nothing is displayed in the Web browser.</p> <h2 class="section-title">DOCTYPE</h2> <p class="section-content">The only thing not included between the <html> tags is the DOCTYPE declaration. If used, it should be the first line in the HTML document. It is used to tell the Web browser what version of HTML the document is using. The browser uses this declaration to render the page correctly. The DOCTYPE declaration can be ommitted, but the browser may not present your page correctly.</p> <div class="module-ad-wrapper "> <div id="slot1-2" class=" slot module " data-device="mobile" data-loc="ad_2" data-slot="slot1-2" data-sizes="[[300, 250]]"></div> </div> <script> if ((isMobile() && 'mobile' === 'mobile') || (!isMobile() && 'mobile' === 'desktop')) { googletag.cmd.push(function() { googletag.display("slot1-2"); }); } </script> </article> <div class="article-close"></div> <div id="adsense-ad-0"></div> <script> if (!isMobile()) { // not to pollute global scope (function() { let adsense336 = document.createElement('ins'); adsense336.className = 'adsbygoogle'; adsense336.dataset.adClient = "pub-0316265116163263"; adsense336.dataset.adSlot = "6915260661"; adsense336.style = "display:inline-block;min-width:320px;max-width:1200px;width:100%;height:130px"; let styleFrameDiv = document.getElementById("adsense-ad-0"); styleFrameDiv.appendChild(adsense336); let channel_id = "" let options = {} if (channel_id) { options = { params: { google_ad_channel: channel_id } } } (adsbygoogle = window.adsbygoogle || []).push(options); })(); } </script> <div id="adsense-link-below-336"></div> <script> if (!isMobile()) { var styleframeLinkBelow336 = document.createElement('ins'); styleframeLinkBelow336.className = 'adsbygoogle'; styleframeLinkBelow336.dataset.adClient = "pub-0316265116163263"; styleframeLinkBelow336.dataset.adSlot = "4465103631"; styleframeLinkBelow336.style.display = "inline-block"; styleframeLinkBelow336.style.width = "70%"; styleframeLinkBelow336.style.height = "200px"; styleframeLinkBelow336.dataset.adFormat = "link"; var below336AdsenseLinkUnit = document.getElementById("adsense-link-below-336"); below336AdsenseLinkUnit.appendChild(styleframeLinkBelow336); (adsbygoogle = window.adsbygoogle || []).push({}); } </script> <div id="taboola-below-article-thumbnails" class="taboola"></div> <script type="text/javascript"> window._taboola = window._taboola || []; _taboola.push({ mode: 'thumbnails-a', container: 'taboola-below-article-thumbnails', placement: 'Below Article Thumbnails', target_type: 'mix' }); </script> <a class="fb-button-show" data-fb-target="fb-initial0" onclick="showFacebookComments(this)" data-event="expand comments"> <div class="fb-comment-button"> <div class="fb-icon"> <icon class="social-share-facebook svg"></icon> </div> Show Comments </div> </a> <div class="fb-comments-wrapper" id="fb-initial0"> <div class="fb-comments" data-href="https://www.techwalla.com/articles/what-are-the-two-main-parts-of-an-html-document" data-width="970" data-numposts="5"></div> </div> </section> <aside class="right-rail"> <div class="module-ad-wrapper "> <div id="rightrail1-1" class=" rightrail module " data-device="desktop" data-loc="atf" data-slot="rightrail1-1" data-sizes="[[300, 250], [300, 600]]"></div> </div> <script> if ((isMobile() && 'desktop' === 'mobile') || (!isMobile() && 'desktop' === 'desktop')) { googletag.cmd.push(function() { googletag.display("rightrail1-1"); }); } </script> <div id="adsense-link-right-rail"></div> <script> if (!isMobile()) { var styleframeLinkRightRail = document.createElement('ins'); styleframeLinkRightRail.className = 'adsbygoogle'; styleframeLinkRightRail.dataset.adClient = "pub-0316265116163263"; styleframeLinkRightRail.dataset.adSlot = "7087397541"; styleframeLinkRightRail.style.display = "block"; styleframeLinkRightRail.dataset.adFormat = "link"; var rightrailAdsenseLinkUnit = document.getElementById("adsense-link-right-rail"); rightrailAdsenseLinkUnit.appendChild(styleframeLinkRightRail); (adsbygoogle = window.adsbygoogle || []).push({}); } </script> <div class="section-heading-container hidden-on-mobile"> <h2 class="section-heading">Related Articles</h2> </div> <div class="related-articles hidden-on-mobile"> <article class="related-article related-article--around-the-home"> <a href="/articles/can-you-put-html-in-facebook-messages" class="image" data-event="rc_right_rail" data-info="0"> <img class="lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://img.techwallacdn.com/100/photos.demandstudios.com/getty/article/79/105/489359467.jpg" data-srcset="https://img.techwallacdn.com/100/photos.demandstudios.com/getty/article/79/105/489359467.jpg 1x, https://img.techwallacdn.com/220/photos.demandstudios.com/getty/article/79/105/489359467.jpg 2x" alt="Can You Put HTML in Facebook Messages?" /> </a> <div class="info"> <h2 class="title"> <a href="/articles/can-you-put-html-in-facebook-messages" title="Can You Put HTML in Facebook Messages?" data-event="rc_right_rail" data-info="0">Can You Put HTML in Facebook Messages?</a> </h2> <div class="category"> <a href="/around-the-home">Around The Home</a> </div> <div class="subcategory"> <a href="/productivity">Productivity</a> </div> <div class="author"><span class="author-by">By: </span>Dan Stone</div> </div> </article> <article class="related-article related-article--around-the-home"> <a href="/articles/how-do-i-make-text-red-in-html" class="image" data-event="rc_right_rail" data-info="1"> <img class="lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://img.techwallacdn.com/100/photos.demandstudios.com/getty/article/225/247/493375755.jpg" data-srcset="https://img.techwallacdn.com/100/photos.demandstudios.com/getty/article/225/247/493375755.jpg 1x, https://img.techwallacdn.com/220/photos.demandstudios.com/getty/article/225/247/493375755.jpg 2x" alt="How Do I Make Text Red in HTML?" /> </a> <div class="info"> <h2 class="title"> <a href="/articles/how-do-i-make-text-red-in-html" title="How Do I Make Text Red in HTML?" data-event="rc_right_rail" data-info="1">How Do I Make Text Red in HTML?</a> </h2> <div class="category"> <a href="/around-the-home">Around The Home</a> </div> <div class="subcategory"> <a href="/productivity">Productivity</a> </div> <div class="author"><span class="author-by">By: </span>David Wayne</div> </div> </article> <article class="related-article related-article--around-the-home"> <a href="/articles/how-to-make-a-questionnaire-in-html" class="image" data-event="rc_right_rail" data-info="2"> <img class="lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://img.techwallacdn.com/100/photos.demandstudios.com/getty/article/181/139/YOF_072.jpg" data-srcset="https://img.techwallacdn.com/100/photos.demandstudios.com/getty/article/181/139/YOF_072.jpg 1x, https://img.techwallacdn.com/220/photos.demandstudios.com/getty/article/181/139/YOF_072.jpg 2x" alt="How to Make a Questionnaire in HTML" /> </a> <div class="info"> <h2 class="title"> <a href="/articles/how-to-make-a-questionnaire-in-html" title="How to Make a Questionnaire in HTML" data-event="rc_right_rail" data-info="2">How to Make a Questionnaire in HTML</a> </h2> <div class="category"> <a href="/around-the-home">Around The Home</a> </div> <div class="subcategory"> <a href="/productivity">Productivity</a> </div> <div class="author"><span class="author-by">By: </span>Brandon James</div> </div> </article> <article class="related-article related-article--around-the-home"> <a href="/articles/how-to-use-javascript-with-excel" class="image" data-event="rc_right_rail" data-info="3"> <img class="lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://img.techwallacdn.com/100/cppd/20/5/fotolia_8627364_XS.jpg" data-srcset="https://img.techwallacdn.com/100/cppd/20/5/fotolia_8627364_XS.jpg 1x, https://img.techwallacdn.com/220/cppd/20/5/fotolia_8627364_XS.jpg 2x" alt="How to Use Javascript With Excel" /> </a> <div class="info"> <h2 class="title"> <a href="/articles/how-to-use-javascript-with-excel" title="How to Use Javascript With Excel" data-event="rc_right_rail" data-info="3">How to Use Javascript With Excel</a> </h2> <div class="category"> <a href="/around-the-home">Around The Home</a> </div> <div class="subcategory"> <a href="/productivity">Productivity</a> </div> <div class="author"><span class="author-by">By: </span>Jim Campbell</div> </div> </article> <article class="related-article related-article--around-the-home"> <a href="/articles/how-to-make-text-blink-in-html" class="image" data-event="rc_right_rail" data-info="4"> <img class="lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://img.techwallacdn.com/100/ieh/a04/r0/io/make-text-blink-html-1.2-800x800.jpg" data-srcset="https://img.techwallacdn.com/100/ieh/a04/r0/io/make-text-blink-html-1.2-800x800.jpg 1x, https://img.techwallacdn.com/220/ieh/a04/r0/io/make-text-blink-html-1.2-800x800.jpg 2x" alt="How to Make Text Blink in HTML" /> </a> <div class="info"> <h2 class="title"> <a href="/articles/how-to-make-text-blink-in-html" title="How to Make Text Blink in HTML" data-event="rc_right_rail" data-info="4">How to Make Text Blink in HTML</a> </h2> <div class="category"> <a href="/around-the-home">Around The Home</a> </div> <div class="subcategory"> <a href="/productivity">Productivity</a> </div> <div class="author"><span class="author-by">By: </span>Paul K. Sholar</div> </div> </article> <article class="related-article related-article--around-the-home"> <a href="/articles/what-are-the-five-partscomponents-of-powerpoint-screen" class="image" data-event="rc_right_rail" data-info="5"> <img class="lazyload" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://img.techwallacdn.com/100/cppd/150/129/fotolia_1419651_XS.jpg" data-srcset="https://img.techwallacdn.com/100/cppd/150/129/fotolia_1419651_XS.jpg 1x, https://img.techwallacdn.com/220/cppd/150/129/fotolia_1419651_XS.jpg 2x" alt="What Are the Five Parts/Components of PowerPoint Screen?" /> </a> <div class="info"> <h2 class="title"> <a href="/articles/what-are-the-five-partscomponents-of-powerpoint-screen" title="What Are the Five Parts/Components of PowerPoint Screen?" data-event="rc_right_rail" data-info="5">What Are the Five Parts/Components of PowerPoint Screen?</a> </h2> <div class="category"> <a href="/around-the-home">Around The Home</a> </div> <div class="subcategory"> <a href="/productivity">Productivity</a> </div> <div class="author"><span class="author-by">By: </span>Diana V. Faustmann</div> </div> </article> </div> <div class="module-ad-wrapper "> <div id="rightrail1-2" class=" rightrail module " data-device="desktop" data-loc="btf" data-slot="rightrail1-2" data-sizes="[[300, 250], [300, 600]]"></div> </div> <script> if ((isMobile() && 'desktop' === 'mobile') || (!isMobile() && 'desktop' === 'desktop')) { googletag.cmd.push(function() { googletag.display("rightrail1-2"); }); } </script> </aside> </div> </div> <div id="out-of-page" class="out-of-page" class="" data-slot="out-of-page"> <script> googletag.cmd.push(function() { googletag.display("out-of-page"); }); </script> </div> <div class="article-separator"></div> <script type="text/javascript"> window.addEventListener('scroll', function() { if (!window.hasPinterest) { var scriptTag = document.createElement('script'); scriptTag.src = '//assets.pinterest.com/js/pinit.js' scriptTag.setAttribute('data-pin-hover', 'true') scriptTag.setAttribute('data-pin-tall', 'true') scriptTag.setAttribute('data-pin-save', 'true') if (isMobile()) { scriptTag.setAttribute('data-ping-save', 'false') } var parent =document.getElementsByTagName('script')[0]; parent.parentNode.insertBefore(scriptTag, parent) window.hasPinterest = true; } }); </script> </main> <footer class="footer"> <div class="body-row black"> <div class="container"> <div class="row"> <div class="col-xs-12 col-md-12 col-lg-2"> <div id="bottomSocial"> <a data-event="facebook" target="_blank" href="https://www.facebook.com/pages/Techwalla/1116406528374498" class="social_facebook footer-social--facebook svg"></a> <a data-event="twitter" target="_blank" href="https://twitter.com/techwallahq" class="social_twitter footer-social--twitter svg"></a> </div> </div> <div class="col-xs-12 col-lg-7"> <div id="footer-menu"> <ul> <li><a href="/how-we-score">HOW WE SCORE</a></li> <li><a href="/about">ABOUT US</a></li> <li><a href="/about#contact">CONTACT US</a></li> <li><a href="/terms-of-use">TERMS</a></li> <li><a href="/privacy-policy">PRIVACY POLICY</a></li> <li><a href="/copyright-policy">COPYRIGHT POLICY</a></li> <li><a href="/advertise">Advertise</a></li> </ul> </div> </div> <div class="col-xs-12 col-md-12 col-lg-3"> <div class="newsletter"> <form class="tw-newsletter-footer"> <div class="input-group form-group newsletter-signup"> <input type="email" name="email" placeholder="Enter email for updates" class="form-control" required> <div type="submit" class="input-group-btn"><button class="btn newsletter-btn"><span class="footer-capture-submit svg"></span></button></div> <div class="message-invalid"> <p class="copy">An error occurred. Try again later.</p> </div> </div> </form> <div class="message-success">Thanks for signing up!</div> </div> </div> </div> </div> </div> <div id="attribution" class="body-row black"> <div class="container"> <div class="row"> <div class="col-xs-12"> <div class="leaf-logo"></div> </div> <div id="copyright" class="col-xs-12">© 2018 Leaf Group Ltd. Leaf Group Media</div> </div> </div> </div> </footer> <script type="text/javascript" src="/ui/js/common.js?v=4cf36c3fd7264d608f6bb4a8f224ada3224e780b" async="async" crossorigin="anonymous"></script> <!-- Capture Modals --> <!-- Capture --> <div id="email-capture" class="modal fade" role="dialog"> <div class="modal-dialog"> <!-- Capture content--> <div class="modal-content email-capture"> <div class="modal-header"> <div class="x-close email-capture-close-icon svg" data-dismiss="modal" alt="close modal"> </div> </div> <div class="modal-body"> <h4 class="modal-title">Get great tech advice delivered to your inbox.</h4> <p>Keep your family productive, connected, entertained, and safe.</p> <div class="main-content"> <form class="form-centered auth-form email-form" method="post" action="/subscribe" autocomplete="off"> <fieldset class="form-group"> <input type="text" name="email" id="email" class="form-control" placeholder="Email" required /> <div class="message-invalid"> <p class="copy">Please enter a valid email.</p> </div> </fieldset> <fieldset class="form-group"> <input type="submit" class="submit btn" value="SUBSCRIBE" /> </fieldset> </form> </div> </div> </div> </div> </div> <!-- Quantcast Tag --> <script> var ezt = ezt ||[]; (function(){ var elem = document.createElement('script'); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://pixel") + ".quantserve.com/aquant.js?a=p-4dIM5nVs2rFio"; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName('script')[0]; scpt.parentNode.insertBefore(elem,scpt); }()); var quantcastCategory = 'Around The Home'; var quantcastSubCategory = 'Productivity'; var quantcastLabel = 'Techwalla'; quantcastLabel += quantcastCategory ? ('.' + quantcastCategory) : ''; quantcastLabel += quantcastSubCategory ? ('.' + quantcastSubCategory) : ''; var qcdata = { qacct: 'p-4dIM5nVs2rFio', uid: '', labels: quantcastLabel, } ezt.push(qcdata); </script> <noscript> <img src="//pixel.quantserve.com/pixel/p-4dIM5nVs2rFio.gif" style="display: none;" border="0" height="1" width="1" alt="Quantcast"/> </noscript> <!-- End Quantcast Tag --> </body> </html>