如何使div看起来像Skype聊天窗口?

困狮子

这是我在Stack Overflow上遇到的第一个问题,我希望我做对了所有事情。

我试图将某些div定位为与Skype聊天窗口相同。有多种方法可以将三个div(左,中,右或左对齐两个div)对齐,但是我还没有找到一种将两个div并排对齐的方法。特别是如果其中一个没有固定大小,则不会。

我已经能够定位传入用户的个人资料图片,聊天气泡和时间戳,但还没有找到定位传出dito的方法。

我还承认,由于我为使代码正确所做的所有尝试,该代码现在非常混乱,因此,我非常感谢这里的一些帮助,可以使我走上正确的道路。

此聊天窗口是我要实现的示例:Skype聊天窗口

这是html:

收到的消息:

<div class="skype-parent">

<img class="skype-in-avatar" src="users_avatar.jpg alt="" />

<div class="skype-in-message">
This is the incoming text.
</div>

<div class="skype-timestamp">
08:42
</div>
</div>

外发邮件:

<div class="skype-parent">

<div class="skype-out-message">
This is the outgoing text.
</div>

<div class="skype-timestamp">
08:56</p>
</div>
</div>

父div的CSS(有效!):

div.skype-parent {
    text-align:         left;
    margin-top:         0.2em;
    margin-bottom:      0.2em;
    clear:              both; }

时间戳div的CSS(有效!):

div.skype-timestamp {
    text-align:         center;
    margin-top:         0.5em;
    float:              right; }

CSS的传入消息(工作!):

img.skype-in-avatar {
    float:              left;
    width:              30px; 
    height:             30px;
    margin-left:        0.5em;
    margin-right:       0.5em;
    border-radius:      1.5em;      }


div.skype-in-message {
    max-width:          75%;
    background-color:   #c7edfc;
    padding:            0.5em;
    border-radius:      10px;
    display:            inline-block;
    vertical-align:     bottom; }

传出消息的CSS(无效):

div.skype-out-message {
    max-width:          75%;
    background-color:   #e5f7fd;
    padding:            0.5em;
    border-radius:      10px; }

因此,在这里我需要帮助的是此传出消息的定位代码。如示例所示,聊天气泡位于时间戳的右侧,但仍位于时间戳的左侧。

罗科·C·布尔扬

在此处输入图片说明

.skype-parent{
  font:         14px/1.23 sans-serif;
  display:      table;
  table-layout: fixed;
  width:        100%;
  border-collapse: separate;
  border-spacing: 0 10px;
}

/* ROWS */

.message{
  display: table-row;
}

/* ALL CELLS */

.message > *{
  position:   relative;
  box-sizing: border-box;
  display:    table-cell;
}
.message img{
  border-radius:  50%;
  vertical-align: middle;
}

/* IMAGE CELL & TIME CELL */

.message > div:nth-child(1),
.message > div:nth-child(3){
  width:      52px;
  text-align: center;
  font-size:  12px;
  color:      #AFCBD8;
}

/* MESSAGE CELLS */

.message p {
  color:      #6E767C;
  border-radius:4px;
  padding: 12px 14px;
  margin: 0 36px 0 0;
  background: #c7edfc;
}
.message.user p {
  margin: 0 0 0 36px;
  background: #e5f7fd;
}

/* ARROWS */

.message > div:nth-child(2):after {
  position:   absolute;
  content:    "";
  width:      8px;
  height:     8px;
  background: #c7edfc;
  left:       0;
  top:        18px;
  margin-left: -4px;
  transform:  rotate(45deg); -webkit-transform: rotate(45deg);
}

.message.user > div:nth-child(2):after {
  left:       100%;
  background: #e5f7fd;
}
<div class="skype-parent">

  <div class="message">
    <div><img src="https://i.stack.imgur.com/1ZIkv.jpg?s=32&g=1"></div>
    <div><p>It's easy!</p></div>
    <div>08:40</div>
  </div>

  <div class="message user">
    <div></div>
    <div><p>Really?</p></div>
    <div>08:42</div>
  </div>

  <div class="message">
    <div><img src="https://i.stack.imgur.com/1ZIkv.jpg?s=32&g=1"></div>
    <div><p>Well...</p></div>
    <div>08:42</div>
  </div>

</div> 

回顾一下:将您的聊天窗口想象成一个表格网格:

在此处输入图片说明

您会看到ROWS和每行三个单元格。
现在,很酷,为<p>.message DIV(单元格)着色,为传入的消息添加左边距,为另一条添加右边距。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使按钮看起来像标签?

来自分类Dev

如何使UITableView看起来像这样?

来自分类Dev

如何使UITableView看起来像这样?

来自分类Dev

如何使我的Unity面板和窗口控件看起来像这样?

来自分类Dev

如何使tinymce编辑窗口看起来像django夹层中的网站页面?

来自分类Dev

如何使html div块看起来像剪切?里面的例子

来自分类Dev

div内的文字看起来像para

来自分类Dev

如何删除看起来像标志的文件?

来自分类Dev

如何使Ubuntu看起来像Windows Vista?

来自分类Dev

Angularjs。如何使输入字段看起来像253.3445.9621?

来自分类Dev

如何使已禁用的DatePicker看起来像已启用

来自分类Dev

如何使matplotlib图看起来像这样专业?

来自分类Dev

如何使colorbox看起来像示例3 Colorbox?

来自分类Dev

如何使RadioButton看起来像JavaFX中的常规Button

来自分类Dev

我如何添加双引号看起来像json

来自分类Dev

如何使Ubuntu 12.04看起来像Mac?

来自分类Dev

如何使Ubuntu看起来像Windows Vista?

来自分类Dev

如何删除看起来像标志的文件?

来自分类Dev

如何使Ubuntu 12.04看起来像Mac?

来自分类Dev

如何使Swing应用看起来像平台的本机应用

来自分类Dev

如何避免输出看起来像日志(Python)

来自分类Dev

如何删除任何看起来像日期的东西

来自分类Dev

如何使Thunderbird的回复格式看起来像Outlook的格式?

来自分类Dev

如何使锁定屏幕看起来像登录屏幕?

来自分类Dev

如何使字体看起来像Windows中的字体?

来自分类Dev

如何使EditText看起来像Android中的页面

来自分类Dev

我如何获得选择元素看起来像这样?

来自分类Dev

如何让 Ubuntu 看起来像 Windows XP?

来自分类Dev

如何让 FreeOffice 界面看起来像官方截图?

Related 相关文章

  1. 1

    如何使按钮看起来像标签?

  2. 2

    如何使UITableView看起来像这样?

  3. 3

    如何使UITableView看起来像这样?

  4. 4

    如何使我的Unity面板和窗口控件看起来像这样?

  5. 5

    如何使tinymce编辑窗口看起来像django夹层中的网站页面?

  6. 6

    如何使html div块看起来像剪切?里面的例子

  7. 7

    div内的文字看起来像para

  8. 8

    如何删除看起来像标志的文件?

  9. 9

    如何使Ubuntu看起来像Windows Vista?

  10. 10

    Angularjs。如何使输入字段看起来像253.3445.9621?

  11. 11

    如何使已禁用的DatePicker看起来像已启用

  12. 12

    如何使matplotlib图看起来像这样专业?

  13. 13

    如何使colorbox看起来像示例3 Colorbox?

  14. 14

    如何使RadioButton看起来像JavaFX中的常规Button

  15. 15

    我如何添加双引号看起来像json

  16. 16

    如何使Ubuntu 12.04看起来像Mac?

  17. 17

    如何使Ubuntu看起来像Windows Vista?

  18. 18

    如何删除看起来像标志的文件?

  19. 19

    如何使Ubuntu 12.04看起来像Mac?

  20. 20

    如何使Swing应用看起来像平台的本机应用

  21. 21

    如何避免输出看起来像日志(Python)

  22. 22

    如何删除任何看起来像日期的东西

  23. 23

    如何使Thunderbird的回复格式看起来像Outlook的格式?

  24. 24

    如何使锁定屏幕看起来像登录屏幕?

  25. 25

    如何使字体看起来像Windows中的字体?

  26. 26

    如何使EditText看起来像Android中的页面

  27. 27

    我如何获得选择元素看起来像这样?

  28. 28

    如何让 Ubuntu 看起来像 Windows XP?

  29. 29

    如何让 FreeOffice 界面看起来像官方截图?

热门标签

归档