2013-12-15 4 views
17

Я использую bootstrap, пытаясь сделать div, перед ним есть треугольник CSS.CSS треугольник: перед элементом

http://jsfiddle.net/B2XvZ/11/

Вот мой нерабочим код:

.d:before { 
    width: 0px; 
    height: 0px; 
    border-style: solid; 
    border-width: 10px 15px 10px 0; 
    border-color: transparent #dd4397 transparent transparent; 
} 

Как я хотел бы, чтобы посмотреть это там быть розовый левый-треугольник, указывающий прямо перед текстом «это », без разрыва между ним и div. Я попытался сделать это, плавая также и без каких-либо успехов.

+2

Добавить 'Content' недвижимость. –

+1

Чтобы понять, как эта форма работает и для альтернативных решений, см. Http://stackoverflow.com/q/7073484/1811992 –

+0

Возможный дубликат [Прозрачная стрелка/треугольник] (http://stackoverflow.com/questions/23758922/transparent -arrow-triangle) –

ответ

28

Вы должны указать content свойство.

Для позиционирования добавьте position:relative к родительскому устройству, а затем абсолютно поместите стрелку -15px влево.

jsFiddle example

.d { 
    position:relative; 
} 

.d:before { 
    content:"\A"; 
    border-style: solid; 
    border-width: 10px 15px 10px 0; 
    border-color: transparent #dd4397 transparent transparent; 
    position: absolute; 
    left: -15px; 
} 
+1

безупречный. Я забыл о части контента. спасибо- – amagumori

+0

спасибо, это также решило мою проблему. Но для чего стоит CSS ISO \ A? –

+2

@FrauWolf '\ A' - возврат каретки. Я думаю, что сделал это для некоторых более старых браузеров (возможно, IE). Тем не менее, это больше не нужно. 'content: ''' будет работать нормально. –

3

Вам нужно свойство контента и некоторые другие

.d:before { 
    content: ''; 
    width: 0px; 
    height: 0px; 
    border-style: solid; 
    border-width: 10px 15px 10px 0; 
    border-color: transparent #dd4397 transparent transparent; 
    display: inline-block; 
    vertical-align: middle; 
    margin-right: 5px; 
} 
Смежные вопросы