我正在尝试重新创建这个:

我已经完成了对话气泡,但我不知道如何将蓝点精确定位在对话泡泡高度的 50%(对话泡泡的高度可以不同)和它左侧 10px 的位置。

这是我开始的 JSFiddle:http://jsfiddle.net/ghpCr/

HTML:

<div class="speech-bubble">
    Sample Text.
</div>

<div class="speech-bubble">
    Here's a <br /> bigger bubble.
</div>

<div class="dot"></div>

CSS:
@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');

.container {
    margin-top: 10px;
}

.dot {
  width: 13px;
  height: 13px;
  background-color: #44769d;
  border-radius: 50%;
}

.speech-bubble {
  position: relative;
  min-height: 20px;
  padding: 15px;
  width: 250px;
  margin: 10px 0 10px 18px;
  background-color: #ffffff;
  border: 1px solid #cccccc;
  -webkit-border-radius: 6px;
     -moz-border-radius: 6px;
          border-radius: 6px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
     -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
          box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}

.speech-bubble:after, .speech-bubble:before {
  position: absolute;
  right: 100%;
  display: inline-block;
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  pointer-events: none;
}

.speech-bubble:before {
  border-color: rgba(204,204,204,0);
  border-right-color: #ccc;
  border-width: 9px;
  top: 50%;
  margin-top: -9px;
}

.speech-bubble:after {
  border-color: rgba(255,255,255,0);
  border-right-color: #fff;
  border-width: 8px;
  top: 50%;
  margin-top: -8px;
}

最佳答案

这个想法是将点放在左边的外面,这是通过 right: 100%; 实现的。接下来,您需要将它移得更远一点,因此是 margin-right: 10px; 。现在对于垂直对齐,我们使用类似的方法。

.dot {
    // ...
    right: 100%;
    margin-right: 10px;
    top: 50%;
    margin-top: -6.5px;
}

另请注意,该点必须是对话气泡的子节点。我在实际标记出现之前发布了这个答案。

关于html - div 旁边的形状,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17712495/

10-12 17:11