纯css弹出设计

时间:2013-04-15 09:05:34

标签: css html5 css3 popup

如何使用纯css

创建如下图所示的弹出框

enter image description here

这是我用position做的:绝对哪个正常但我想要得到的是,是否可以通过使用:after:before伪类只使用一个div?

.pop{
    background:#333;
    display:inline-block;
    width:250px;
    height:120px;
    border-radius:8px;
    position:relative;
    margin-top:25px
}
span{
    position:absolute; 
    left:0; 
    top:-20px;
    color:white;
    display:inline-block;
    border-radius:8px 8px 0 0;
    background:#333; 
    padding:6px;
    width:100px
}

Fiddle

3 个答案:

答案 0 :(得分:4)

这个不太灵活,但使用伪元素::before做没有额外标记的事情。

.pop {
  background: #333;
  width: 250px;
  height: 120px;
  border-radius: 8px;
  display: inline-block;
}
.pop::before {
  content: "Pop up head";
  display: block;
  width: 90px;
  background: #333;
  border-radius: 8px;
  padding: 3px;
  margin-top: -14px;
  text-align: center;
  color: white;
}
<div class="pop"></div>

答案 1 :(得分:0)

如果我正确理解了您的问题,那么您需要http://jsfiddle.net/slash197/Cup5Y/15/

HTML

<div class="holder">
    <div class="header">Header</div>
    <div class="pop">asd asd asd </div>
</div>

CSS

.holder {
    position: relative;
    width: 250px;
    height: 140px;
}
.header {
    position: absolute;
    top: 0px;
    left: 0px;
    height: 20px;
    background:#333;
    color: #ffffff;
    border-top-left-radius:8px;
    border-top-right-radius:8px;
    padding: 0px 10px;
}
.pop{
    position: absolute;
    top: 20px;
    left: 0px;
    background:#333;
    color: #ffffff;
    display:inline-block;
    width:250px;
    height:120px;
    padding: 10px;
    border-top-right-radius:8px;
    border-bottom-left-radius:8px;
    border-bottom-right-radius:8px;
}

答案 2 :(得分:0)

首先你需要2个div,一个用于“标题”,一个用于“内容”

请参阅我的示例http://jsfiddle.net/Cup5Y/13/

<div class="pop">
    <div class="head">
        Title
    </div>
    <div class="content">

    </div>
</div>