コンテナを「ラップ」する必要がある場合、「リボンのような」3D効果を持つメニューを作成しようとしています。
問題は、margin-left と right を -10px にしようとしても問題ないことです。div を 20px だけ左に押します。(少なくともクロムで)。そして左: -10px; 右: -10px も機能しません。何が欠けている可能性がありますか?
http://jsfiddle.net/lasseedsvik/UhwYg/1/
HTML
<div id="container">
<div id="top-menu">
<ul></ul>
</div>
</div>
CSS
#container {
background: blue;
height: 300px;
width: 200px;
margin: 0 auto;
}
#top-menu {
clear: both;
background: red;
width: 200px; /* +20px? */
height: 20px;
position: relative;
/*
margin-left: -10px;
margin-right: -10px;
*/
}
#top-menu::before, #top-menu::after {
content:' ';
position: absolute;
bottom: -10px;
}
#top-menu:before {
border-top: 10px solid red;
margin-left: -10px;
border-left: 10px solid transparent;
left: 0;
}
#top-menu:after {
border-top: 10px solid red;
margin-right: -10px;
border-right: 10px solid transparent;
right: 0;
}