8

我对 CSS 3 有一点问题,即我会用单个项目创建这样的对象。这是我想要实现的图像:

在此处输入图像描述

这是我的:

CSS

body{
background:grey;
    padding:10px;
}
#talkbubble {
margin:0 auto;
box-shadow: 3px 10px 7px #deefe5;
   width: 590px;
   height: 160px;
   background: white;
   position: relative;
   border-radius:10px;
   border-bottom-left-radius:0px;
}
#talkbubble:before {
box-shadow: 10px 10px 5px #deefe5;
   content:"";
   position: absolute;
   background:white;
   top: 100%;
   width: 228px;
   height: 62px;
   border-bottom-left-radius:         10px;
   border-bottom-right-radius:         10px;

}
#talkbubble:after{
   content:"";
   position: absolute;
   top:100%;
   left:228px;
   border-top: 10px solid white;
   border-right: 10px solid transparent;
   background:white;


}​

HTML

<div id="talkbubble"></div>​

还有一个jsFiddle 演示

如何使两个部分之间的角度四舍五入?

4

3 回答 3

4

这里获取信息,您可以得到:

body
{
    background:grey;
    padding:10px;
}
#talkbubble 
{
    margin:0 auto;
    box-shadow: 3px 10px 7px #deefe5;
    width: 590px;
    height: 160px;
    background: white;
    position: relative;
    border-radius:10px;
    border-bottom-left-radius:0px;
}
#talkbubble:before 
{
    box-shadow: 10px 10px 5px #deefe5;
    content:"";
    position: absolute;
    background:white;
    top: 95%;
    width: 228px;
    height: 62px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px; 
}
#talkbubble:after
{
   content:"";
   position: absolute;
   top:100%;
   left:228px;
   background:-webkit-radial-gradient(100% 100%, circle, rgba(204, 0, 0, 0) 10px, white 10px);
   width: 10px;
   height: 10px;
}​

http://jsfiddle.net/uCRMQ/2

//只是背景阴影不起作用。现在背景阴影适用于此(在此尺寸下)。


华拉巴

于 2012-12-29T21:54:10.980 回答
2

简短的回答:你不能。

你在那里所做的已经成功地创建了一个框:在DIV 元素之后,但是如果你开始在 DIV 中输入文本,它不会“流入”到底部。

要实现您在 CSS3 中的目标,您至少需要 3 个 DIV 和透明效果,而且您​​仍然会遇到文本溢出的问题。

于 2012-12-29T21:49:23.267 回答
2

像魅力一样工作:http: //jsfiddle.net/42DJh/7/

只需替换为:

#talkbubble:after{
   content:"";
   position: absolute;
   top:100%;
   left:228px;
   border-top: 10px solid white;
   border-right: 10px solid transparent;
   border-top: 10px solid transparent;
   border-left: 10px solid transparent;
   border-top-left-radius:10px;
   background:transparent;
   box-shadow:  -3px -3px 1px white;
}
于 2012-12-29T22:45:07.043 回答