html - 为什么 div 会出现在主 div 容器之外?
问题描述
我刚开始学习 HTML 和 CSS。在学习教程时,我只是想到了一些实验。
问题是:
为什么底部<div>
s 在 main 之外<div>
?
是因为浮动属性吗?我认为是,如果真的是这样,我如何将这些浮动底部 div 包含到红色主容器 div 中?
有类似的问题,比如这个CSS Float Logic但对于初学者来说有点复杂。
.clr {
clear: both;
}
.container {
width: 80%;
margin: auto;
border: 2px solid royalblue;
background-color: red;
}
.block {
float: left;
width: 33.3%;
border: 1px solid #ccc;
padding: 10px;
box-sizing: border-box;
}
#main-block {
float: left;
width: 70%;
}
#sidebar {
float: right;
width: 30%;
background-color: #333;
color: #ffffff;
padding: 15px;
box-sizing: border-box;
margin: 0;
}
<div class="container">
<div class="block">
<h3>Heading</h3>
<p>“Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.” The purpose of lorem ipsum is to create a natural looking block of text (sentence, paragraph, page, etc.) that doesn't distract
from the layout. A practice not without controversy, laying out pages with meaningless filler text can be very useful when the focus is meant to be on design, not content.</p>
</div>
<div class="block">
<h3>Heading</h3>
<p>“Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.” The purpose of lorem ipsum is to create a natural looking block of text (sentence, paragraph, page, etc.) that doesn't distract
from the layout. A practice not without controversy, laying out pages with meaningless filler text can be very useful when the focus is meant to be on design, not content.</p>
</div>
<div class="block">
<h3>Heading</h3>
<p>“Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.” The purpose of lorem ipsum is to create a natural looking block of text (sentence, paragraph, page, etc.) that doesn't distract
from the layout. A practice not without controversy, laying out pages with meaningless filler text can be very useful when the focus is meant to be on design, not content.</p>
</div>
<div class="clr"></div>
<div id="main-block">
<h3>Heading</h3>
<p>“Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.”
</p>
</div>
<div id="sidebar">
<p>“Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.” .
</p>
</div>
</div>
解决方案
我认为问题在于
<div class="clr"></div>
你应该把它放在容器的末端。然而更好的解决方案是使用 css 解决这个问题。不是 HTML 代码。如下:
.container:after{
display: block;
clear: both;
content: "";
height: 0;
overflow: hidden;
}
推荐阅读
- content-management-system - 我们如何为多页网站的 drupal-8 结构创建可跨页面使用的通用组件?
- dialogflow-es - 如何在 Dialogflow 中为 Facebook Messenger 创建动态轮播?
- html - 主页链接指向与使用相同 ID 的导航栏链接略有不同的视图
- css - 反应悬停样式
- unity3d - 两个几乎相同的批处理脚本之一中的语法错误:“)”无法在此处进行语法处理
- amazon-web-services - 如何使用 AWS Route 53 中的域名在 ec2(Ubuntu 18.04)中配置 nginx
- javascript - 如何正确使用 ES6 进行咖喱?
- katalon-studio - 如何在 Katalon Studio 中开发代码以生成 HTML 报告?
- node.js - Mocha 在测试预期错误条件中抛出 Promise 拒绝错误。如何解决这个问题?
- tensorflow - 将 tensorflow 模型冻结为 .pb 文件