2012-11-25 43 views

回答

3

我認爲這是什麼ü正在尋找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,你剛剛用幾乎完全相同的解決方案打敗了我? –

+0

謝謝你Rene。它也是完美的。 – Irishgirl

+0

對不起隊友:) ......你的確沒有詳細解釋OP失蹤的內容。 –

2

你失蹤了一些在你的三角形右邊的關鍵點。首先,默認情況下a:before元素是display: inline,所以要創建效果,您正在尋找所需的display: block

其次,right: 120px正在將它從原始位置的右側移動120個像素。也就是說,它被推向左邊,在視野之外。相反,你需要一個100%(氣泡寬度)的負面正確位置(右移)。那樣的話,它最終會落在它的右邊。第三,不確定你想要什麼形狀,但它幾乎是一切,只不過是一個三角形;)。

我去這個代替:

#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; 
} 

第一部分是用於定位,所述第二部分是創建實際的三角形(參見http://css-tricks.com/snippets/css/css-triangle/)。

在jsfiddle中,我製作了三角形藍色,以便您可以確切地看到它在哪裏。更改邊界右側的寬度以增大角度。 http://jsfiddle.net/USezL/31/

+0

謝謝Stephen。這是完美的。是的,我錯過了一些關鍵點,這就是爲什麼我要求在stackoverflow上。 – Irishgirl

+0

沒問題,只是想指出我做了什麼不同,所以你可以從中學習。 –

+0

噢,還有一個調試小技巧:將'outline:red solid thin'設置爲before元素,以查看它發生的位置。然後,將其正確定位後,再移除它:) –