If you’re new to this series, read the “Refactoring a simple menu” and “Changing the background images” first.
The next step in HTML/CSS refactoring was to clean up the very ugly HTML code … I don’t know what I was thinking at that time; the menu full of repetitive inline CSS is plainly stupid.
Looking at the HTML code, it’s obvious that:
- The row buttons are independent DIV elements;
- Each row button has a P child and potentially a DIV child (holding the pull-down menu box).
- The pull-down menu box has P children that are styled identically to the P elements in the row buttons.
So here’s a very obvious CSS solution:
- Mark the row button DIV elements with a class (rowMenu).
- Define styling for P, A and DIV children of the DIV.rowMenu elements.
The resulting CSS is pretty simple …
DIV.rowMenu { float: left; position: relative; z-index: 100; }
DIV.rowMenu DIV { position: absolute; display: none; }
DIV.rowMenu P { … original btx170 definition … }
DIV.rowMenu P.down { … btx170_down definition … }
DIV.rowMenu A { color: #000; text-decoration: none; }… and so is the cleaned-up HTML code:
<div class="rowMenu" id="IDAHYJQB">
<p><a href="/climbing/myClimbs/myClimbs.asp">First page</a></p>
</div>
<div class="rowMenu" id="IDAKYJQB">
<script>menuRegister('IDAKYJQB')</script>
<p id="IDAKYJQB_main"><a href="javascript:menuClick('IDAKYJQB')">Add ...</a></p>
<div id="IDAKYJQB_sub">
<p><a onclick="menuSelect('IDAKYJQB')"
href="/climbing/myClimbs/myClimbs_add.asp">New entry </a></p>
<p><a onclick="menuSelect('IDAKYJQB')"
href="/climbing/myClimbs/myClimbs_editWall.asp?a=add">Edit</a></p>
… more …
</div>
</div>Next task: get rid of superfluous element IDs.

No comments:
Post a Comment