Treehouse: Grow your CSS skills. Land your dream job.

Need help in connecting the main and sub menu on Rollover

  • # March 27, 2009 at 2:21 pm

    Hello,

    I need help in connecting the main menu right bottom border to the sub menu border and also the left border not connecting to main menu.

    Here is my css,html and javascript code used and I am attaching the javascript file also.

    Code:
    .bluetabs{
    }
    .bluetabs ul{
    padding: 3px 0;
    margin-left: 0;
    margin-top: 1px;
    margin-bottom: 0;
    font: bold 12px Verdana;
    list-style-type: none;
    text-align: left; /*set to left, center, or right to align the menu as desired*/
    }

    .bluetabs li{
    display: inline;
    margin: 0;
    }

    .bluetabs li a{
    text-decoration: none;
    padding: 3px 7px;
    margin-right: 3px;
    border: 1px solid #000;
    color: #2d2b2b;
    background: white url(media/bluetab.gif) top left repeat-x; /*THEME CHANGE HERE*/
    }

    .bluetabs li a:visited{
    color: #2d2b2b;
    }

    .bluetabs li a:hover{
    text-decoration: underline;
    color: #2d2b2b;
    }

    .bluetabs li.selected{
    }

    .bluetabs li.selected a{ /*selected main tab style */
    background-image: url(media/bluetabactive.gif); /*THEME CHANGE HERE*/
    border-bottom-color: white;
    }

    .bluetabs li.selected a:hover{ /*selected main tab style */
    text-decoration: none;
    }

    /* ######### Style for Drop Down Menu ######### */

    .dropmenudiv_b{
    position:absolute;
    top: 1;
    border: 1px solid black; /*THEME CHANGE HERE*/
    border-width: 1 1px;
    font:normal 12px Verdana;
    line-height:18px;
    z-index:100;
    background-color: white;
    width: 200px;
    visibility: hidden;
    }

    .dropmenudiv_b a{
    width: auto;
    display: block;
    text-indent: 5px;
    border: 0 solid #000;
    border-bottom-width: 1px;
    padding: 2px 0;
    }

    * html .dropmenudiv_b a{ /*IE only hack*/
    width: 100%;
    }

    .dropmenudiv_b a:hover{ /*THEME CHANGE HERE*/
    background-color: #fff;
    }

    .menudropdown {
    BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 8px; PADDING-LEFT: 8px; VISIBILITY: hidden; PADDING-BOTTOM: 8px;
    BORDER-LEFT: #ccc 1px solid; WIDTH: 300px; PADDING-TOP: 8px; BORDER-BOTTOM: #ccc 1px solid; POSITION: absolute; BACKGROUND-COLOR: #fff
    }

    HTML Code

    Code:
    < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">


    Tabs



    javascript code

    Code:
    var tabdropdown={
    disappeardelay: 200, //set delay in miliseconds before menu disappears onmouseout
    disablemenuclick: false, //when user clicks on a menu item with a drop down menu, disable menu item’s link?
    enableiframeshim: 1, //1 or 0, for true or false

    //No need to edit beyond here////////////////////////
    dropmenuobj: null, ie: document.all, firefox: document.getElementById&&!document.all, previousmenuitem:null,
    currentpageurl: window.location.href.replace(“http://”+window.location.hostname, “”).replace(/^//, “”), //get current page url (minus hostname, ie: http://www.dynamicdrive.com/)

    getposOffset:function(what, offsettype){
    var totaloffset=(offsettype==”left”)? what.offsetLeft : what.offsetTop;
    var parentEl=what.offsetParent;
    while (parentEl!=null){
    totaloffset=(offsettype==”left”)? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
    parentEl=parentEl.offsetParent;
    }
    return totaloffset;
    },

    showhide:function(obj, e, obj2){ //obj refers to drop down menu, obj2 refers to tab menu item mouse is currently over
    if (this.ie || this.firefox)
    this.dropmenuobj.style.left=this.dropmenuobj.style.top=”-500px”
    if (e.type==”click” && obj.visibility==hidden || e.type==”mouseover”){
    if (obj2.parentNode.className.indexOf(“default”)==-1) //if tab isn’t a default selected one
    obj2.parentNode.className=”selected”
    obj.visibility=”visible”
    }
    else if (e.type==”click”)
    obj.visibility=”hidden”
    },

    iecompattest:function(){
    return (document.compatMode && document.compatMode!=”BackCompat”)? document.documentElement : document.body
    },

    clearbrowseredge:function(obj, whichedge){
    var edgeoffset=0
    if (whichedge==”rightedge”){
    var windowedge=this.ie && !window.opera? this.standardbody.scrollLeft+this.standardbody.clientWidth-15 : window.pageXOffset+window.innerWidth-15
    this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetWidth
    if (windowedge-this.dropmenuobj.x < this.dropmenuobj.contentmeasure) //move menu to the left? edgeoffset=this.dropmenuobj.contentmeasure-obj.offsetWidth } else{ var topedge=this.ie && !window.opera? this.standardbody.scrollTop : window.pageYOffset var windowedge=this.ie && !window.opera? this.standardbody.scrollTop+this.standardbody.clientHeight-15 : window.pageYOffset+window.innerHeight-18 this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetHeight if (windowedge-this.dropmenuobj.y < this.dropmenuobj.contentmeasure){ //move up? edgeoffset=this.dropmenuobj.contentmeasure+obj.offsetHeight if ((this.dropmenuobj.y-topedge)

    # March 27, 2009 at 3:28 pm

    Hello

    By changing a bit of css I could able to get the borders around both the main and sub menu.

    Is there any way I can combine both the menus and and show border around the whole.

    Code:
    .bluetabs{

    }

    .bluetabs ul{
    padding: 3px 0;
    margin-left: 0;
    margin-top: 1px;
    margin-bottom: 0;
    font: bold 12px Verdana;
    list-style-type: none;
    text-align: left; /*set to left, center, or right to align the menu as desired*/
    }

    .bluetabs li{
    display: inline;
    margin: 0;
    }

    .bluetabs li a{
    text-decoration: none;
    padding: 3px 7px;
    margin-right: 3px;
    border: 1px solid #000;
    color: #2d2b2b;
    background: white url(media/bluetab.gif) top left repeat-x; /*THEME CHANGE HERE*/
    }

    .bluetabs li a:visited{
    color: #2d2b2b;
    }

    .bluetabs li a:hover{
    text-decoration: underline;
    color: #2d2b2b;
    }

    .bluetabs li.selected{
    }

    .bluetabs li.selected a{ /*selected main tab style */
    background-image: url(media/bluetabactive.gif); /*THEME CHANGE HERE*/
    border-bottom-color: #000;
    }

    .bluetabs li.selected a:hover{ /*selected main tab style */
    text-decoration: none;
    }

    /* ######### Style for Drop Down Menu ######### */

    .dropmenudiv_b{
    position:absolute;
    top: 1;
    border: 1px solid black; /*THEME CHANGE HERE*/
    border-width: 1 1px;
    font:normal 12px Verdana;
    line-height:18px;
    z-index:100;
    background-color: white;
    width: 200px;
    visibility: hidden;
    }

    .dropmenudiv_b a{
    width: auto;
    display: block;
    text-indent: 5px;
    border: 0 solid #000;
    border-bottom-width: 1px;
    padding: 2px 0;
    }

    * html .dropmenudiv_b a{ /*IE only hack*/
    width: 100%;
    }

    .dropmenudiv_b a:hover{ /*THEME CHANGE HERE*/
    background-color: #fff;
    }

    .menudropdown {
    BORDER-TOP: #000 1px solid; POSITION: absolute;
    BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 8px; PADDING-LEFT: 8px; VISIBILITY: hidden; PADDING-BOTTOM: 8px;
    BORDER-LEFT: #000 1px solid; WIDTH: 300px; PADDING-TOP: 8px;
    BORDER-BOTTOM: #000 1px solid; POSITION: absolute; BACKGROUND-COLOR: #fff
    }

    # March 27, 2009 at 3:42 pm

    It is far easier to help you if you provide a link to the page(s) in question.

    # March 28, 2009 at 1:49 am

    Actually I am trying to build a menu something like http://www.ge.com

    So, If any one can give me a working example it would be great.

    I just want it to work in the same way as http://www.ge.com

    Thanks in advance

Viewing 4 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.