jquery - <li> 的条件 float

标签 jquery html css reactjs bootstrap-4

我正在构建一个聊天客户端,如果消息来自活跃用户,我想float-right,然后当从其他用户收到消息时float-left最终用户。我尝试在我的 css 本身中添加 float:right,但是当我这样做时,它会使我的列表项变为水平而不是垂直。

JavaScript

if (user.id === msgsender.id) {
    $("#messages").append($("<div class= bubble-r><li>/div>").text(msg));
} else {
    $("#messages").append($("<div class=bubble><li></div>").text(msg));
}
function render() {
    return (
      <div>
        <ul id="messages">
          <div />
        </ul>
      </div>
    );
  }

CSS

.bubble-r {
  overflow-x: hidden;

  align-items: flex-end;
  position: relative;
  background: #0072c6;
  max-width: 100px;
  padding: 5px;
  font-family: arial;
  margin: 0 auto;
  font-size: 14px;
  color: white;
  border-radius: 6px;
}

.bubble {
  overflow-x: hidden;
  position: relative;
  background: #cad5d7;
  max-width: 100px;
  padding: 5px;
  font-family: arial;
  margin: 0 auto;
  font-size: 14px;
  border-radius: 6px;
}
ul {
  padding: 0px;
  margin: 4px;
}

最佳答案

那是因为您需要为每个气泡文本在 block 级别进行包装。基本方法是插入一个 li,里面有一个 div.bubble,如果消息来自发件人,它会 float 。

添加应该是这样的:

function addMessage(user, msg) {
    var $li = $("<li></li>");
    var $div = $("<div/>")
      .addClass("bubble")
      .text(msg)
      .toggleClass("bubble-sender", user.id === msgsender.id) //If sender, it will add "bubble-sender" class
      .appendTo($li);
    $li.appendTo("#messages");
}

然后,您只需让 .bubble-sender 类向右浮动即可。

这是代码的 fiddle https://jsfiddle.net/Robertroid/Lxd78ayf/29/

还修复了一些问题,比如冗余的 css(两个气泡都有一个 .bubble 类,用于共享样式),将 ul 更改为 ol (这是有道理的,因为聊天文本按到达顺序排列)并且 liol 的直接子级。

希望对你有帮助

关于jquery - <li> 的条件 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52106598/

相关文章:

javascript - jQuery :not with anchor exclude div and img elements

javascript - 单击列表项应显示与该列表项相关的表格

php - 检测何时在 Woocommerce 中单击 "remove"优惠券按钮

名称滚动位置上的 Jquery addClass

javascript - 将解析后的 JSON 保存为 obj

javascript - Javascript 验证后提交表单

javascript - JavaScript 函数声明是否返回对函数的引用?

css - 为什么不能将特定于供应商的伪元素/类组合到一个规则集中?

html - 将两个元素放在同一个 div 中,没有任何空间或格式问题

javascript - 我可以将彩盒固定在头上吗?