2016-12-18 7 views
2

リンク上にユーザーがマウスを置いたときに、私は、各リンクの背景として、このような何かをしようとしています

enter image description here

フィドル:形状の https://jsfiddle.net/emils/8xgp602n/

一般的なアイデアを:

#flag { 
    width: 110px; 
    height: 56px; 
    padding-top: 15px; 
    position: relative; 
    background: red; 
    color: white; 
    font-size: 11px; 
    letter-spacing: 0.2em; 
    text-align: center; 
    text-transform: uppercase; 
} 
#flag:after { 
    content: ""; 
    position: absolute; 
    left: 0; 
    bottom: 0; 
    width: 0; 
    height: 0; 
    border-bottom: 13px solid #eee; 
    border-left: 55px solid transparent; 
    border-right: 55px solid transparent; 
} 

どのようにすれば#flag:afterの部分が各リストiの真中にあるかテン?

答えて

3

border width doesn't support percentage values以降、メニュー項目に固定幅を使用する必要があります。このように:

/* USER LINKS */ 
 

 
.user-navigation { 
 
    position: absolute; 
 
    right: 0; 
 
    top: 0; 
 
} 
 
.user-navigation-list > li { 
 
    position: relative; 
 
    display: inline-block; 
 
    padding: 0 0 0 4px; 
 
    text-align: center; 
 
} 
 
.user-navigation-list > li:first-child, 
 
.user-navigation-list > li:nth-child(2) { 
 
    padding-right: 7px; 
 
} 
 
.user-navigation-list > li > a { 
 
    padding: 0 9px 5px 9px; 
 
    color: #999; 
 
    display: inline-block; 
 
    font-size: 0.688em; 
 
    line-height: 31px; 
 
    letter-spacing: 0.4px; 
 
    text-decoration: none; 
 
    width: 72px; 
 
} 
 
.user-navigation-list > li > a:hover, 
 
.user-navigation-list > li > a:active { 
 
    color: #fff; 
 
    background-color: #aecacc; 
 
} 
 
.user-navigation-list > li > a:hover:after, 
 
.user-navigation-list > li > a:active:after { 
 
    content: ""; 
 
    position: absolute; 
 
    left: 0; 
 
    bottom: 0; 
 
    width: 0; 
 
    height: 0; 
 
    border-bottom: 10px solid white; 
 
    border-left: 50px solid transparent; 
 
    border-right: 50px solid transparent; 
 
}
<div class="user-navigation"> 
 
    <ul class="user-navigation-list"> 
 
    <li><a href="#">LIVE CHAT</a> 
 
    </li> 
 
    <li><a href="#">Currency £</a> 
 
    </li> 
 
    <li><a href="#">Sign In</a> 
 
    </li> 
 
    <li><a href="#">My Account</a> 
 
    </li> 
 
    <li><a href="#">My Gifts</a> 
 
    </li> 
 
    <li><a href="#">My Basket</a> 
 
    </li> 
 
    </ul> 
 
</div>

+0

私は、もう少し「応答」ようにする方法があった望みました。私はjQueryを試してみましたが、jQueryを使ってCSSを:: afterに追加することはできません。 – Rudolph

2

CSS応答リボン

SVG多くのCSSその後、応答性です。
しかし、あなたはCSSで応答性のリボンをしたい場合は、リボンが応答を取得するためにグラデーションを使用することができます。

.menu {} .menu a { 
 
    display: inline-block; 
 
    height: 50px; 
 
    margin: 5px; 
 
    padding: 0em 0.5em; 
 
    background: linear-gradient(to bottom right, red 50%, transparent 50%), linear-gradient(to bottom left, red 50%, transparent 50%); 
 
    background-repeat: no-repeat; 
 
    background-size: 150% 100%, 150% 100%; 
 
    background-position: left, right; 
 
}
<div class="menu"> 
 
    <a href="#">Link</a> 
 
    <a href="#">Longer Link</a> 
 
    <a href="#">Lorem ipsum dollar si amet Longer Link</a> 
 
</div>

+1

これらのギザギザの線を滑らかにする方法はありますか? – Rudolph

関連する問題