html - 向右浮动不工作
问题描述
我正在尝试制作一个聊天系统,它在我本地运行得非常好,但似乎我在某处错过了一些 CSS 或 HTML?我试过比较我的文件,看不到任何丢失的东西。
首先,这是我做的 JS 小提琴:https ://jsfiddle.net/xefhrj73/1/
正如您所看到的,前 2 条消息显示正确,尽管在float:left
元素上,头像位于 div 下方而不是侧面,我猜这会破坏我的其余float:right
元素继续吗?
我尝试添加clear:inherit
哪个可以将头像放在左侧,但会破坏消息之间的格式
.chat-left .chat-avatar {
float: left;
}
.chat-left .chat-body {
margin-right: 0;
margin-left: 30px;
}
.chat-left .chat-content {
float: left;
margin: 0 0 10px 20px;
color: #555;
background-color: #d7d7d7;
}
.chat-avatar .avatar {
position: relative;
display: inline-block;
width: 40px;
white-space: nowrap;
border-radius: 1000px;
vertical-align: bottom;
}
.chat-avatar .avatar img {
width: 100%;
max-width: 100%;
height: auto;
border: 0 none;
border-radius: 1000px;
}
.chat-avatar .avatar {
width: 30px;
}
.chat-avatar {
float: right;
}
.chat-body {
display: block;
margin: 10px 30px 0 0;
overflow: hidden;
}
.chat-content {
position: relative;
display: block;
float: right;
padding: 8px 15px;
margin: 0 20px 10px 0;
clear: both;
color: #fff;
background-color: #ff5722;
border-radius: .286rem;
max-width: 400px;
-moz-transition: all .3s ease 0s;
-webkit-transition: all .3s ease 0s;
-o-transition: all .3s ease 0s;
transition: all .3s ease 0s;
word-wrap: break-word;
}
.chat-content p{
color:rgba(255, 255, 255, 0.82);
}
<div class="chat chat-right ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="right" title="Backend">
<img src="https://www.gravatar.com/avatar/30aa172009d1e4e569d31a54899af0ee.jpg?s=80&d=mm&r=g" alt="Backend's Avatar">
</a>
</div>
<div class="chat-body">
<div class="chat-content">
<p>Hey I'd like more information regarding this property!</p>
<time class="chat-time" datetime="2018-06-11 16:06:39"> 1 hour ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>test</p>
<time class="chat-time" datetime="2018-06-11 17:24:22"> 23 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div></div>
<div class="chat chat-left ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="left" title="Default">
<img src="https://www.gravatar.com/avatar/88b87698be0bc461f3cacf1f080929d5.jpg?s=80&d=mm&r=g" alt="Default's Avatar">
</a>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>hi</p>
<time class="chat-time" datetime="2018-06-11 17:34:32"> 13 minutes ago</time>
</div>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>hey</p>
<time class="chat-time" datetime="2018-06-11 17:34:58"> 13 minutes ago</time>
</div>
</div></div>
<div class="chat chat-right ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="right" title="Backend">
<img src="https://www.gravatar.com/avatar/30aa172009d1e4e569d31a54899af0ee.jpg?s=80&d=mm&r=g" alt="Backend's Avatar">
</a>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>hey</p>
<time class="chat-time" datetime="2018-06-11 17:36:13"> 12 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>hi hi hi</p>
<time class="chat-time" datetime="2018-06-11 17:36:22"> 11 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div></div>
<div class="chat chat-left ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="left" title="Default">
<img src="https://www.gravatar.com/avatar/88b87698be0bc461f3cacf1f080929d5.jpg?s=80&d=mm&r=g" alt="Default's Avatar">
</a>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>hi hi hi hi</p>
<time class="chat-time" datetime="2018-06-11 17:36:55"> 11 minutes ago</time>
</div>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>lol from creator</p>
<time class="chat-time" datetime="2018-06-11 17:37:55"> 10 minutes ago</time>
</div>
</div></div>
<div class="chat chat-right ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="right" title="Backend">
<img src="https://www.gravatar.com/avatar/30aa172009d1e4e569d31a54899af0ee.jpg?s=80&d=mm&r=g" alt="Backend's Avatar">
</a>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>lol from buyer</p>
<time class="chat-time" datetime="2018-06-11 17:38:45"> 9 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div>
解决方案
在开始每个左聊/右聊 div 之前添加一个clearfix
div 您的代码还有一些不需要的关闭 div。始终尝试格式化您的代码以清楚地看到这些内容。
.clearfix::after {
content: "";
clear: both;
display: table;
}
.chat-left {
display: flex;
}
.chat-left .chat-avatar {
float: left;
}
.chat-left .chat-body {
margin-right: 0;
margin-left: 30px;
}
.chat-left .chat-content {
float: left;
margin: 0 0 10px 20px;
color: #555;
background-color: #d7d7d7;
}
.chat-avatar .avatar {
position: relative;
display: inline-block;
width: 40px;
white-space: nowrap;
border-radius: 1000px;
vertical-align: bottom;
}
.chat-avatar .avatar img {
width: 100%;
max-width: 100%;
height: auto;
border: 0 none;
border-radius: 1000px;
}
.chat-avatar .avatar {
width: 30px;
}
.chat-avatar {
float: right;
}
.chat-body {
display: block;
margin: 10px 30px 0 0;
overflow: hidden;
}
.chat-content {
position: relative;
display: block;
float: right;
padding: 8px 15px;
margin: 0 20px 10px 0;
clear: both;
color: #fff;
background-color: #ff5722;
border-radius: .286rem;
max-width: 400px;
-moz-transition: all .3s ease 0s;
-webkit-transition: all .3s ease 0s;
-o-transition: all .3s ease 0s;
transition: all .3s ease 0s;
word-wrap: break-word;
}
.chat-content p {
color: rgba(255, 255, 255, 0.82);
}
.clearfix::after {
content: "";
clear: both;
display: table;
}
.chat-left {
display: flex;
}
.chat-right>div {}
<div class="chat chat-right ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="right" title="Backend">
<img src="https://www.gravatar.com/avatar/30aa172009d1e4e569d31a54899af0ee.jpg?s=80&d=mm&r=g" alt="Backend's Avatar">
</a>
</div>
<div class="chat-body">
<div class="chat-content">
<p>Hey I'd like more information regarding this property!</p>
<time class="chat-time" datetime="2018-06-11 16:06:39"> 1 hour ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>test</p>
<time class="chat-time" datetime="2018-06-11 17:24:22"> 23 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div>
<div class="clearfix"></div>
<div class="chat chat-left ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="left" title="Default">
<img src="https://www.gravatar.com/avatar/88b87698be0bc461f3cacf1f080929d5.jpg?s=80&d=mm&r=g" alt="Default's Avatar">
</a>
</div>
<div>
<div class="chat-content" style="margin-right:50px;">
<p>hi</p>
<time class="chat-time" datetime="2018-06-11 17:34:32"> 13 minutes ago</time>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>hey</p>
<time class="chat-time" datetime="2018-06-11 17:34:58"> 13 minutes ago</time>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="chat chat-right ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="right" title="Backend">
<img src="https://www.gravatar.com/avatar/30aa172009d1e4e569d31a54899af0ee.jpg?s=80&d=mm&r=g" alt="Backend's Avatar">
</a>
</div>
<div class="chat-body">
<div class="chat-content" style="margin-right:50px;">
<p>hey</p>
<time class="chat-time" datetime="2018-06-11 17:36:13"> 12 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>hi hi hi</p>
<time class="chat-time" datetime="2018-06-11 17:36:22"> 11 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="chat chat-left ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="left" title="Default">
<img src="https://www.gravatar.com/avatar/88b87698be0bc461f3cacf1f080929d5.jpg?s=80&d=mm&r=g" alt="Default's Avatar">
</a>
</div>
<div>
<div class="chat-content" style="margin-right:50px;">
<p>hi hi hi hi</p>
<time class="chat-time" datetime="2018-06-11 17:36:55"> 11 minutes ago</time>
</div>
<div class="chat-content" style="margin-right:50px;">
<p>lol from creator</p>
<time class="chat-time" datetime="2018-06-11 17:37:55"> 10 minutes ago</time>
</div>
</div>
</div>
<div class="clearfix"></div>
<div class="chat chat-right ">
<div class="chat-avatar">
<a class="avatar" data-toggle="tooltip" href="" data-placement="right" title="Backend">
<img src="https://www.gravatar.com/avatar/30aa172009d1e4e569d31a54899af0ee.jpg?s=80&d=mm&r=g" alt="Backend's Avatar">
</a>
</div>
<div class="chat-body">
<div class="chat-content" style="margin-right:50px;">
<p>lol from buyer</p>
<time class="chat-time" datetime="2018-06-11 17:38:45"> 9 minutes ago <i class="fa fa-check m-l-5 text-read" data-toggle="tooltip" data-placement="right" title="Read"></i></time>
</div>
</div>
</div>
更新的小提琴
推荐阅读
- django - 在IIS上部署Django的静态文件
- html - 如何为跨度定义 XPath,或者在跨度不可用的情况下使用 div
- datepicker - 当空间不足时,Jquery UI Datepicker 覆盖/隐藏字段
- java - 使用 jsonb_array_elements 进行批处理有什么缺点?
- r - 为什么 norm(x, type='2')!=x%*%x?
- asp.net-core - 支持多种数据库类型的数据库迁移库
- terraform - 无法为雪花连接构建 dsn:未提供身份验证方法
- c# - 对重复匹配使用单独的捕获组
- javascript - 为什么提交函数和ajax没有拾取模态中的html表单提交?
- java - 在 PHP 上运行 Java 的空数组