0

My apologies in advance, I have VERY modest coding experience and am trying to get to grips with HTML...

While applying some basic code for a contact form from insightly (below/attached), I'm trying to incorporate whats discussed here

Can't seem to get it right though, would just like the field titles on the left with the actual fields behind them aligned, with a return between each and while sticking to the coding needed for it to work with Insightly..

Thanks in advance for any help!

[EDIT 1]

Thanks a lot, I have now managed to make it appear more or less as wanted with a bit of CSS (attached). Unfortunately I can't quite get it to behave as need be though, it submits to insightly fine but it doesn't clear the fields upon submit, nor have I found a working method to provide confirmation that it was sent, other than a particularly ugly alert window (especially in chrome)..Any help on 'resetting on submit' and a way of telling the user that it was sent would be great! I did try a bit of CSS from here but to no avail...

      <style type="text/css">
/*************CHSE Stylesheet ***/
body { 
    background-color: transparent;
height:360px;
width:280px;
}
textarea {
    height:70px;
    width:273px;
}
</style>
<style>
form label{
display: inline-block;
width: 100px;
font-weight: bold;
}
</style>
<form name="insightly_web_to_contact" action="https://example.insight.ly/WebToContact/Create" method="post"<span style="font-size:14px;"><span style="color:#FFFFFF;font-weight:bold"><span style="font-family:Open Sans;"><input type="hidden" name="formId" value="xxxxxxxxxxxxxxx/xxxxxx=="/>
<span style="font-size:14px;"><span style="color:#FFFFFF;font-weight:bold"><span style="font-family:Open Sans;"><center>Quick Message:</center><br/>
<label for="insightly_firstName">First Name: </label><input id="insightly_firstName" name="FirstName" required="" type="text"/><br/><br/><label for="insightly_lastName">Last Name: </label><input id="insightly_lastName" name="LastName" required="" type="text"/><br/><br/><input type="hidden" name="emails[0].Label" required="" value="Work"/><label for="email[0]_Value">Email: </label><input id="emails[0]_Value" name="emails[0].Value" required="" type="text"/><br/><br/><label for="insightly_background">Message: </label><textarea id="insightly_background" name="background">
</textarea><br/><br/><center><input type="submit" value="Send Message"></center></form>  
Grokify
  • 11,326
  • 5
  • 39
  • 59
SteveB
  • 1
  • 1

1 Answers1

0

The key to attractive layouts is DIVs and CSS.

First, use DIVs to group the various input areas, and to divide each area into left/right (via float).

For example, you might want the label and the input fields to be nicely aligned:

.frmGroup{overflow:hidden;}
.frmLeft {float:left;width:120px;}
.frmRight{float:left;width:300px;}
#thisone{margin-top:50px;}
<form>
  <div class="frmGroup">
    <div class="frmLeft"><label for="fn">First Name:</label></div>
    <div class="frmRight"><input id="fn" type="text" /></div>
  </div>
  <div class="frmGroup">
    <div class="frmLeft">Last Name:</div>
    <div class="frmRight"><input type="text" /></div>
  </div>
  <div id="thisone">
    <textarea cols="50" rows="5"></textarea>
  </div>
</form>

The float instruction is particularly useful, as it allows you to align the DIVs side-by-side. However! It also removes the DIVs from the HTML "flow", meaning that they take zero vertical space. To counter that, add overflow:____ to the parent DIV. In example, I used overflow:hidden]. In the jsFiddle at bottom, experiment by deleting/adding that line.

You can also give an ID to a specific DIV and style it to have either margin or padding above/below/left/right.

DIVs have the added advantage of being block elements, which has the same effect as adding a <br> to the end.

*Also note that the <label> tag is really only useful for buttons, checkboxes, etc. because they allow the user to click the button/checkbox by also clicking on the text label.

Here is a jsFiddle of the above demo that you can experiment with.

cssyphus
  • 31,599
  • 16
  • 79
  • 97