(1) 경계 삼각형
의 국경으로 삼각형을 적어 보자.
사각형 인 경우, 우리는 측면을 쓰기 국경을 사용됩니다,하지만 우리는 국경 경계 속성을 추가 제공 할 수없는, 삼각형 자체가 국경 논의하기 위해 여기에 있습니다, 그래서 우리는 다른 방법을 사용해야합니다.
생각하는 대부분의 경우는 오버레이입니다. 내부 삼각형 내부의 절대 위치, 상기 아이디어는 두 개의 삼각형 중첩 국경의 원하는 색으로 설정 약간 큰 외부 삼각형 색이다. 아티팩트 삼각형의 테두리와 일체로 형성 될 수있다.
여기서 절대 위치와 관련된 문제는 네 가지 종류의 방향에 대하여, 상하 좌우 삼각형 상위의 다른 위치이다. 위치가 0 일 때 처음에 우리는,보고 (:; 최고 0 픽셀 : 왼쪽 0 픽셀), 무슨 일이 일어날 때.
HTML :
<!-- 向上的三角形 -->
<div class="triangle_border_up">
<span></span>
</div>
<!-- 向下的三角形 -->
<div class="triangle_border_down">
<span></span>
</div>
<!-- 向左的三角形 -->
<div class="triangle_border_left">
<span></span>
</div>
<!-- 向右的三角形 -->
<div class="triangle_border_right">
<span></span>
</div>
CSS :
/*向上*/
.triangle_border_up{
width:0;
height:0;
border-width:0 30px 30px;
border-style:solid;
border-color:transparent transparent #333;/*透明 透明 灰*/
margin:40px auto;
position:relative;
}
.triangle_border_up span{
display:block;
width:0;
height:0;
border-width:0 28px 28px;
border-style:solid;
border-color:transparent transparent #fc0;/*透明 透明 黄*/
position:absolute;
top:0px;
left:0px;
}
/*向下*/
.triangle_border_down{
width:0;
height:0;
border-width:30px 30px 0;
border-style:solid;
border-color:#333 transparent transparent;/*灰 透明 透明 */
margin:40px auto;
position:relative;
}
.triangle_border_down span{
display:block;
width:0;
height:0;
border-width:28px 28px 0;
border-style:solid;
border-color:#fc0 transparent transparent;/*黄 透明 透明 */
position:absolute;
top:0px;
left:0px;
}
/*向左*/
.triangle_border_left{
width:0;
height:0;
border-width:30px 30px 30px 0;
border-style:solid;
border-color:transparent #333 transparent transparent;/*透明 灰 透明 透明 */
margin:40px auto;
position:relative;
}
.triangle_border_left span{
display:block;
width:0;
height:0;
border-width:28px 28px 28px 0;
border-style:solid;
border-color:transparent #fc0 transparent transparent;/*透明 黄 透明 透明 */
position:absolute;
top:0px;
left:0px;
}
/*向右*/
.triangle_border_right{
width:0;
height:0;
border-width:30px 0 30px 30px;
border-style:solid;
border-color:transparent transparent transparent #333;/*透明 透明 透明 灰*/
margin:40px auto;
position:relative;
}
.triangle_border_right span{
display:block;
width:0;
height:0;
border-width:28px 0 28px 28px;
border-style:solid;
border-color:transparent transparent transparent #fc0;/*透明 透明 透明 黄*/
position:absolute;
top:0px;
left:0px;
}
효과는 같다 :
왜 우리는 아래의 그림과 같이 예상하지 않는다
그 이유는 우리가 지역에 정말 만족하지 않고, 아래의 CSS 박스 모델의 내용을 기억하시기 바랍니다있다, 삼각형의 측면입니다 볼 수 있다는 것입니다.
절대 위치 (위치 : 절대)가, 상위 콘텐츠의 경계층의 상대 위치에 기초하여 계산된다.
우리가 빈 DIV 0의 폭과 높이를 쓴 문서의 시작 부분과 결합 :
빈 DIV는 내용의 중심 위치에, 삼각형의 내부 지점 위치의 중심이다.
순서는 더 명확하게보고, 우리는 그림자 범위를 추가, 마지막을 사용 :
box-shadow:0 0 2px rgba(0,0,0,1);
효과는 같다 :
삼각형 포인트 내 우리가 분명히 알고있는이 시간, 우리의 육안의 삼각 경계 위치보고보다는 찾습니다 외부 삼각형의 실제 내용을 기반으로합니다.
같은 HTML, CSS :
/*向上*/
.triangle_border_up{
width:0;
height:0;
border-width:0 30px 30px;
border-style:solid;
border-color:transparent transparent #333;/*透明 透明 灰*/
margin:40px auto;
position:relative;
}
.triangle_border_up span{
display:block;
width:0;
height:0;
border-width:0 28px 28px;
border-style:solid;
border-color:transparent transparent #fc0;/*透明 透明 黄*/
position:absolute;
top:1px;
left:-28px;
}
/*向下*/
.triangle_border_down{
width:0;
height:0;
border-width:30px 30px 0;
border-style:solid;
border-color:#333 transparent transparent;/*灰 透明 透明 */
margin:40px auto;
position:relative;
}
.triangle_border_down span{
display:block;
width:0;
height:0;
border-width:28px 28px 0;
border-style:solid;
border-color:#fc0 transparent transparent;/*黄 透明 透明 */
position:absolute;
top:-29px;
left:-28px;
}
/*向左*/
.triangle_border_left{
width:0;
height:0;
border-width:30px 30px 30px 0;
border-style:solid;
border-color:transparent #333 transparent transparent;/*透明 灰 透明 透明 */
margin:40px auto;
position:relative;
}
.triangle_border_left span{
display:block;
width:0;
height:0;
border-width:28px 28px 28px 0;
border-style:solid;
border-color:transparent #fc0 transparent transparent;/*透明 黄 透明 透明 */
position:absolute;
top:-28px;
left:1px;
}
/*向右*/
.triangle_border_right{
width:0;
height:0;
border-width:30px 0 30px 30px;
border-style:solid;
border-color:transparent transparent transparent #333;/*透明 透明 透明 灰*/
margin:40px auto;
position:relative;
}
.triangle_border_right span{
display:block;
width:0;
height:0;
border-width:28px 0 28px 28px;
border-style:solid;
border-color:transparent transparent transparent #fc0;/*透明 透明 透明 黄*/
position:absolute;
top:-28px;
left:-29px;
효과는 같다 :
또한 도시 된 바와 같이 풍선, 삼각형을 작성한다 :
HTML :
<div class="test_triangle_border">
<a href="#">三角形</a>
<div class="popup">
<span><em></em></span>纯CSS写带边框的三角形
</div>
</div>
CSS :
.test_triangle_border{
width:200px;
margin:0 auto 20px;
position:relative;
}
.test_triangle_border a{
color:#333;
font-weight:bold;
text-decoration:none;
}
.test_triangle_border .popup{
width:100px;
background:#fc0;
padding:10px 20px;
color:#333;
border-radius:4px;
position:absolute;
top:30px;
left:30px;
border:1px solid #333;
}
.test_triangle_border .popup span{
display:block;
width:0;
height:0;
border-width:0 10px 10px;
border-style:solid;
border-color:transparent transparent #333;
position:absolute;
top:-10px;
left:50%;/* 三角形居中显示 */
margin-left:-10px;/* 三角形居中显示 */
}
.test_triangle_border .popup em{
display:block;
width:0;
height:0;
border-width:0 10px 10px;
border-style:solid;
border-color:transparent transparent #fc0;
position:absolute;
top:1px;
left:-10px;
}
(2) 북동, 남동, 북서, 남서 삼각형 표현
노스 웨스트 (↖), 동북 쓰기 계속 (↗), 남서 (↙), 남동 (↘) 삼각형.
원리는 같습니다
필요한 삼각형을 작성하는 다른면을 각각 작성 개의 CSS를 가질 수있는 각 색의 분할에 의하면.
NW을 (↖) 예를 쓰기 :
HTML :
<div class="triangle_border_nw"></div>
CSS (1)
.triangle_border_nw{
width:0;
height:0;
border-width:30px 30px 0 0;
border-style:solid;
border-color:#6c6 transparent transparent transparent;
margin:40px auto;
position:relative;
}
CSS (2)
.triangle_border_nw{
width:0;
height:0;
border-width:0 0 30px 30px;
border-style:solid;
border-color:transparent transparent transparent #6c6;
margin:40px auto;
position:relative;
}
효과의 CSS 두 종류로 표시됩니다 :
이들은 CSS 삼각형으로 작성되어,로 절단
(1) 경계 삼각형
(2) 북동, 남동, 북서, 남서 삼각형 표현