Float在我的CSS设计中引起了问题

  • 本文关键字:问题 CSS Float html css
  • 更新时间 :
  • 英文 :


当我在.box1中使用float:left;,在.box2中使用float:none;(或不使用float元素(时,.box2的整体布局/设计会移动到box1之后,但box2的所有文本内容都会保留在其前一位置。因此,请解释为什么以及如何发生这种情况,并仅在可能的情况下使用float提供解决方案。在回答这个问题之前,请考虑一下我是个初学者。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Float</title>
<!-- Float just flows the element to left or right -->
<style>
*{
margin: 0;
padding: 0;
}
.container{
background-color: aqua;
height: 70vh;
width: 80vw;
text-align: center;

}
.box1{
background-color: red;
border: 3px solid black;
height: 25vh;
width: 20vw;
font-size: 3vh;
float: left;
}
.box2{
background-color: rgb(248, 11, 177);
border: 3px solid black;
height: 25vh;
font-size: 3vh;
width: 20vw;
/* float: right; */
}
.box3{
background-color: rgb(7, 206, 67);
border: 3px solid black;
height: 25vh;
width: 20vw;
font-size: 3vh;
float: right;
}
</style>
</head>
<body>
<div class="container">
<div class="box1">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Distinctio sapiente pariatur quidem laudantium</div>
<div class="box2">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Inventore, sed! Cumque saepe dolore.</div>
<div class="box3">Lorem ipsum dolor sit, amet consectetur adipisicing elit. In optio est accusamus?
</div>
</div>
</body>
</html>

根据文档,float仅适用于文本或内联元素。因此,您需要使浮动元素内联(display: inlinedisplay: inline-blockdisplay: inline-flex等(

* {
margin: 0;
padding: 0;
}
.container {
background-color: aqua;
height: 70vh;
width: 80vw;
text-align: center;
}
.box1 {
background-color: red;
border: 3px solid black;
height: 25vh;
width: 20vw;
font-size: 3vh;
float: left;
display: inline-block;
}
.box2 {
background-color: rgb(248, 11, 177);
border: 3px solid black;
height: 25vh;
font-size: 3vh;
width: 20vw;
display: inline-block;
/* float: right; */
}
.box3 {
background-color: rgb(7, 206, 67);
border: 3px solid black;
height: 25vh;
width: 20vw;
font-size: 3vh;
float: right;
display: inline-block;
}
<div class="container">
<div class="box1">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Distinctio sapiente pariatur quidem laudantium</div>
<div class="box2">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Inventore, sed! Cumque saepe dolore.</div>
<div class="box3">Lorem ipsum dolor sit, amet consectetur adipisicing elit. In optio est accusamus?
</div>
</div>

最新更新