Как сделать CSS-речевой пузырь с рамкой? - PullRequest
3 голосов
/ 10 августа 2011

Я хочу сделать речевой пузырь только для CSS.Пока у меня есть это ...

Пример

Bubble example

CSS

div {
    position: relative;
    background: #fff;
    padding: 10px;
    font-size: 12px;
    text-align: center;
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    border-radius: 20px;
}

div:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    left: 50%;
    bottom: -60px;
    margin-left: -15px;
    border-width: 30px 20px 30px 20px;
    border-style: solid;
    border-color: #fff transparent transparent transparent;
}

jsFiddle .

... что почти точно что я хочу.Тем не менее, я хочу легкую границу вокруг всего этого.

Очевидно, что в основной части это просто, как добавить border: 1px solid #333 к div.

Однако, как хвостпузыря является граница взлома , я не могу использовать границу с ним.

Я попытался установить тень от поля 0 0 1px #333, но браузеры применяют границу к прямоугольной формеэлемент (который, я думаю, это то, что они должны сделать).

jsFiddle .

Мои следующие мысли заключались в поиске символа Unicode, который выглядит какхвост пузыря и абсолютно позиционирующий его там, с text-shadow для границы и с помощью z-index основного пузыря, чтобы скрыть верхнюю тень текста.

Какой символ Unicode подойдет для этого?Должен ли я сделать что-то другое?Нужно ли прибегать к изображению?

Мне нужно только поддерживать Mobile Safari.:)

Ответы [ 4 ]

2 голосов
/ 10 августа 2011
<div>Hello Stack Overflow!<span></span></div>
div span:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    left: 50%;
    bottom: -51px;
    margin-left: -15px;
    border-width: 20px 20px 30px 20px;
    border-style: solid;
    border-color: #000 transparent transparent transparent;
}

http://jsfiddle.net/QYH5a/

1 голос
/ 10 августа 2011

Для подхода с использованием символов Юникода, который вы предложили, наиболее подходящим будет ▼ U + 25BC ЧЕРНЫЙ ТРЕУГОЛЬНИК ВНИЗ. Я не знаю, есть ли у iOS глифы для этого.

1 голос
/ 10 августа 2011

Вот аналогичное решение:

http://jsfiddle.net/JyPBD/2/

<div>Hello Stack Overflow!<span></span></div>
body {
   background: #ccc;   
}

div {
    position: relative;
    background: #fff;
    padding: 10px;
    font-size: 12px;
    text-align: center;
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    border-radius: 20px;
    border: 1px solid #333;
}
div:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    left: 50%;
    bottom: -60px;
    margin-left: -16px;
    border-width: 30px 20px 30px 20px;
    border-style: solid;
    border-color: green transparent transparent transparent;

}

div span
{
    border-color: #FF0000 transparent transparent;
    border-style: solid;
    border-width: 25px 15px;
    bottom: -51px;
    margin-left: -65px;

    position: absolute;
    z-index: 10;
}
0 голосов
/ 29 марта 2013

Вы можете использовать свойство filter с box-shadow(), чтобы сделать это ...

-webkit-filter: drop-shadow(1px 1px 1px #111) drop-shadow(-1px -1px 1px #111);

jsFiddle .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...