HTML

The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables Free!
Reader Level: Reader Level

In this installment of the HTML5 CSS Starter Page series, we're going to add tables to the faculty and classes pages of the Stringendo Studios site. We're going to perform a slick little trick with these tables - we're going to use the :nth-child pseudo class to create alternating colors on the table rows while keeping the markup free of extraneous classes. Then we're going to use a script to make Internet Explorer support the pseudo class, though natively it does not do so. This will finish up all the pages of the desktop Stringendo site - all we'll have left is the

This tutorial includes exercise files.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued Free!
Reader Level: Reader Level

In the last tutorial in the HTML5 CSS Starter Page series, we created the basic form and added some new HTML5 form attributes to the input elements on the Stringendo Studios contact page. In this continuation of work on the contact page, we're going to style the form by taking advantage of attribute selectors. We'll use the new RGBA color format for creating background colors on the textfields. We'll also use Dreamweaver CS5.5's new GUI in the Properties for panel to add border-radius and box-shadow on various elements.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 10: The Contact Page Free!
Reader Level: Reader Level

Now that the video page of the Stringendo Studios site is completed, it's time to turn our attention to the form page. In the process, we'll look at some of the new features that HTML5 brings to forms. This tutorial includes start and completed folders so you can follow along.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 9: The Video Page Free!
Reader Level: Reader Level

Welcome back to the HTML5 CSS Starter Page series! Now that we have the site all set up, it is time to fill the pages with HTML5 pizzazz. The first page we're going to tackle is the video page. In keeping with our goal of making the site work in the real world, we'll adopt a video fallback strategy so that the "Schumann Piano Quintet" video plays in every browser.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 8: Site Tasks Free!
Reader Level: Reader Level

In this installment of the HTML5 CSS Starter Page series, we're going to perform site tasks such as ordering the style sheet, exporting the style sheet to an external file, running the page through BrowserLab, using the new CS5.5 HTML validator, validating the CSS using the W3C CSS3 validator, turning the layout into a template, and generating the site pages. Whew! I hope this will be enough to keep you busy for one tutorial.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 6: More Layout Styling Free!
Reader Level: Reader Level

In the last installment of the HTML5 CSS Starter Page series, we styled the markup into a fixed-width, two-column, right sidebar with header and footer layout. This time around we'll hone in on details, while especially concentrating on headings and text. We'll use descendant selectors to give different looks to lists, headings, and body text depending on the section of the page in which they occur. We'll take care of escaping margins to close gaps between divs. Finally, we'll hide text that we added for accessibility purposes from sighted visitors.

This tutorial includes starter and completed files so that you can play along at home.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 5: Styling the Layout Free!
Reader Level: Reader Level

In the last two installments of the HTML5 CSS Starter Page Series, you coded the markup for the Stringendo Studios layout. Now it's time to manipulate the markup into two columns in a fixed-width with right sidebar, header and footer.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 4: Markup Continued Free!
Reader Level: Reader Level

In this installment of the HTML5 CSS Starter Page series, we're going to continue marking up the page. This time around we're going to add ARIA role attributes to the various HTML5 elements. (Aria! What could be more perfect for a music studio? ;-) This will satisfy two goals for our document: it will enhance its accessibility for users of assistive technology, and it will provide a hook for styles that will work in Internet Explorer 7 and 8. Thus, we'll be able to provide better IE support for users who have JavaScript turned off. Later in this tutorial we'll also address a strategy for coping with Internet Explorer 6 (if you absolutely must do so).

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout Free!
Reader Level: Reader Level

In this third tutorial in the HTML5 CSS Starter Page series, we're going to mark up the layout for Stringendo Studios. We'll be using many of the new semantic elements of HTML5. We'll then run the page through an HTML5 outliner and modify the code as needed.

This tutorial includes start and completed exercise files.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 2: Content Models Free!
Reader Level: Reader Level

In this second tutorial in the HTML5 CSS Starter Page series, we're going to look at its new content models, new semantic elements, core sectioning elements, and the new explicit outlining algorithm. Once we understand these key concepts, we'll be ready to mark up the home page of Stringendo Studios in a more meaningful way.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

The HTML5 CSS Starter Page Series - Part 1 Free!
Reader Level: Reader Level

Unless you have been impersonating Rip Van Winkle and have been sleeping the past year, I am sure most of you are aware of the tsunami of CSS3 and HTML5 techniques that are flooding the web tutorial and blog sites. Adobe released its Dreamweaver CS5 11.03 updater with new HTML5 and CSS3 capabilities, as well as two HTML5 CSS Starter Pages. With two mainstream CSS Starter Page series behind us, I hope you are ready to embark on a freewheeling look into the future-is-now through this new HTML5 CSS Starter Page series.

The HTML5 CSS Starter Page Series:
The HTML5 CSS Starter Page Series - Part 1
The HTML5 CSS Starter Page Series - Part 2: Content Models
The HTML5 CSS Starter Page Series - Part 3: Constructing the Layout
The HTML5 CSS Starter Page Series - Part 4: Markup Continued
The HTML5 CSS Starter Page Series - Part 5: Styling the Layout
The HTML5 CSS Starter Page Series - Part 6: More Layout Styling
The HTML5 CSS Starter Page Series - Part 7: Styling the Navigation for the Layout
The HTML5 CSS Starter Page Series - Part 8: Site Tasks
The HTML5 CSS Starter Page Series - Part 9: The Video Page
The HTML5 CSS Starter Page Series - Part 10: The Contact Page
The HTML5 CSS Starter Page Series - Part 11: The Contact Page Continued
The HTML5 CSS Starter Page Series - Part 12: Styling Data Tables
The HTML5 CSS Starter Page Series - Part 13: CSS3 Media Queries and the Mobile Web
The HTML5 CSS Starter Page Series - Part 14: Optimizing for Phone and Tablet

HTML5 Canvas - Part 1: Introduction Free!
Reader Level: Reader Level

The upcoming HTML 5 specification promises to add support for a wide range of new and exciting web technologies. In this series we're going to focus on one of the major new players, the Canvas element, which allows for direct rendering and manipulation of vectors and images from within JavaScript.

In this first article, we'll explore what Canvas is, why it's important to us, and get a first quick look at how it can be used.

The HTML5 Canvas Series
HTML5 Canvas - Part 1: Introduction
HTML5 Canvas - Part 2: Basic
HTML5 Canvas - Part 3: Advanced Drawing Techniques
HTML5 Canvas - Part 4: Images
HTML5 Canvas - Part 5: Image Scaling and Croping Coming Soon

Semantic XHTML - Part 4: List Elements
Reader Level: Reader Level

By writing semantic, valid XHTML, the code that you create for your website will work not only cross browser, but cross device. In this article we learn about lists: ordered lists, unordered lists and definition lists. We cover the semantic meaning, default browser presentation, and children and parents of each element.

The Semantic XHTML Series:
Semantic XHTML - Part 1: The Required Elements
Semantic XHTML - Part 2: Elements Within the Element
Semantic XHTML - Part 3: Common Block Level Elements
Semantic XHTML - Part 4: List Elements
Semantic XHTML - Part 5: Table Elements
Semantic XHTML - Part 6: Inline Elements
Semantic XHTML - Part 7: The Phrase Elements
Semantic XHTML - Part 8: Empty Elements
Semantic XHTML - Part 9: The Image Element
Semantic XHTML - Part 10: Image Maps
Semantic XHTML - Part 11: The Object Element
Semantic XHTML - Part 12: The FORM Element
Semantic XHTML - Part 13: The INPUT Element
Semantic XHTML - Part 14: TEXTAREA and BUTTON Elements
Semantic XHTML - Part 15: Drop Down Menus
Semantic XHTML - Part 16: Organizing Forms
Semantic XHTML - Part 17: Non-Semantic Elements
Semantic XHTML - Part 18: INS, DEL & NOSCRIPT
Semantic XHTML - Table of XHTML Elements

Semantic XHTML - Part 2: Elements Within the <head> Element
Reader Level: Reader Level

By writing semantic, valid XHTML, the code that you create for your web site will work not only cross browser, but cross device. The web page that works in your Firefox Browser on your Windows XP computer can work in a cell phone's browser, on TV via PlayStation, and even in a braille reader.

To write semantic code, you need to understand what every element means. This series covers all the HTML elements. Part II of the series covers the elements found in the <head> of the document, including <meta>, <title>, <link>, <script>, <base> and <style>.

The Semantic XHTML Series:
Semantic XHTML - Part 1: The Required Elements
Semantic XHTML - Part 2: Elements Within the <head> Element
Semantic XHTML - Part 3: Common Block Level Elements
Semantic XHTML - Part 4: List Elements
Semantic XHTML - Part 5: Table Elements
Semantic XHTML - Part 6: Inline Elements
Semantic XHTML - Part 7: The Phrase Elements
Semantic XHTML - Part 8: Empty Elements
Semantic XHTML - Part 9: The Image Element
Semantic XHTML - Part 10: Image Maps
Semantic XHTML - Part 11: The Object Element
Semantic XHTML - Part 12: The FORM Element
Semantic XHTML - Part 13: The INPUT Element
Semantic XHTML - Part 14: TEXTAREA and BUTTON Elements
Semantic XHTML - Part 15: Drop Down Menus
Semantic XHTML - Part 16: Organizing Forms
Semantic XHTML - Part 17: Non-Semantic Elements
Semantic XHTML - Part 18: INS, DEL & NOSCRIPT
Semantic XHTML - Table of XHTML Elements

Semantic XHTML - Part 1: The Required Elements Free!
Reader Level: Reader Level

By writing semantic, valid XHTML, the code that you create for your website will work not only cross browser, but cross device. The web page that works in your Firefox Browser on your Windows XP computer can work in a cell phone's browser, on TV via a PlayStation, and even in a braille reader. To write semantic code, you need to understand what every element means. In this series, we will cover all the HTML

This series will include:
  • Part 1: The required elements to create a document:
  • Part 2: Elements that go inside the document head
  • Part 3: block level elements
  • Part 4: Lists
  • Part 5: Tables: Block level elements that aren't display: block
  • Part 6: Common inline elements
  • Part 7: The Phrase elements
  • Part 8: Empty Elements
  • And more....

There are several elements that we can use to create a valid XHTML document that is sematically correct. To code correctly, it is important to know all the elements, and especially to know when and how to use them. In part one of the Semantic XHTML series, we discuss the five elements that are required.

The Semantic XHTML Series:
Semantic XHTML - Part 1: The Required Elements
Semantic XHTML - Part 2: Elements Within the Element
Semantic XHTML - Part 3: Common Block Level Elements
Semantic XHTML - Part 4: List Elements
Semantic XHTML - Part 5: Table Elements
Semantic XHTML - Part 6: Inline Elements
Semantic XHTML - Part 7: The Phrase Elements
Semantic XHTML - Part 8: Empty Elements
Semantic XHTML - Part 9: The Image Element
Semantic XHTML - Part 10: Image Maps
Semantic XHTML - Part 11: The Object Element
Semantic XHTML - Part 12: The FORM Element
Semantic XHTML - Part 13: The INPUT Element
Semantic XHTML - Part 14: TEXTAREA and BUTTON Elements
Semantic XHTML - Part 15: Drop Down Menus
Semantic XHTML - Part 16: Organizing Forms
Semantic XHTML - Part 17: Non-Semantic Elements
Semantic XHTML - Part 18: INS, DEL & NOSCRIPT
Semantic XHTML - Table of XHTML Elements



Mobile Internet Devices - Part 2: Browser Evolution
Reader Level: Reader Level

The "mobile web" has rapidly become one of the most important and rapidly evolving markets; yet most developers are still unaware of just how much as changed on the mobile front recently or what to expect in the future. Today we're going to take a look at the evolution that is occuring in web browsers for mobile devices and try go get a glimpse of how mobile browsing is changing as well as some of the new concepts that we, as web developers, need to start to think about more and more.

The Mobile Internet Devices Series:
Mobile Internet Devices - Part 1: An Introduction
Mobile Internet Devices - Part 2: Browser Evolution

Vertically Align Labels and Inputs with CSS
Reader Level: Reader Level

Although forms where the labels are placed above the input fields they describe are considered to be more usable, there are undoubtedly going to be times where you need to use a form layout where the labels are placed to the left of their input fields with right-aligned text. This tutorial will teach you the basic (X)HTML structure and CSS to do just that. It assumes you're already familiar with the building blocks of forms and how to use them correctly to build accessible forms: fieldset, legend, label and input elements.

In a followup tutorial, you will learn how to build on this basic structure to accommodate more versatile form content, including checkboxes, radio buttons, textareas with long labels, and instructional text.

CMX JumpStart: Metropolis
Reader Level: Reader Level

CMX JumpStart Metropolis is a two-column, hybrid layout that has a fluid left column and a fixed-width right column. It includes rounded corners on its right side, and employs faux column technique to achieve equal height columns. It has a footer as well as a fixed header that remains in view even as the visitor scrolls the page - a property that is now supported by Internet Explorer 7. It features styled unordered lists for the navigation, styled skip links, min and max width, and has a placeholder for a photo gallery. Finally, there are several style sheets involved: a main style sheet, a style sheet for print, and a style sheet for all of the special Internet Explorer rules. And of course, as always, Metropolis validates for XHTML 1.0 Transitional, CSS 2.1, and 508 and WAI accessibility.

Approximate download size: 7.1MB

PHP Formmail Spam Prevention
Reader Level: Reader Level

It used to be that there were clear sides in the junk email battle: the spammers and the spammed. I always considered myself a member of the latter group, and then one day I became a member—inadvertently—of the former. I had become a victim of the email injection attack via a PHP formmail script.

In this update to the Dreamweaver Creating and Processing Form series, we'll take a new look at the phpformmail script and demonstrate how to use a key and email value pair to keep your email address out of the html page.

Spell Checking HTML Forms with JavaScript and PHP
Reader Level: Reader Level

Have you ever had to write a large amount of text into a field on an HTML form and been uncertain of just how reliable your spelling skills are? Wouldn't it be nice if HTML forms, like most other applications, had one of those handy little "Spell Check" buttons? In this article we'll look at how easy it is to implement this functionality using a PHP/JavaScript solution called Speller Pages.

Managing HTML and CSS to Keep Clients Happy and Avoid 'Disaster' - Part Three
Reader Level: Reader Level

Last time we studied the generalities of the viewport and layouts that may appear in it. This time we'll look more closely at those layout types, what they can do, and what they can't.

This is not a tutorial on constructing those layouts, but is instead an overview of how they function in browsers. We hope to demystify the topic just a little for those who may be a bit hazy on the subject.

Let's go!

The Managing HTML and CSS to Keep Clients Happy Series:
Managing HTML and CSS to Keep Clients Happy and Avoid 'Disaster' - Part One
Managing HTML and CSS to Keep Clients Happy and Avoid 'Disaster' - Part Two
Managing HTML and CSS to Keep Clients Happy and Avoid Disaster - Part Three

Managing HTML and CSS to Keep Clients Happy and Avoid 'Disaster' - Part Two
Reader Level: Reader Level

Last time, we talked about little things coders can do to avoid friction with clients and co-workers when code is being prepared. This time we will examine the 'stage' on which we all present our content to the world.

That stage is the viewer's screen, and it's a rather changable place, so understanding what can happen to your content in different devices is crucial when handling the 'front end' of a web site. We'll go over some of the basics, including screen resolution, the viewport, how layouts behave, and more.

If you are a little hazy about these issues, join us as we clarify things for you. Let's go!

The Managing HTML and CSS to Keep Clients Happy Series:
Managing HTML and CSS to Keep Clients Happy and Avoid 'Disaster' - Part One
Managing HTML and CSS to Keep Clients Happy and Avoid 'Disaster' - Part Two
Managing HTML and CSS to Keep Clients Happy and Avoid Disaster - Part Three

Adding WYSIWYG to Textareas: Part 1
Reader Level: Reader Level

One of the problems web developers encounter when allowing clients or users to insert content dynamically is ensuring that the outputted content still conforms to the standard of code required from a modern web site. The average site user knows little or nothing of HTML syntax, and certainly not enough to ensure that your precious pages still meet HTML syntax validation.

Many solutions have been created in order to solve this problem, BB style syntax is one of those; but the majority of users would probably prefer to be able to format their text as they would in a product like Microsoft Word. The generic word processor environment is something that's familiar to almost everyone who uses a personal computer. So, let's say we could actually allow people to insert data as clean HTML using a simple word processing interface, wouldn't that be cool? :) We can, and as a bonus we can easily implement it into a generic Dreamweaver "Insert Record" page.

Introduction to CSS Table-Related Display Values Free!
Reader Level: Reader Level

One of the hardest things for web designers new to CSS layout to get their heads around is that divs don't act like table cells, the traditional building blocks of page layouts. Table cells automatically expand to hold their content, match each other in height, and stack horizontally, but divs don't do these things, making CSS layouts that emulate table layouts tricky. However, there's an easy way to get your divs to act like table-cells: tell them to using the display property. This article will introduce the table-related values of the display property of CSS 2.1 that allow you to make any non-table HTML element act like any table element. In the article following this one, you'll then learn how to use these display values to create a pure CSS layout that emulates the behavior of a table layout

Managing HTML and CSS to Keep Clients Happy and Avoid 'Disaster' - Part One Free!
Reader Level: Reader Level

Web design is a complex craft, made even more complex by the need to deal with clients, co-workers from other fields, and the ongoing changes in software, hardware, and the business landscape. While a lot of these things can be understood only through experience, there are still plenty of simple problems that could easily be avoided if they were known about in advance.

In this series we intend to discuss some of the 'dumb mistakes' (caused by simple ignorance) that happen when advancing coders start to use their newly won skills in the real world, to earn actual money. These common errors can't all be covered, there's just too many ways to go wrong, but we'll make a serious attempt to address the major issues. So sit back and learn about the things we and others have goofed up, over and over and over...

The Managing HTML and CSS to Keep Clients Happy Series:
Managing HTML and CSS to Keep Clients Happy and Avoid 'Disaster' - Part One
Managing HTML and CSS to Keep Clients Happy and Avoid 'Disaster' - Part Two
Managing HTML and CSS to Keep Clients Happy and Avoid Disaster - Part Three

How Inline Elements Work - Part Seven
Reader Level: Reader Level

In Part Seven of this series we'll take a look at a basic facet of inline elements, specifically the 'direction' in which the text and other inline content is displayed. You may think this is an easy property to understand, but in fact, it is possible to order text characters in more than one way, and exactly such interesting things do happen in our world.

Join us as we explore the complications of 'writing direction' and ways to control those directions when needed. Your boss won't fire you if you don't know this information (we hope!), but some day such knowledge may give you what you need to perform a difficult job. Besides, it's rather interesting stuff!

The Inline Elements Series:
How Inline Elements Work - Part One
How Inline Elements Work - Part Two
How Inline Elements Work - Part Three
How Inline Elements Work - Part Four
How Inline Elements Work - Part Five
How Inline Elements Work - Part Six
How Inline Elements Work - Part Seven

How Inline Elements Work - Part Six
Reader Level: Reader Level

It's time for more enlightening details about CSS properties that affect text and other inline elements. In the sixth part of our series, we look at text-indent, which adds a special space to a text block, and white-space, a tool for controlling both source whitespace and browser wrapping behaviors. Yes, it's stuff that all well-rounded web authors need to know!

The Inline Elements Series:
How Inline Elements Work - Part One
How Inline Elements Work - Part Two
How Inline Elements Work - Part Three
How Inline Elements Work - Part Four
How Inline Elements Work - Part Five
How Inline Elements Work - Part Six
How Inline Elements Work - Part Seven

How Inline Elements Work - Part Five
Reader Level: Reader Level

In Part Five of our series we'll cover the often misunderstood text-align property, as well as the letter-spacing and word-spacing properties. We'll look at what each property is supposed to do, the values available, browser support, and some of the things to watch out for if you choose to use one or more of these properties. Come along and learn about some very interesting properties!

The Inline Elements Series:
How Inline Elements Work - Part One
How Inline Elements Work - Part Two
How Inline Elements Work - Part Three
How Inline Elements Work - Part Four
How Inline Elements Work - Part Five
How Inline Elements Work - Part Six
How Inline Elements Work - Part Seven

How Inline Elements Work - Part Four
Reader Level: Reader Level

In this, the fourth tutorial in our series, we continue with inline elements by looking at some CSS properties that directly modify the appearance of the text glyphs themselves. The font-style, font-variant, and text-transform properties are ones that most coders may not be very familiar with, but they can be useful when the need arises. We'll cover what they're supposed to do, and then look at practical applications and any potential problems with browser implementation. Onward!

The Inline Elements Series:
How Inline Elements Work - Part One
How Inline Elements Work - Part Two
How Inline Elements Work - Part Three
How Inline Elements Work - Part Four
How Inline Elements Work - Part Five
How Inline Elements Work - Part Six
How Inline Elements Work - Part Seven

How Inline Elements Work - Part Three
Reader Level: Reader Level

A large variety of CSS rules are available to modify text elements, some easy and straightforward, and some less so. Familiarity with the ways text styling is actually handled in real browsers can save a lot of time when designing pages. In this tutorial installment we'll cover the color, font-weight, and font-family properties from the easy category, and text-decoration from the not-so-easy category. Join us!

The Inline Elements Series:
How Inline Elements Work - Part One
How Inline Elements Work - Part Two
How Inline Elements Work - Part Three
How Inline Elements Work - Part Four
How Inline Elements Work - Part Five
How Inline Elements Work - Part Six
How Inline Elements Work - Part Seven

How Inline Elements Work - Part Two
Reader Level: Reader Level

In part one we introduced the base concepts behind inline elements, and now we start getting into some details behind text display, which is the primary inline content on the web.

We'll circle around the EM Square a bit, find out about fine tuning of font sizes, and lift the lid on line-height just a little. As always in this series, we attempt to make the arcane world of text and inline elements less confusing to the new and not-so-new coder alike.

The Inline Elements Series:
How Inline Elements Work - Part One
How Inline Elements Work - Part Two
How Inline Elements Work - Part Three
How Inline Elements Work - Part Four
How Inline Elements Work - Part Five
How Inline Elements Work - Part Six
How Inline Elements Work - Part Seven

Creating the Print Style Sheet for Vienna: Part Two
Reader Level: Reader Level

In Part One of this series we explored reasons why we might want to include a print style sheet in our web pages. We especially focused on the problems many browsers have with printing out CSS layouts unless we make changes to floats and any positioning other than static. We looked at the various ways to attach a print style sheet, and we reconstructed Vienna's print style sheet. Now we'll look at some of the paged media properties in the CSS2 specifications that, if better supported, could provide almost as much sophisticated control as there is in print production. Next we'll look at creating page breaks and solving margin problems. And finally, we'll look at generated content in general, and especially focus on the attr() function that enables us to automatically print full URLs after link text by using the content property in conjunction with the :after pseudo class.

Rollovers: Fireworks vs. Dreamweaver
Reader Level: Reader Level

Q."Should I do image rollovers in Fireworks or Dreamweaver? I've heard it's better to do them in Dreamweaver."

I've read many posts in the Dreamweaver forum warning people away from using Fireworks image rollovers, "because Fireworks produces bloated code" compared with Dreamweaver's. No doubt I'll stir up a hornets' nest with this tutorial, but let's do image rollovers in both Fireworks and Dreamweaver so you can see the difference and decide for yourself.

CSS: Getting Into Good Coding Habits Free!
Reader Level: Reader Level

In this article we will look at what I would consider to be good coding practices when laying out a CSS design and building your style sheet.

We will look at how we can make our style sheets more manageable through the use of comments and see how we can use our style sheets to their greatest effect.

Introducing the CMX CSS Snippet Collection - Part One
Reader Level: Reader Level

CSS Positioning layouts are hot, and many people are trying to make the transition from the mostly reliable, but non-semantic, table-based layouts we've all used for years. CSS 2.1 provides great features for laying out pages, and the specs for CSS 3 indicate that some day the future of design on the web will be ever brighter indeed.

We here at CMX try to make the learning curve as painless as possible with our many CSS tutorials and articles. Now we'd like to offer you a diagnostic tool that spares you some typing and memorizing. We are proud to introduce the CMX CSS Snippets Collection. Snippets, as you may well be aware, are bits of reusable code that paste as blocks or around selections with the click of an insert button.

This article includes an extension for installing part one of the collection into the Dreamweaver Snippets panel, and a tutorial that explains the problems and solutions that the hacks correct.

Part One of the CMX CSS Collection includes the following:
  • Caio Hack
  • Anti-Caio Hack
  • IE Mac only
  • IE Mac only 2
  • Hide from Mac
  • Holly Hack
  • Box Model Hack
  • Tan Hack
  • Tan Hack and Anti-Mac combined
  • 6 IE Conditionals for all IE, 5.0, 5, 5.5, gte 5.5, and 6

Read on and bust those bugs!



Introducing the CMX CSS Snippet Collection - Part Two
Reader Level: Reader Level

CSS Positioning layouts are hot, and many people are trying to make the transition from the mostly reliable, but non-semantic, table-based layouts we've all used for years. CSS 2.1 provides great features for laying out pages, and the specs for CSS 3 indicate that some day the future of design on the web will be ever brighter indeed.

We here at CMX try to make the learning curve as painless as possible with our many CSS tutorials and articles. Now we'd like to offer you a diagnostic tool that spares you some typing and memorizing. We are proud to introduce the CMX CSS Snippets Collection. Snippets, as you may well be aware, are bits of reusable code that paste as blocks or around selections with the click of an insert button.

This article includes an extension for installing part two of the collection into the Dreamweaver Snippets panel, and a list that explains the problem and then the solution that each snippet corrects.

Our Snippets in Part Two include the following:
  • Win IE fully clickable CSS buttons
  • Win IE text inheritance in tables
  • Win IE double float margin
  • Win IE three pixel gap bug
  • Win IE three pixel gap bug part 2
  • Win IE missing image bug
  • IE word wrap
  • IE expanding boxes and too wide images
  • Set text size on the body
  • Set font-size and family on multiple selectors for NS4
  • Zero margins on multiple elements
  • Clearing element for floats
  • Easy clearfix for floats
  • Floating an image to the left
  • Floating an image to the right
  • Clearing a float after an image
  • Centered layouts that work

Read on and bust those bugs!



Fireworks Hotspot Rollovers
Reader Level: Reader Level

Everyone knows that web images are rectangular. If you want a navigation system made of image rollovers, you have to make them out of stacks of rectangles, or horizontal arrays of rectangles. Rectangles to the left. Rectangles to the right. Rectangles over and under. Gets boring, eh?

Debunking Alt Text Myths
Reader Level: Reader Level

With accessibility getting more press these days and the requirement to include the alt attribute on all images now part of the HTML and XHTML Strict specifications, more web developers than ever are finally providing alt text on their images. But the type of alt text you provide plays a tremendous role in how accessible your page truly is. When used incorrectly, alt text can actually hinder accessibility! This article will debunk four myths regarding the use of alt text so that developers can provide alt text that is more useful to non-visual users. Learn how to provide alt text that maximizes your page's accessibility in a real way rather than just satisfies automated accessibility checkers.

Semantic (X)HTML Markup: Styling Tables
Reader Level: Reader Level

In the last Semantic (X)HTML article, you learned about a number of underused table elements that can improve your table's structure and accessibility. Guess what – there's more! The second part of the semantic tables article covers additional table elements that act primarily as hooks for visual formatting. This article will introduce the thead, tfoot, tbody, col, and colgroup elements. You'll learn which CSS properties you can use to format your tables and how to apply them to the appropriate table elements.

The Semantic (X)HTML Markup Series:
Semantic (X)HTML Markup: An Introduction
Semantic (X)HTML Markup: Headings and Paragraphs
Semantic (X)HTML Markup: Creating Emphasis
Semantic (X)HTML Markup: Blockquote, Q, and Cite
Semantic (X)HTML Markup: Structuring Lists
Semantic (X)HTML Markup: Styling Lists
Semantic (X)HTML Markup: Using Tables Appropriately
Semantic (X)HTML Markup: Styling Tables
Semantic (X)HTML Markup: Phrase Elements
Semantic (X)HTML Markup: Other Elements

Using Image Metadata in PHP - Part 2
Reader Level: Reader Level

In Part 1 we took at look how to read metadata from images in PHP using the JPEG-Meta class. This time around we take a look at how to use the same class to write and update metadata back to our images, giving us a complete JPEG metadata solution for our PHP applications.

Semantic (X)HTML Markup: Using Tables Appropriately Free!
Reader Level: Reader Level

In this article, you'll learn how to use perhaps the most misused semantic element: the table element. Like all the other (X)HTML elements you've learned about in the Semantic (X)HTML Markup series, there's a right and wrong way to use tables. This article explains when it is appropriate to use tables (yes, there are such times!) and how to structure tables when you do need to use them. Beyond just rows and cells, (X)HTML provides you with additional elements and attributes that can add structure and accessibility to your tables and make them easier to style down the road.

The Semantic (X)HTML Markup Series:
Semantic (X)HTML Markup: An Introduction
Semantic (X)HTML Markup: Headings and Paragraphs
Semantic (X)HTML Markup: Creating Emphasis
Semantic (X)HTML Markup: Blockquote, Q, and Cite
Semantic (X)HTML Markup: Structuring Lists
Semantic (X)HTML Markup: Styling Lists
Semantic (X)HTML Markup: Using Tables Appropriately
Semantic (X)HTML Markup: Styling Tables
Semantic (X)HTML Markup: Phrase Elements
Semantic (X)HTML Markup: Other Elements

Styling Forms: Fieldset and Legend
Reader Level: Reader Level

In my last form tutorial, we looked at creative ways to use CSS to style label, input, select and textarea field elements. This time, we're going to move on to fieldset and legend. These elements will boost the accessibility of your form in most cases as well as really add a lot of style to your web site when handled correctly. Your forms don't have to be unattractive. In this tutorial, you'll learn about the styling options of these two form elements as well as some of the more stubborn gotchas and how to work around them. Source files to begin the tutorial, the gradient png and the final example, with commented CSS, are included.

Validating Forms to xhtml strict
Reader Level: Reader Level

In this tutorial we will investigate the requirements that need to be met when validating our forms to the xhtml 1.0 strict standard. We'll look at the elements we have available to us and how we can style them with CSS.

Semantic (X)HTML Markup: Blockquote, Q, and Cite
Reader Level: Reader Level

(X)HTML contains three semantic elements you can use to mark up text on your web page that comes from or names an external source: blockquote, q, and cite. Although blockquote is widely (and, very often, wrongly) used across the web, q and cite are relatively unknown and underused.

The fourth article in the Semantic (X)HTML series introduces these elements, teaches you when and how it's appropriate to use each, and discusses browser shortcomings in the support of these tags so you can be sure you're using them in a way that's cross-browser compatible. You'll also learn how to use CSS in conjunction with these elements to produce unique visual styling.

The Semantic (X)HTML Markup Series:
Semantic (X)HTML Markup: An Introduction
Semantic (X)HTML Markup: Headings and Paragraphs
Semantic (X)HTML Markup: Creating Emphasis
Semantic (X)HTML Markup: Blockquote, Q, and Cite
Semantic (X)HTML Markup: Structuring Lists
Semantic (X)HTML Markup: Styling Lists
Semantic (X)HTML Markup: Using Tables Appropriately
Semantic (X)HTML Markup: Styling Tables
Semantic (X)HTML Markup: Phrase Elements
Semantic (X)HTML Markup: Other Elements

Do You Want To Do That With CSS? — Centering a Wrapper Free!
Reader Level: Reader Level

This article will deal with one of the most basic problems encountered when developing a tableless design, namely getting a fixed width "page wrapper" element to center at all window resolutions and in all modern browsers. We'll review what a wrapper is, explain how to center it, and then discuss how to get IE5.x/Win browsers to cooperate. Finally, we'll touch on a little Gecko-based problem with the method, and ways to overcome that, as well. Join us.

Semantic (X)HTML Markup: Creating Emphasis
Reader Level: Reader Level

Adding emphasis is not just about making certain words and phrases stand out visually – it should be a semantic practice as well. Emphasized words tell your users which words are more important and enhance the meaning of your text.

The third article in the Semantic (X)HTML series explains how to use the em and strong elements to create emphasis in your text. Learn how to get away from using b and i to emphasize text – and learn when it may still be appropriate to use these presentational tags.

The Semantic (X)HTML Markup Series:
Semantic (X)HTML Markup: An Introduction
Semantic (X)HTML Markup: Headings and Paragraphs
Semantic (X)HTML Markup: Creating Emphasis
Semantic (X)HTML Markup: Blockquote, Q, and Cite
Semantic (X)HTML Markup: Structuring Lists
Semantic (X)HTML Markup: Styling Lists
Semantic (X)HTML Markup: Using Tables Appropriately
Semantic (X)HTML Markup: Styling Tables
Semantic (X)HTML Markup: Phrase Elements
Semantic (X)HTML Markup: Other Elements

Semantic (X)HTML Markup: Headings and Paragraphs Free!
Reader Level: Reader Level

Using headings on your (X)HTML pages is a great way to easily improve their accessibility and search engine rankings. However, the way headings appear in your browser often leaves much to be desired: large gaps above and below each heading, and huge font sizes. To avoid these problems, it may seem easier just to leave the heading tags out, instead using font and bold tags to simulate the look of headings. Many web developers do just this, thereby losing out on the great benefits of semantic markup.

Luckily, its easy to change the way your headings display using CSS, so you can use semantic markup and still achieve the look you want. The second article in the Semantic (X)HTML Markup series describes how to use headings and paragraphs appropriately to create a hierarchy of page content and how to style them visually.

The Semantic (X)HTML Markup Series:
Semantic (X)HTML Markup: An Introduction
Semantic (X)HTML Markup: Headings and Paragraphs
Semantic (X)HTML Markup: Creating Emphasis
Semantic (X)HTML Markup: Blockquote, Q, and Cite
Semantic (X)HTML Markup: Structuring Lists
Semantic (X)HTML Markup: Styling Lists
Semantic (X)HTML Markup: Using Tables Appropriately
Semantic (X)HTML Markup: Styling Tables
Semantic (X)HTML Markup: Phrase Elements
Semantic (X)HTML Markup: Other Elements

Common Coding Problems with HTML and CSS - Part Two
Reader Level: Reader Level

Last time, the 'gotchas' were general web coding problems but now we turn to some headaches directly related to CSS and positioning. Don't be scared! These beasties are pushovers if you know their weaknesses. Ready to kick some bug backside? Let's roll!

Common Coding Problems with HTML and CSS - Part One Free!
Reader Level: Reader Level

Coders learning CSS, and others as well, often run into frustrating problems that chew up time and produce major headaches. What's worse, these problems are usually known to others who have gone through the same mill. In an attempt to ease the path of others, we have identified a number of common coding 'gotchas' so you won't have to re-invent the wheel. Please proceed...

The Benefits of Externalizing Fireworks Pop-up menu JavaScript Free!
Reader Level: Reader Level

Fireworks and Dreamweaver pop-up menus have their uses, in spite of all the critics. One nagging issue though, is that both DW and FW insist on dumping a hefty javascript function into EVERY page that makes use of the menu. This article shows you how to turn this internal js into an external file, and how to link it to the pages that need the pop up menu.

Rendering Mode and Doctype Switching Free!
Reader Level: Reader Level

Even though today's browsers have moved toward more standards-compliant behavior, it is still necessary to allow older pages to display as they have in the past. However, this can cause problems with modern pages written to (x)HTML and CSS standards if a browser cannot determine how to best render the page. The solution? Come learn about Rendering modes and the "Doctype Switch."

Creating a Multi-Page Form
Reader Level: Reader Level

Create a form that carries over several pages. This is useful for loan applications, lengthy registration pages, etc.