2013-05-29 13 views
9

Próbuję utworzyć kątowe wypustki do siedzenia powyżej sekcji partnerskiej, i natknąłem się na ten wielki przykład:Jak utworzyć ukośne zakładki z obramowaniem w CSS?

HTML:

<div class="tab"> 
    <div class="arrow"></div> 
</div> 

CSS:

body 
{ 
    background-color: #666;  
} 
.tab 
{ 
    height: 50px; 
    width: 150px; 
    border-radius: 10px 10px 0px 0px; 
    background-color: #FFF; 
    position: relative; 
} 

.arrow 
{ 
    border-color: transparent transparent #FFF #FFF; 
    border-style: solid; 
    border-width: 23px 23px 23px 23px; 
    height:0; 
    width:0; 
    position:absolute; 
    bottom:0px; 
    right:-43px; 
} 

http://jsfiddle.net/P3P3Z/2/

Chciałabym jednak nadać temu kształtowi inny kolor obramowania 2px i niestety ta metoda nie działa, ponieważ używa obramowania t o stwórz prawą stronę kształtu.

Jakieś pomysły na to, jak mogę to zmienić?

+0

Więc chciałbyś obramowanie wokół białego obszaru? –

Odpowiedz

15

Można spróbować tego podejścia: jsFiddle

Zamiast granic stworzyć efekt skośną używam element :after pseudo go utworzyć. To pozwala mi ustawić granice wokół niego. Następnie używam pseudo elementu :before, aby ukryć granice, których nie chcę oglądać. Powtarzający się kod 2px w CSS pochodzi od wartości szerokości ramki.

CSS

.tab:before { 
    height: 50px; 
    width: 10px; 
    display: block; 
    content:" "; 
    background-color: #FFF; 
    position: absolute; 
    right: -2px; 
    top: -2px; 
    border-top: 2px solid blue; 
    border-bottom: 2px solid blue; 
} 
.tab { 
    height: 50px; 
    width: 150px; 
    border-radius: 10px 10px 0px 0px; 
    background-color: #FFF; 
    position: relative; 
    border: 2px solid blue; 
} 
.tab:after { 
    display: block; 
    content:" "; 
    width: 100px; 
    height: 50px; 
    top: -2px; 
    background-color: #FFF; 
    position: absolute; 
    right: -29px; 
    transform:skewX(45deg); 
    -ms-transform:skewX(45deg); 
    -webkit-transform:skewX(45deg); 
    border: 2px solid blue; 
    z-index: -1; 
} 
+0

+1. Jest to podobne do mojej techniki używanej tutaj: http://stackoverflow.com/a/13273672/1654265 gdzie używam po i tak jak dwa trójkąty nachodzące na siebie i nieco przesunięte jeden od siebie ... –

+0

Dzięki, zmieniłem Twoje podejście do zaawansowanej stylizacji, tutaj: http://jsfiddle.net/robmc/ZvEyx/4/ Chcę spróbować osiągnąć stylowy górny prawy róg krzywej w zakładce; Nie sądzę, że potrzebujesz karty: wcześniej, ale nie widzę sposobu na pozbycie się niebieskiej krzywej na rodzica. Jakieś pomysły? – alias51

+0

Po prostu wyłącz 'border-radius' w prawym górnym rogu zakładki i przesuń nieco pseudo element': after' w prawo (zwiększ jego ujemny prawy margines): http://jsfiddle.net/ZvEyx/6 / –