나는 비 정렬 목록으로 구성된 가로 메뉴를 가지고 있으며, 각 목록 항목은 링크이고 잘 확장 가능한 특수 확장 목록 항목이 있습니다 (새 세로 스타일 메뉴). 메뉴 배경을 투명하게 검정색으로하고 아래쪽에 흰색 테두리가 있도록하고 싶습니다. 확장 가능한 목록 항목에 아래쪽 화살표가 튀어 나오길 원합니다. 안타깝게도 바깥 쪽 삼각형을 흰색으로 설정하고 안쪽 삼각형을 투명 검정색으로 설정하면 아래에 흰색 삼각형이 표시됩니다. 메뉴가 배경 이미지 나 텍스처에 배치 될 수 있도록 정말 투명한 내부 삼각형을 얻는 방법이 있습니까?사실적인 투명 배경을 가진 CSS 삼각형 만들기
HTML :
<body>
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li class="expand"><a href="#">Product</a>
<ul>
<li><a href="#">pro1</a></li>
<li><a href="#">pro2</a></li>
<li><a href="#">pro3</a></li>
</ul>
</li>
<li><a href="#">lalalalalalala</a></li>
<li><a href="#">Pickles</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</body>
CSS :
nav {
top:50px;
line-height:20px;
font-size:20px;
width:calc(6*150px);
height:auto;
box-sizing:border-box;
}
nav ul {
margin:0;padding:0;
list-style-type:none;
}
nav ul li {
border:1px solid blue;
border-right:none;border-top:none;border-left:none;
float:left;
width:150px;
background-color:white;
box-sizing:border-box;
}
nav ul li a {
display:block;
width:150px;
padding:5px 0;
text-align:center;
}
nav ul li:hover {
background:orange;
}
nav ul li ul {
display:none;
}
nav ul li:hover > ul {
display:block;
position:absolute;
left:-450px+900px; /*margin-left + width of #nav*/
top:30px;
width:150px;
}
a:link, a:visited {
color:black;
font-family:Arial;
text-decoration:none;
}
li.expand:before {
content:'';
position:absolute;
height:0;
width:0;
border-left:15px solid transparent; /* left arrow slant */
border-right:15px solid transparent; /* right arrow slant */
border-top:15px solid blue; /*bg color here*/
margin-left:60px; /*75-15*/
margin-top:29px;
}
li.expand:after {
content:'';
position:absolute;
height:0;
width:0;
border-left:14px solid transparent; /* left arrow slant */
border-right:14px solid transparent; /* right arrow slant */
border-top:14px solid rgba(0,0,0,0.5); /*bg color here*/
margin-left:60.5px;
}
li.expand:hover:after,li.expand:hover:before {
display:none;
}
당신이 예에서 볼 수 있듯이, 국경이 파란색, 배경이 투명하고, WHITE NOT해야한다. 흰색은 jsfiddle 콘텐츠 상자의 배경과 일치하지만 투명도는 있지만 실제 투명도는 아닙니다. 이 일을 할 수 없다면 누구나이 일을 할 수있는 '적절한'방법을 제안 할 수 있습니까?
아니요,하지만 여기서 한 것은 작은 삼각형 아래에 큰 삼각형을 만드는 것입니다. 이런 식으로 큰 삼각형은 더 작은 삼각형의 "테두리"를 형성하고 작은 삼각형은 더 큰 삼각형을위한 '배경'을 만듭니다 –