Well, this is pure madness, but certainly there are ways to achieve this :-) not cross-browserly, but let's see:
Our mark-up:
<div id="bubble">
<p>This is madness!</p>
</div>
Our CSS:
#bubble {
width:200px;
height:100px;
border:1px solid #000;
border-radius:20px;
-moz-border-radius:20px;
-webkit-border-radius:20px;
}
#bubble p {
margin: 1em;
font-family:Comic Sans MS;/* well, madness it is! */
}
#bubble:before {
content:'';
border:20px solid;
border-color:#fff transparent transparent;
position:absolute;
top:110px;
left:25px;
z-index:2;
}
#bubble:after {
content:'';
border:20px solid;
border-color:#000 transparent transparent;
position:absolute;
top:111px;
left:25px;
z-index:1;
}
The result:
http://jsfiddle.net/MrLWY/
I have only tested this in Firefox 3.6.3, but the idea is clear :-)
Here is take two:
#bubble {
width:200px;
height:100px;
border:1px solid #000;
position:relative;
-moz-border-radius:20px 20px 20px 0;
}
#bubble p {
margin: 1em;
font-family:Comic Sans MS;
}
#bubble:before {
content:'';
width:20px;
height:20px;
background:#fff;
border-left:1px solid #000;
position:absolute;
top:100px;
left:-1px;
}
#bubble:after {
content:'';
-moz-border-radius:20px 0 0 0;
border:solid #000;
border-width:1px 0 0 1px;
width:20px;
height:19px;
position:absolute;
top:100px;
left:0;
}
And the result: http://jsfiddle.net/ajeN7/
Perhaps this can be enhanced in many ways:
- make it cross-browser (+webkit and opera, at least)
- it could work in IEs, without roundings, though, with help of something like that http://code.google.com/p/ie7-js/ (in order for generated content to work).
- to find out how it could work with flexible height.
- to change the font-family declaration :-)