...

View Full Version : CSS padding/margin reset, want it back for lists



malfist
05-21-2008, 07:04 PM
A previous programmer on the project I'm working on left me this:


html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
But I'm trying to make a list (a tree really) and I need the padding and margins back for the nested list to display properly. No matter what I set the padding and margin in the specific style for the list it doesn't do what it should. It looks fine in IE7, but Firefox ignores it.

CaptainB
05-21-2008, 07:21 PM
Your above code can be shortened to this:


* {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}

Then, style your list as you want.

malfist
05-21-2008, 07:30 PM
That's the problem, I don't know what to do to get it to work. I can make it work by commenting out the padding in that style. But if I do that, it doubles the padding/margin in IE. If I leave it in and style padding in the separate style specifically for the list IE doesn't care and Firefox displays it all like it's not nested, which is vital to displaying a tree.

CaptainB
05-21-2008, 08:12 PM
Post up your code, please.

malfist
05-21-2008, 08:59 PM
This is the php file that generates it:


<?php
require_once "Control_Panel_Base.php";
require_once dirname(__FILE__) . "/../../../common/sources/MySQL.php";
require_once dirname(__FILE__) . "/../../../common/sources/Resnet.php";
require_once dirname(__FILE__) . "/../../../common/sources/conf.php";
require_once dirname(__FILE__) . "/../../skins/Resnet_Knowledge_Base_Skin.php";

class Author_Troubleshooting extends Control_Panel_Base {
public function __construct() {
// The values we pass here are the usergroups allowed access.
parent::__construct(STAFF,KM_MEMBER_ID,KM_LEADER_ID,ADMIN_ID);
}

protected function run() {
// To get here we must of had 'act' in $_GET['act'], so we don't have to check for it.
// Also, for us to get here, $_GET['act'] must == 'view', so no need to check for that either.
$this->view();
}

protected function view() {
// If they have enough permission, we want to build a menu. If not, we just want a list.
$menu = $this->common->checkPermissions($_SESSION['usergroups'],KM_MEMBER_ID,KM_LEADER_ID,ADMIN_ID);
$delete = $this->common->checkPermissions($_SESSION['usergroups'],KM_LEADER_ID,ADMIN_ID);

//give them the option to create
$this->skin->append("<a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=create'>Create a Node</a>");

//I want to build a tree of nodes
//Get root nodes, then get ones listed with them as parent ad infintum.
//How can this be displayed?
$tree = new NodeTree($this->skin, $delete);
$this->skin->output();
}
}

class NodeTree {
private $nodeList, $rootNodes, $mysql, $skin, $canDelete;
public function __construct($skin, $canDelete){
$this->nodeList = array();
$this->rootNodes = array();
$this->skin = $skin;
$this->canDelete=$canDelete;
// Initializes the MySQL class and connects it.
$this->mysql = new MySQL();
$this->mysql->connect();
$this->mysql->select_db();

$this->init();
}

/**
* Builds all the trees and lists
*/
private function init(){
//build List first
$sql = "SELECT * FROM kb_trouble";
$result = mysql_query($sql);

//now make nodes
while($row = mysql_fetch_array($result)){
$this->nodeList[] = new Node($this->mysql, $row['id'], $row['parent_id'], $row['article_id'], $row['title'], $row['info']);
}
//nodes have been collected, there should be no more need for the database, at this point.

//find orphan nodes.
$isOrphans = false;
foreach($this->nodeList as $n){
if($n->isOrphan()){
if(!$isOrphans){
$this->skin->append("<h2>You have Orphan Nodes!</h2><br /><font color='RED'>");
$isOrphans = true;
}
$this->skin->append("<a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=edit&amp;id=".$n->getId()."'>".$n->getTitle()."</a> Id: ".$n->getId().", parent_id: ".$n->getParentId().". <a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=delete&amp;id=".$n->getId()."'>[DELETE]</a><br />");
}
}
if($isOrphans)
$this->skin->append("</font>");
else
$this->skin->append("<p>There are No orphen nodes.</p>");

//build the tree. It will be a jagged array (i.e. an array of arrays, with the 2D array having no set length)
$this->rootNodes = $this->getRootNodes();
echo "<br />";
foreach($this->rootNodes as $n){
$this->skin->append("\n<ul><li><strong><a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=edit&amp;id=".$n->getId()."'>".$n->getTitle()."</a></strong>");
if($this->canDelete)
$this->skin->append("<a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=delete&amp;id=".$n->getId()."'>[DELETE]</a>");
$this->skin->append("</li>");
$this->displayTree($n);
$this->skin->append("</ul>");
}
}

private function getRootNodes(){
$nodes = array();
for($i = 0; $i < count($this->nodeList); $i++){
if($this->nodeList[$i]->getParentId() == -1)
$nodes[] = $this->nodeList[$i];
}
return $nodes;
}

private function getChildren($node){
$children = array();
for($i = 0; $i < count($this->nodeList); $i++){
if($this->nodeList[$i]->getParentId() == $node->getId())
$children[] = $this->nodeList[$i];
}
if(count($children) == 0)
return null;
else
return $children;
}

/**
* @params $n = node
*/
public function displayTree($n){
$children = $this->getChildren($n);
if($children == null){
return;
}
else {
//echo "<br />";
foreach($children as $c){
$this->skin->append("\n<ul>\n\t<li><a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=edit&amp;id=".$c->getId()."'>".$c->getTitle()."</a>");
if($this->canDelete)
$this->skin->append("<a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=delete&amp;id=".$c->getId()."'>[DELETE]</a>");
$this->skin->append("</li>\n");
$this->displayTree($c);
$this->skin->append("</ul>\n");
}
}
}

/**
* The query to use.
* @param $query holds the query with &#37;s as the values
* @param $params is an array that holds the values that replace the %s's
*/
public function sanitizeSQL($query, $params = array()){
$x = count($params);
for ($i=0;$i<$x;$i++) {
//Assumes there is a live connection to the database!!!!!
//WILL throw an error if there is not.
$params[$i] = mysql_real_escape_string(htmlentities($params[$i]));
}
$prep_query = vsprintf($query,$params);
return $prep_query;
}
}

//immutable
class Node {
private $id, $parent_id, $article_id, $title, $info;
private $mysql;
public function __construct($sqlCon, $id, $parent, $article = -1, $title = "", $info = ""){
// Initializes the MySQL class and connects it.
$this->mysql = new MySQL();
$this->mysql->connect();
$this->mysql->select_db();

$this->id = $id;
$this->article_id = $article;
$this->parent_id = $parent;
$this->info = $info;
$this->title = $title;
}
//accessor methods
public function getId(){
return $this->id;
}
public function getParentId(){
return $this->parent_id;
}
public function getArticleId(){
return $this->article_id;
}
public function getTitle(){
return $this->title;
}
public function getInfo(){
return $this->info;
}

public function getParentNode(){
if($parent_id < 0) //this includes orphans and root nodes.
return null;
$sql = "SELECT * FROM kb_trouble WHERE id = %s";
$sql = $this->sanitizeSQL($sql, array($this->parent_id));
$result = mysql_query($sql) or die("Failed finding Parent Node");
if(mysql_num_rows($result) == 0) //orphan with no parent.
return null;
$row = mysql_fetch_array($result);
$parent = new Node($this->mysql, $row['id'], $row['parent_id'], $row['article_id'], $row['title'], $row['info']);
return $parent;
}

/**
* A root node (i.e. parent_id = -1) does not make an orphan
*/
public function isOrphan(){
if($this->parent_id == -1)
return false;
if($this->parent_id < 0) //this includes orphans and root nodes.
return true;
$sql = "SELECT * FROM kb_trouble WHERE id = %s";
$sql = $this->sanitizeSQL($sql, array($this->parent_id));
$result = mysql_query($sql) or die("Failed finding Parent Node");
if(mysql_num_rows($result) == 0) //orphan with no parent.
return true;
else
return false;
}

/**
* @return All the children of this node, if there are none, it returns a null
*/
public function findChildren(){
$sql = "SELECT * FROM kb_trouble WHERE parent_id = '%s';";
$sql = $this->sanitizeSQL($sql, array($this->id));
$result = mysql_query($sql) or die("Failed finding Parent Node");
if(mysql_num_rows($result) == 0) //no children
return null;

$children = array();
while($row = mysql_fetch_array($result)){
$parent = new Node($this->mysql, $row['id'], $row['parent_id'], $row['article_id'], $row['title'], $row['info']);
$children[] = $parent;
}
return $children;
}

/**
* The query to use.
* @param $query holds the query with %s as the values
* @param $params is an array that holds the values that replace the %s's
*/
public function sanitizeSQL($query, $params = array()){
$x = count($params);
for ($i=0;$i<$x;$i++) {
//Assumes there is a live connection to the database!!!!!
//WILL throw an error if there is not.
$params[$i] = mysql_real_escape_string(htmlentities($params[$i]));
}
$prep_query = vsprintf($query,$params);
return $prep_query;
}
}


$class = new Author_Troubleshooting();
?>

The CSS that effects it is:


#content li {
marker-offset: auto;
list-style-type: disc;
list-style-position: inside;
padding-left:0em;
margin-left:1em;
/*list-style: disc;
margin: 0 0 0 4em;*/
}

The exact php code that produces the list is:


foreach($this->rootNodes as $n){
$this->skin->append("\n<ul><li><strong><a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=edit&amp;id=".$n->getId()."'>".$n->getTitle()."</a></strong>");
if($this->canDelete)
$this->skin->append("<a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=delete&amp;id=".$n->getId()."'>[DELETE]</a>");
$this->skin->append("</li>");
$this->displayTree($n);
$this->skin->append("</ul>");
}
and


/**
* @params $n = node
*/
public function displayTree($n){
$children = $this->getChildren($n);
if($children == null){
return;
}
else {
//echo "<br />";
foreach($children as $c){
$this->skin->append("\n<ul>\n\t<li><a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=edit&amp;id=".$c->getId()."'>".$c->getTitle()."</a>");
if($this->canDelete)
$this->skin->append("<a href='".KB_ADMIN_ROOT."/approver.php?class=trouble&amp;act=delete&amp;id=".$c->getId()."'>[DELETE]</a>");
$this->skin->append("</li>\n");
$this->displayTree($c);
$this->skin->append("</ul>\n");
}
}
}
It serves up something looking like this:


<h2>You have Orphan Nodes!</h2><br><font color="RED"><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=3">second node</a> Id: 3, parent_id: 1. <a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=3">[DELETE]</a><br></font>
<ul><li><strong><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=4">Test</a></strong><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=4">[DELETE]</a></li>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=5">What's this?</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=5">[DELETE]</a></li>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=6">third</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=6">[DELETE]</a></li>
</ul>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=7">3b</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=7">[DELETE]</a></li>

</ul>
</ul>
</ul>
<ul><li><strong><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=12">RT 1</a></strong><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=12">[DELETE]</a></li>
<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=13">RT 1a</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=13">[DELETE]</a></li>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=14">RT 1aa</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=14">[DELETE]</a></li>

</ul>
</ul>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=15">RT 1b</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=15">[DELETE]</a></li>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=16">RT 1ba</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=16">[DELETE]</a></li>
</ul>

<ul>

<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=17">RT 1bb</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=17">[DELETE]</a></li>
</ul>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=18">RT 1bc</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=18">[DELETE]</a></li>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=19">RT 1bca</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=19">[DELETE]</a>

CaptainB
05-21-2008, 11:09 PM
Is the UL located INSIDE the container with the id "content"?
Also, your outputted code is invalid. You can not have more UL's inside an UL. Only LI elements are allowed there.
You are NOT closing your UL the correct way. You cannot have it like this:



<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=5">What's this?</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=5">[DELETE]</a></li>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=6">third</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=6">[DELETE]</a></li>
</ul>

<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=7">3b</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=7">[DELETE]</a></li>



That should be:





<ul>
<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=5">What's this?</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=5">[DELETE]</a>
</li>

<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=6">third</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=6">[DELETE]</a>
</li>

<li><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=7">3b</a><a href="http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=7">[DELETE]</a>
</li>
</ul>

malfist
05-22-2008, 01:12 AM
You can have nested unordered lists, which requires multipule <ul> tags within <ul> tags. It validates according to firebug I believe. All the tags are closed, I assure you, they may not be formatted neatly but it's impossible unless my code crashes in the middle of a loop, to not have an ending </ul> tag for every <ul> which it doesn't because it completes successfully.

The ul tags are inside the content div.

edit: w3c's validation tool validates this code without an error or warning/notice:

<div id="nav">
<ul>
<li><a href="motorhomesclassa.htm">Motorhomes Class A</a>
<ul>
<li><a href="MHA30.htm">Deluxe</a></li>
<li><a href="MHA34.htm">Luxury</a></li>
</ul>
</li>
<!-- highlight as current-->
<li><a href="motorhomesclassc.htm" id="navon">Motorhomes Class C</a>
<ul>
<!-- also highlight as current-->
<li><a href="MHC22.htm" id="subnavon">Compact</a></li>
<li><a href="MHC24.htm">Touring</a></li>
<li><a href="MHC28.htm">Deluxe</a></li>
</ul>
</li>
<li><a href="trailerhomes.htm">Trailor Homes</a>
<ul>
<li><a href="STT.htm">Touring Trailer</a></li>
<li><a href="S5TT.htm">Touring 5th Wheel</a></li>
<li><a href="DTT.htm">Deluxe Trailer</a></li>
<li><a href="D5TT.htm">Deluxe 5th Wheel</a></li>
<li><a href="LTT.htm">Luxury Trailer</a></li>
<li><a href="L5TT.htm">Luxury 5th Wheel</a></li>
</ul>
</li>
<li><a href="vancampers.htm">Van Campers</a>
<ul>
<li><a href="DVC.htm">Deluxe Van Campers</a></li>
</ul>
</li>
</ul>
</div>

Nested <ul>'s are allowed, however my code does not validate. I'll work on that tomorrow when I get back to work.

malfist
05-22-2008, 01:15 AM
Here's the entire div (with a more complete example) that is outputed:



<div id="content">
<div class="back_menu"><a href=http://support.resnet.eku.edu/kb>[Public Portal]</a>
<a href=http://support.resnet.eku.edu/kb/admin>[Admin Portal]</a></div><br /><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=create'>Create a Node</a><h2>You have Orphan Nodes!</h2><br /><font color='RED'><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=3'>second node</a> Id: 3, parent_id: 1. <a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=3'>[DELETE]</a><br /></font>
<ul><li><strong><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=4'>Test</a></strong><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=4'>[DELETE]</a></li>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=5'>What's this?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=5'>[DELETE]</a></li>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=6'>third</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=6'>[DELETE]</a></li>
</ul>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=7'>3b</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=7'>[DELETE]</a></li>

</ul>
</ul>
</ul>
<ul><li><strong><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=12'>RT 1</a></strong><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=12'>[DELETE]</a></li>
<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=13'>RT 1a</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=13'>[DELETE]</a></li>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=14'>RT 1aa</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=14'>[DELETE]</a></li>

</ul>
</ul>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=15'>RT 1b</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=15'>[DELETE]</a></li>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=16'>RT 1ba</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=16'>[DELETE]</a></li>
</ul>

<ul>

<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=17'>RT 1bb</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=17'>[DELETE]</a></li>
</ul>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=18'>RT 1bc</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=18'>[DELETE]</a></li>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=19'>RT 1bca</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=19'>[DELETE]</a></li>

</ul>
</ul>
</ul>
</ul>
<ul><li><strong><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=20'>Sample Set</a></strong><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=20'>[DELETE]</a></li>
<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=21'>Is the computer broken?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=21'>[DELETE]</a></li>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=23'>Does it turn on?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=23'>[DELETE]</a></li>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=25'>Does it boot into windows?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=25'>[DELETE]</a></li>
</ul>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=26'>Does it fail to boot into windows?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=26'>[DELETE]</a></li>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=27'>Does it POST?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=27'>[DELETE]</a></li>

</ul>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=28'>Does it fail POST?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=28'>[DELETE]</a></li>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=29'>Does it BEEP?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=29'>[DELETE]</a></li>
</ul>
</ul>
</ul>
</ul>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=24'>Will the computer not turn on?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=24'>[DELETE]</a></li>
</ul>
</ul>

<ul>
<li><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=edit&amp;id=22'>Does the computer work properly?</a><a href='http://support.resnet.eku.edu/kb/admin/approver.php?class=trouble&amp;act=delete&amp;id=22'>[DELETE]</a></li>
</ul>
</ul> </div>

malfist
05-22-2008, 02:51 PM
My bad, my understanding of how nested unordered lists worked was incomplete. After some help with HTML Tidy my code now validates and displays properly.

Thanks!



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum