Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Using CSS to lay out form structure

From: Dreamweaver CS3 Beyond the Basics

Video: Using CSS to lay out form structure

Often to control form layout, designers will resort to adding tables to their forms even when there is no semantic reason to utilize a table to display data. So to avoid this needless markup, you should use CSS to control all form layout presentation and leave your form markup as logical as possible. So in this exercise we will tackle two problems most designers face when dealing with form layout. Lining up text input boxes and labels and creating multi-column checkboxes or radio button groups. So, again if you are working along with me, we are still in the contact.htm file and we are about to do a few more stylistic elements here to our forms.

Using CSS to lay out form structure

Often to control form layout, designers will resort to adding tables to their forms even when there is no semantic reason to utilize a table to display data. So to avoid this needless markup, you should use CSS to control all form layout presentation and leave your form markup as logical as possible. So in this exercise we will tackle two problems most designers face when dealing with form layout. Lining up text input boxes and labels and creating multi-column checkboxes or radio button groups. So, again if you are working along with me, we are still in the contact.htm file and we are about to do a few more stylistic elements here to our forms.

It's a common practice for most people to actually select the text input field and go down to the Property inspector and insert a character width and a maximum amount of characters and there is nothing wrong with doing it that way. As a matter of fact you can go ahead and insert a maximum number of characters if you want for this. Let's do let's say a 60 and maybe we will do the same thing for the Email. I will click Email and type in a maximum number of characters there. But I am not going to do a Character Width, and the reason I am not going to do a Character Width is because I can actually control that through cascading style sheets. So I am going to open up my CSS Styles panel and if your styles are all expanded down as mine are, I am going to close main.css and there is contact_secondary. Now I could edit it here, but it's going to be a lot easier for me to do this by hand. So I am going to double-click contact_secondary to open up that style sheet.

If I scroll down the Styles I am going to find a commented area that is just for form styles. So I am going to keep going down until I find the clear class style. I am just going to add a rule right underneath clear. So let's go ahead about line 69 and add a new rule. So let's type in input, input is actually an element selector and it refers to almost every form element. So checkboxes, text areas, text fields, those are all considered input tags. So I am going to go ahead and open up my curly brace and I am just going to pass along one value to it, width, and I am going to make that value equal to 200 pixels wide. So we will save that and now if I go back to contact.htm, I can see that the width of every element has really expanded. Now it's not going to stretch your checkboxes to 200 pixels wide but what it does is it makes the area that that element occupies 200 pixels wide. It's also done the same thing for our Additional Comments and if I scroll down I can see that the other form elements are experiencing about the same thing. So let's go back up to the top of the form.

So that's not necessarily what I want for everything. Maybe for the input text fields but not for my other form fields. So let's see how we can kind of avoid it for those guys. If I actually select one of the checkboxes, I notice down on my Tag Selector that the checkbox is input.checkbox. Now that doesn't occur naturally. So if I switch over to Code View I can actually see that this checkbox has a class applied to it called checkbox. As a matter of fact, all the checkboxes have that class applied to it. Now we are using this for stylistic purposes, so what we would want to do is go through and find every field that you don't want to be controlled through that generic input element and create a class for it. And we are going to write a group selector that's going to basically turn that width off. The other thing that this does for us is it allows us to pass in information about what this object is. So assigning a class value to this is not necessarily needless markup; it is conveying information.

So let's go back to our contact_ secondary and underneath my input I am first going to go ahead insert a comment. Remember, we can do that with our coding toolbar. I can just click Apply Comment and we will do a CSS comment here. Inside this comment I am going to type in reset width for non-text inputs. Anytime you are doing a rule that's basically responding to another rule or resetting some value, you probably want to throw a comment in there so that not only people working with you or people who might be coming after you understand what's going on, but this is to remind yourself of what you have done this and sometimes that's more important than anything else.

So I am going to type in input.radio, so those will be on my radio buttons and I will do a comment and say input. checkbox. I will do another comment and I will type in input.submit and then finally I will open a curly brace and assign a width value to this as well. But this width value is just going to auto and that is our way of telling these elements whatever width you naturally go ahead and be that width. So I will go ahead and save this. Now when I go back to my contact form, switch over to Design View, you can see that although my text elements are exactly the width I need them to be, all my checkboxes have now reverted back to their normal width.

Now the second part of this is making sure that our labels in our text input fields are lined up. Name and Email are about the same width, but occasionally you are going to have Address and maybe Street Address and other things like this are going to be much longer and those typically give you form elements a ragged justified appearance. So by going ahead and establishing a width for input elements and then establishing a large enough margin with your label elements, you can ensure that you are going to have properly lined up labels and elements regardless of their width. So let's go back to our contact_secondary.css and underneath the rule that we just scripted we will do another rule. Here, we are going to go ahead and comment this one out as well since we are applying some pretty specialized selectors, we will go ahead and comment these out.

In this one we will type in display labels next to form elements, add a class for when you want them to stack. Okay, so what is this doing? Well, these rules are going to make sure our labels are appearing either to the side or above the form elements. Sometimes we are going to want our labels out to the side; sometimes we are going to want them above it. So this is going to give us the flexibility to do both and we are going to pass along our margin that's also going to keep the labels far enough away from our elements so that they are lined up properly.

So the first one will be our label element tags. We go ahead and do label and inside that we are going to go ahead and float that to the left. So we are using floats here and we have actually floated a container element. Don't forget to do that. So you could float the fieldset tag or you could float the form tag itself. That would make sure that will still contain these floats. Underneath that we are going to type in margin and we will go down to margin-right and we will go ahead and give this a margin of 2 em. So we are tying that to the actual text size which is a good idea because labels are textual. All right, so we will go down right below that and we will pass in a class as well. So we will type in a label.top. Now that's all one word, there is no spaces there, so label.top. That is an element-specific class selector and underneath that we will type in display. We will change the display to block and underneath that we will type in float and we will pass in the value of none. So that's turning off our float and it's making it display as a block label element. Now block label elements occupy their own space. This will not allow the label and the form element to reside on the same line.

So we will go ahead and save that, go back to contact.htm and now notice that our Name and Email have a little bit of distance between and our form elements. If we scroll down and look at Additional Comments, Additional Comments is not on its own line and lined up directly above our text area. If I click inside Additional Comments I can see that this already has a label tag with the top class applied to it. So here we are using both methods. So let's go ahead and save this file. That helps up deal with the layout problem of lining up text input boxes and labels. In our next exercise, we will look at creating multi-column checkboxes or radio button groups so that they can stack next to each other vertically.

Show transcript

This video is part of

Image for Dreamweaver CS3 Beyond the Basics
Dreamweaver CS3 Beyond the Basics

102 video lessons · 38726 viewers

James Williamson
Author

 
Expand all | Collapse all
  1. 2m 3s
    1. Welcome
      1m 17s
    2. Using the exercise files
      46s
  2. 1h 23m
    1. Reviewing the Coding toolbar
      8m 42s
    2. Customizing the Coding toolbar
      9m 52s
    3. Taking advantage of Code Hinting
      7m 20s
    4. Using snippets and shortcuts
      11m 10s
    5. Using the Quick Tag Editor
      5m 18s
    6. Using Find and Replace
      9m 50s
    7. Regular expressions
      5m 39s
    8. Using Bridge with Dreamweaver CS3
      8m 28s
    9. Round-trip editing with Photoshop CS3
      3m 40s
    10. Leveraging image variables in Photoshop CS3
      7m 32s
    11. Integrating external variables into your workflow
      6m 16s
  3. 37m 26s
    1. Understanding the CSS Styles panel
      7m 59s
    2. Understanding the Cascade
      5m 50s
    3. Understanding Inheritance
      5m 8s
    4. Understanding Specificity
      7m 5s
    5. Managing CSS styles
      5m 4s
    6. Using Design-Time style sheets
      6m 20s
  4. 2h 19m
    1. Using the new CSS template pages
      5m 59s
    2. Understanding DIV tag structure and layout
      12m 0s
    3. Understanding the CSS box model
      10m 0s
    4. Using absolute and relative positioning
      8m 35s
    5. Understanding floating elements
      7m 9s
    6. Clearing floats
      7m 19s
    7. Using floats to control page layout
      3m 45s
    8. Building structure and assigning IDs
      10m 19s
    9. Applying basic styling to structured content
      11m 14s
    10. Positioning container elements
      11m 4s
    11. Enhancing layouts with background graphics
      11m 48s
    12. Creating faux columns with background graphics
      8m 55s
    13. Creating rounded corners with background graphics
      9m 17s
    14. Building navigation with CSS
      16m 57s
    15. Using Dreamweaver's Browser Check feature
      5m 31s
  5. 53m 22s
    1. Creating properly structured forms
      6m 30s
    2. Creating accessible forms
      6m 41s
    3. Using CSS to lay out form structure
      7m 40s
    4. Creating vertical columns for form elements
      7m 48s
    5. Adding user feedback
      5m 52s
    6. Applying advanced styling to forms
      8m 11s
    7. Client-side form validation
      4m 17s
    8. Validating forms with the Spry Validation tools
      6m 23s
  6. 1h 20m
    1. Understanding the Spry framework
      3m 43s
    2. Defining a data source for use in Spry
      3m 56s
    3. Creating a Spry table
      8m 8s
    4. Using the Spry widgets
      8m 11s
    5. Connecting various data sets
      4m 50s
    6. Understanding Spry widget structures
      7m 1s
    7. Applying custom styles to Spry widgets
      6m 24s
    8. Applying additional custom styles to Spry widgets
      8m 46s
    9. Controlling Spry widget behaviors with JavaScript
      6m 0s
    10. Controlling Spry widget animations with JavaScript
      9m 31s
    11. Creating effects with Spry behaviors
      4m 42s
    12. Hand-coding Spry
      9m 11s
  7. 1h 11m
    1. Creating a base template
      8m 6s
    2. Creating editable attributes
      6m 26s
    3. Creating a new page from a template
      7m 42s
    4. Applying a template to an existing page
      4m 36s
    5. Creating nested templates
      5m 24s
    6. Using repeating regions
      6m 34s
    7. Creating editable and non-editable optional regions
      6m 0s
    8. Using template parameters
      7m 26s
    9. Using template expressions
      9m 59s
    10. Using conditional template expressions
      8m 54s
  8. 54m 40s
    1. Examining XML structure
      2m 44s
    2. Creating an XML document
      9m 9s
    3. Using the CDATA structure
      5m 7s
    4. Creating an XSLT file
      4m 33s
    5. Binding data from an XML to an XSLT document
      5m 6s
    6. Inserting repeating regions into an XSL document
      5m 16s
    7. Creating a client-side XSL transformation
      2m 52s
    8. Styling a remote RSS feed
      7m 29s
    9. Creating a server-side XSL transformation
      5m 31s
    10. Writing XSL expressions
      6m 53s
  9. 1h 2m
    1. Overview of building dynamic websites
      1m 35s
    2. Installing PHP, MySQL, and Apache on Mac
      3m 22s
    3. Installing PHP, MySQL, and Apache on Windows
      3m 54s
    4. Creating a MySQL database
      3m 16s
    5. Defining a testing server and database bindings
      6m 14s
    6. Creating a database recordset
      4m 35s
    7. Adding dynamic content to the page
      5m 14s
    8. Creating repeating regions of dynamic content
      7m 6s
    9. Filtering database records
      7m 39s
    10. Using the Live Preview
      10m 22s
    11. Passing URL parameters
      4m 23s
    12. Dynamically generating links
      5m 18s
  10. 57m 9s
    1. Understanding behaviors
      5m 16s
    2. Installing additional behaviors
      3m 39s
    3. Planning to create a custom behavior
      3m 42s
    4. Examining existing behaviors
      5m 32s
    5. Building a behavior function
      7m 23s
    6. Creating an Action file
      6m 48s
    7. Enabling behavior functions
      9m 1s
    8. Initializing the user interface for a behavior
      3m 9s
    9. Loading behaviors in Dreamweaver
      6m 47s
    10. Testing and debugging behaviors
      5m 52s
  11. 27m 12s
    1. Running reports
      7m 41s
    2. Checking and validating links
      3m 40s
    3. Using cloaking
      5m 42s
    4. Using Check In/Check Out
      4m 3s
    5. Using Design Notes
      6m 6s
  12. 20s
    1. Goodbye
      20s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now "Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Dreamweaver CS3 Beyond the Basics.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.