-2

ブロック スタイルのメイン ナビゲーション用の CSS リボンを作成しようとしていますが、「display:table;」を含めると、リボンの右側の三角形が機能しません。または「display:block;」クリアフィックスで。当然、Clearfix を外すと、リボンは正常に機能しますが、ラップが消えます。リボンが機能し、Clearfix を使用してラップが崩れないようにすることは素晴らしいことです. どんなヒントでも大歓迎です!

元のコードと、私の作業に基づいた画像は、http: //jsfiddle.net/necolas/xCfeH/にあります。

ここに私が書いたHTMLがあります:

<!DOCTYPE html>

  <html>

    <head>

      <meta charset='UTF-8' />

      <link rel='stylesheet' href='css/style.css' />

    </head>

    <body>

      <div id="page-wrap" class="group">

        <nav id="main-navigation">

           <ul id="ribbon">

               <li><a href="#">ABOUT</a></li>

               <li><a href="#">CLIENTS</a></li>

               <li><a href="#">SERVICES</a></li>

               <li><a href="#">CONTACT</a></li>

           </ul>

        </nav>

      </div> <!-- END page-wrap -->

   </body>

CSSは次のとおりです。

/*
Description: Ribbon Block Nav Ribbon
*/


/* Clearfix to prevent collapse of bottom body area when divided into two.
------------------------------------------------------------ */
.group:after { content:""; display: table; clear:both;
}

/**
* Based on Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
* http://cssreset.com
*/

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, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
vertical-align: baseline;
}


/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}

ol, ul {
list-style: none;
}



/* "Page wrap" is the white page upon which all elements reside.
------------------------------------------------------------ */
#page-wrap { 
    width: 900px; 
    margin: 70px auto 10px; 
    display: block;
    background: white;
}

/* Background black 
------------------------------------------------------------ */
body {
background: #000000;
}

/* Main List Item Link Styling
------------------------------------------------------------ */
#main-navigation li a {
display: block;
padding: 10px 30px 15px 30px; 
color: white;
font: 24px Arial, sans-serif;
font-weight: bold;
text-decoration: none;
margin: 0 -30px 15px 0;
position: relative;
left:-15px;
background: #d6d135;
-webkit-box-shadow: 180px 0px 0px 0px #d3d3d3;
box-shadow: 1px 2px 2px 1px #d3d3d3;

/* css3 extras */
text-shadow:0 1px 1px rgba(0,0,0,0.2);
-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.2);
   -moz-box-shadow:0 1px 1px rgba(0,0,0,0.2);
        box-shadow:0 1px 1px rgba(0,0,0,0.2);
zoom:1;
}



/* Main Nav Container
------------------------------------------------------------ */
#main-navigation {
float: left;
display: block;
width: 180px;
z-index:1;
padding: 25px 0 30px 0;
margin: 0 15px 10px 0;
}


#ribbon li a:before,
#ribbon li a:after {
   content:"";
   position:absolute;
   z-index:-1;
   top:100%;
   left:0;
   border-width:0 14px 14px 0;
   border-style:solid;
   border-color:transparent #647D01;
}

#ribbon li a:after {
    left:auto;
    right:0;
    border-width:0 0 14px 14px;
}
4

2 に答える 2

0

問題は次のように解決されました: 「#ribbon を "position: absolute;" に変更し、"position: relative;" を #main-navigation に追加して修正しました。
ここで解決策を見つけました: stackoverflow.com/questions/8327424/

于 2013-05-27T13:28:07.957 に答える