2012-11-25 9 views
5

Ich versuche, dies wie folgt zu erstellen und konnte es nicht beenden.CSS Dreiecksseite mit Runde auf der linken Seite?

Ich kann nur schaffen, eine abgerundete Ecken links, aber nicht schräg nach rechts zu erstellen.

align top http://www.kerrydeaf.com/arrow.png

#talkbubble 
{ 
width: 100px; 
height: 35px; 
background: #FFCC05; 
position: relative; 
-moz-border-radius:8px 0 0 8px; 
-webkit-border-radius:8px 0 0 8px; 
border-radius:8px 0 0 8px; 
margin-right:50px; 
} 

Oder hier ist http://jsfiddle.net/alma/USezL/23/

Antwort

3

Ich denke, das ist das, was u suchen http://css-tricks.com/snippets/css/css-triangle/

http://jsfiddle.net/zQKhb/

#talkbubble 
{ 
    width: 100px; 
    height: 36px; 
    background: #FFCC05; 
    position: relative; 
    -moz-border-radius:8px 0 0 8px; 
    -webkit-border-radius:8px 0 0 8px; 
    border-radius:8px 0 0 8px; 
    margin-right:50px; 

} 

#talkbubble:before 
{ 
    content:""; 
    display:block; 
    position: absolute; 
    right: -36px; 
    top:0; 
    width: 0; 
    height: 0; 
    border: 18px solid transparent; 

    border-color: transparent transparent #FFCC05 #FFCC05; 
} 
​ 
+0

Aww, hast du mich gerade mit fast genau der gleichen Lösung geschlagen? –

+0

Danke Rene. Es ist auch perfekt. – Irishgirl

+0

Entschuldigung Kumpel :) ... Ihre hatten eine genauere Erklärung, was OP fehlte. –

2

Sie wurden einige fehlende entscheidende Punkte in Ihrem Dreieck auf der rechten Seite. Zunächst einmal ist standardmäßig ein: before-Element display: inline, um den Effekt zu erzeugen, den Sie suchten, benötigten Sie stattdessen display: block.

Zweitens bewegte die right: 120px es 120 Pixel von der rechten Seite seiner ursprünglichen Position entfernt. Das heißt, es wurde aus dem Blickfeld nach links geschoben. Stattdessen benötigen Sie eine negative rechte Position (Verschieben bis rechts) von 100% (die Breite der Sprechblase). Auf diese Weise würde es rechts davon enden.

Drittens, nicht sicher, welche Form Sie anstrebten, aber es war fast alles außer einem Dreieck;).

I für diese Stelle ging:

#talkbubble:before 
{ 
    content:" "; 
    display: block; 
    position: relative; 
    right: -100%; 

    width: 0; 
    height: 0; 
    border-left: 0 solid transparent; 
    border-right: 20px solid transparent;  
    border-bottom: 35px solid #FFCC05; 
} 

Der erste Teil zum Positionieren, so wird der zweite Teil das tatsächliche Dreieck zu schaffen (siehe http://css-tricks.com/snippets/css/css-triangle/).

In der JFiddle habe ich das Dreieck blau gemacht, damit Sie genau sehen können, wo es ist. Ändern Sie die Rahmenbreite, um den Winkel zu vergrößern. http://jsfiddle.net/USezL/31/

+0

Danke Stephen. Es ist perfekt. Ja, ich habe einige entscheidende Punkte verpasst, deshalb habe ich auf stackoverflow gefragt. – Irishgirl

+0

Kein Problem, wollte nur darauf hinweisen, was ich anders gemacht habe, damit Sie daraus lernen können. –

+0

Oh, und ein Tipp für das Debugging: Stellen Sie "outline: red solid thin" auf das Vorher-Element, um zu sehen, wohin es geht. Dann, nachdem Sie es richtig positioniert haben, entfernen Sie das wieder :) –

Verwandte Themen