0

Can anyone suggest me how do I get rid of the space after the ribbon navbar in the following fiddle: http://jsfiddle.net/BC3FL/?

I know why it is created but cant figure out how to avoid it except giving fixed negative margins to elements below the bar..

Also, I tried absolute position for flaps but that wont work with different browser's as height width varies. And the overflow:hidden with another container wont work too: http://jsfiddle.net/KBs42/ as the flaps must be above the navigation bar.

And a basic code of the fiddle would be:

<div id="navigation_container">
<!-- the left side of the fork effect -->
<div class="l-triangle-top"></div>
<div class="l-triangle-bottom"></div>
<!-- the right side of the fork effect -->
<div class="r-triangle-top"></div>
<div class="r-triangle-bottom"></div>
<!-- the ribbon body -->
<div class="rectangle">
<!-- the navigation links -->
<ul id="navigation2">
   <li><a href="index.html"> Home</a></li>
   <li><a href="intro.html"> About</a></li>
   <li><a href="client.html"> Clients</a></li>
   <li><a href="catg.html"> Products</a></li>
   <li><a href="mailto:thakkar@pacmac.co.in"> Contact</a></li>
</ul>
<!-- end the ribbon body -->
</div>
</div>
<!-- end container --> 
<div style="clear:both;"></div>
<div id="wrap">
<p>HEY</p>
</div> 
</div>

And CSS:

#navigation_container {
 margin: 0 auto;
 width: 1080px;
 overflow:hidden;
 height:80px;
 padding: auto;
}
#navigation2 li {
        list-style: none;
        display: block;
        float: left;
  margin: 1em 0.8em;
}
#navigation2 li a {
        text-shadow: 0 2px 1px rgba(0,0,0,0.5);
        display: block;
        text-decoration: none;
        color: #f0f0f0;
        font-size: 1.6em;
        margin: 0;
        line-height: 28px;
}
#navigation2 li.active a:hover,
#navigation2 li a:hover {
        margin-top: 2px;
}

#navigation2 li.active {
        font-style: italic;
}
#navigation2 li.active a {
}
.rectangle {
   background: #e5592e;
   height: 62px;
   width:920px;
   margin: 0 auto;
   position: relative;
   -moz-box-shadow: 0px 0px 4px rgba(0,0,0,0.55);
   -webkit-box-shadow: 0px 0px 4px rgba(0,0,0,0.55);
   box-shadow: 0px 0px 4px rgba(0,0,0,0.55);

   -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
 border-radius: 2px;

   z-index: 500; /* the stack order: foreground */
}
.l-triangle-top {
    border-color: #D9542B transparent transparent;
    border-style: solid;
    border-width: 50px;
    float: left;
    height: 0;
    left: 30px;
    position: relative;
    top: 10px;
    width: 0;
}

.l-triangle-bottom {
    border-color: transparent transparent #D9542B;
    border-style: solid;
    border-width: 50px;
    float: left;
    height: 0;
    left: -68px;
    position: relative;
    top: -35px;
    width: 0;
}
.r-triangle-top {
    border-color: #D9542B transparent transparent;
    border-style: solid;
    border-width: 50px;
    float: right;
    height: 0;
    position: relative;
    right: 30px;
    top: 10px;
    width: 0;
}
.r-triangle-bottom {
    border-color: transparent transparent #D9542B;
    border-style: solid;
    border-width: 50px;
    float: right;
    height: 0;
    position: relative;
    right: -68px;
    top: -35px;
    width: 0;
}
</style>

Thanks a lot. Any suggestions/critique are welcome.

4

1 回答 1

0

I would give your container element a relative position, then set the triangle pieces to absolute positioning.

#navigation_container {
    position: relative;
}
.l-triangle-top {
    position: absolute;
    left: -50px;
    top: -5px;
}
.l-triangle-bottom: {
    position: absolute;
    left: -50px;
    top: -45px;
}
.r-triangle-top {
    position: absolute;
    right: -50px;
    top: -5px;
}
.r-triangle-bottom: {
    position: absolute;
    right: -50px;
    top: -45px;
}

That will stop your triangle elements from taking space and pushing your content down.

于 2013-07-17T15:38:09.463 回答