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