Html 为什么带宽度和不带浮动的div是o的下一行?

Html 为什么带宽度和不带浮动的div是o的下一行?,html,css,Html,Css,我有以下标记: <html> <head> <meta charset="utf-8"> <title>float</title> <style> .layer1 { float: left; /* Обтекание по правому краю */ background: #fd0; /* Цвет фона */ border: 1px solid black; /* П

我有以下标记:

<html>
 <head>
  <meta charset="utf-8">
  <title>float</title>
  <style>
   .layer1 {
    float: left; /* Обтекание по правому краю */
    background: #fd0; /* Цвет фона */
    border: 1px solid black; /* Параметры рамки */
    padding: 10px; /* Поля вокруг текста */
    margin-right: 20px; /* Отступ справа */
    width: 40%; /* Ширина блока */
   }
   .layer2 {
    width: 30px;
    float: left;
    }
  </style>
 </head> 
 <body> 
  <div class="layer1">
   Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh 
   euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.
  </div>
  <div class="layer2">
   Duis autem dolor in hendrerit in vulputate velit esse molestie consequat, vel 
   illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio 
   dignissim qui blandit praesent luptatum zzril delenit au gue duis dolore te 
   feugat nulla facilisi.
  </div>
 </body>
</html>

浮动
.第1层{
浮子:左;/*ббаааааааааа*/
背景:#fd0;/*诖诖诖诖诖*/
边框:1px纯黑;/*Пааааааа*/
填充物:10px;/*Пааааааа*/
右边距:20px;/*аССаПааа*/
宽度:40%;/*ааааааааа*/
}
.第二层{
宽度:30px;
浮动:左;
}
洛雷姆·伊普苏姆·多洛·西特,一位杰出的领袖,一位伟大的领袖
尤伊斯莫德·丁西德努特·拉克雷特·多洛尔·马格纳(euismod tincidunt ut lacreet dolore magna Aliaguam Pat)。
二人在亨德雷特的两个房间里,在维勒维尔的一个小房间里
illum dolore eu在vero eros et accumsan et iusto odio的封建设施无效
这是一个很好的例子
费加特·努拉·法利西。
我的问题是:如果第2层有浮动,那么我的两个div是同一条线;如果我从第2层移除浮动,只留下宽度,这个div将被转移到下一行。为什么?

另外,我是前端的初学者,我需要学习它。什么书/课程能帮助我学习?提前谢谢

这里的“问题”不是一个,而是标准的浮动行为。检查我的代码片段以查看
.layer2
的实际位置
.layer2
实际上从与
.layer1
相同的x坐标开始,否则它不会在
.layer1
周围浮动,而是一个新列。如果这是您想要的,您需要给
layer2
留出与
.layer2
宽度相同的像素

.layer1{
框大小:边框框;
浮动:左;
背景:rgba(255,230,240,0.5);
边框:1px纯黑;
填充:10px;
宽度:40%;
}
.第二层{
背景:rgba(2002002002000.5);
宽度:80px;
}
.附加类{
左缘:40%;
}

他是一位杰出的领袖,他是一位伟大的领袖。
两人在亨德雷特的两个房间里,在一个小房间里,一个小房间里,一个小房间里,一个小房间里,一个小房间里。
他是一位杰出的领袖,他是一位伟大的领袖。
在亨德雷特的两个房间里,有两个小房间,一个小房间,一个小房间,一个小房间,一个小房间,一个小房间,一个小房间,一个小房间,一个小房间,一个小房间,一个小房间。

因为div是一个块元素,所以它逐行占用;但如果我不给他设置宽度,第二排就不会进入下一行;如果我设置了-为什么?请再次检查代码段和我的解释。好的,我的意思是:如果layout2只有width属性,它将转到下一行;如果layout2没有任何样式,它将保持在同一行上-为什么?只要不浮动,
。layer2
的行为相同,无论是否应用宽度。但是如果应用
width:30px
,显然文本不能位于
.layer1
的右侧。应用<代码>宽度:75%
.layer1
,您会看到它没有换行(我想在代码段中使用半透明背景色演示这一点)。不应用任何宽度基本上意味着
.layer2
具有
宽度:100%(这是我解释的块级元素的标准行为之一)。@Connexo你能帮我一个大忙,再检查一下你的第一段吗?看起来你的
.layer1
s和
.layer2
s有点混乱;但如果我不给他设置宽度,第二排就不会进入下一行;如果我定下来就走-为什么?