I am using a CMS system, which has a template for generating forms, with predefined CSS.
The CSS file in use is here
The form I am using at the moment is:
<div class="bodyline">
<?php $theform->startForm($pageTitle)?>
<div id="rightSideDiv">
<fieldset>
<legend><label for="report">Report</label></legend>
<p>
<?php $theform->showField("towel")?>
</p>
</fieldset>
</div>
<div id="leftSideDiv">
<fieldset>
<legend><label for="name">Info</label></legend>
<p class="big"><?php $theform->showField("firstname"); ?></p>
<p class="big"><?php $theform->showField("lastname"); ?></p>
<p class="big"><?php $theform->showField("country"); ?></p>
<p class="big"><?php $theform->showField("passport"); ?></p>
<p class="big"><?php $theform->showField("email"); ?></p>
<p class="big"><?php $theform->showField("roomnumber"); ?></p>
<p class="big"><?php $theform->showField("hostel"); ?></p>
<p class="big"><?php $theform->showField("checkin"); ?></p>
<p class="big"><?php $theform->showField("checkout"); ?></p>
<p class="big"><?php $theform->showField("locker"); ?></p>
<p class="big"><?php $theform->showField("towel"); ?></p>
<p class="big"><?php $theform->showField("tabno"); ?></p>
</fieldset>
</div>
</div>
This should in theory show a box on the left, and a box on the right. Instead, rightSideDiv is either displayed above or below leftSideDiv, taking up the entire width of the form.
The resultant HTML is
<form action="/1/phpbms/modules/micro%20hospitality/guests_addedit.php?id=1" method="post" name="record" onsubmit="return validateForm(this);"><div id="dontSubmit"><input value=" " onclick="return false;" type="submit"></div> <div id="topButtons"><div class="saveCancels"><input accesskey="s" title="Save (alt+s)" id="saveButton1" name="command" value="save" class="Buttons" type="submit"><input id="cancelButton1" name="command" value="cancel" class="Buttons" onclick="this.form.cancelclick.value=true;" accesskey="x" title="(access key+x)" type="submit"></div></div>
<h1 id="h1Title"><span>Guests</span></h1>
<div id="rightSideDiv">
<fieldset>
<legend><label for="report">Report</label></legend>
<p>
<input id="towel" name="towel" value="1" class="radiochecks" type="checkbox"> <label id="towelLabel" for="towel">Towel</label> </p>
</fieldset>
</div>
<div id="leftSideDiv">
<fieldset>
<legend><label for="name">Info</label></legend>
<p class="big"><label for="firstname" class="important">First Name</label><br><input id="firstname" name="firstname" value="Jason" size="32" maxlength="64" class="important" type="text"></p>
</fieldset>
</div>
</form>
Now, the included forms work fine, and I can´t figure out why.
The included form code for a page that works:
<div class="bodyline">
<?php $theform->startForm($pageTitle)?>
<div id="rightSideDiv">
<fieldset>
<legend><label for="importance">importance / privacy</label></legend>
<p>
<?php $theform->showField("importance")?>
<?php $theform->showField("private")?>
</p>
</fieldset>
</div>
<div id="leftSideDiv">
<fieldset>
<legend><label for="content">memo</label></legend>
<p id="timeStampP">
<button id="timeStampButton" type="button" class="graphicButtons buttonTimeStamp" accesskey="t" title="Add time stamp to memo (Access Key - t)">time stamp</button>
</p>
<p>
<textarea name="content" cols="45" rows="23" id="content"><?php echo htmlQuotes($therecord["content"])?></textarea>
<input id = "username" type="hidden" value="<?php echo formatVariable(trim($_SESSION["userinfo"]["firstname"]." ".$_SESSION["userinfo"]["lastname"]))?>" />
</p>
</fieldset>
</div>
</div>
and the resultant HTML
<form action="/1/phpbms/modules/base/notes_addedit1.php" method="post" name="record" onsubmit="return submitForm(this)" id="record"><div id="dontSubmit"><input value=" " onclick="return false;" type="submit"></div> <div id="topButtons"><div class="saveCancels"><input accesskey="s" title="Save (alt+s)" id="saveButton1" name="command" value="save" class="Buttons" type="submit"><input id="cancelButton1" name="command" value="cancel" class="Buttons" onclick="this.form.cancelclick.value=true;" accesskey="x" title="(access key+x)" type="submit"></div></div>
<h1 id="h1Title"><span>Note/Task/Event</span></h1>
<div id="rightSideDiv">
<fieldset>
<legend><label for="importance">importance / privacy</label></legend>
<p>
<select name="importance" id="importance"> <option value="3">Highest</option>
<option value="2">High</option>
<option value="1">Medium</option>
<option value="0" selected="selected">Normal</option>
<option value="-1">Low</option>
<option value="-2">Lowest</option>
</select>
<input id="private" name="private" value="1" class="radiochecks" checked="checked" type="checkbox"> <label id="privateLabel" for="private">private</label> </p>
</fieldset>
</div>
<div id="leftSideDiv">
<fieldset>
<legend><label for="content">memo</label></legend>
<p id="timeStampP">
<button id="timeStampButton" type="button" class="graphicButtons buttonTimeStamp" accesskey="t" title="Add time stamp to memo (Access Key - t)">time stamp</button>
</p>
<p>
<textarea name="content" cols="45" rows="23" id="content"></textarea>
<input id="username" value="Administrator" type="hidden">
</p>
开发者_JAVA百科 </fieldset>
</div>
</form>
Is there any reason for the behavior I described?
leftSideDiv has no float. Either redefine it in the css or set it as an inline-style:
float:left
http://phpbms.org/browser/trunk/phpbms/common/stylesheet/mozilla/pages/base/notes.css#L26
It will also need a width attached to it, depending on how wide your containers are. This might help:
http://www.smashingmagazine.com/2007/05/01/css-float-theory-things-you-should-know/
精彩评论