Css 浮动:在其他元素上左重叠
我正在努力让自己明白过来,所以首先,让我向你们展示我已经做了什么: 以下是我的HTML页面摘录:Css 浮动:在其他元素上左重叠,css,css-float,Css,Css Float,我正在努力让自己明白过来,所以首先,让我向你们展示我已经做了什么: 以下是我的HTML页面摘录: <div id="random_div"> random text message </div> <p> warning 1 </p> <p> warning 2 </p> 其中给出了输出: 我想要这样的东西: div和2p之间没有重叠 编辑 我想保留div的边距,一般来说,元素是如何放置的,如果可以在div和两个p
<div id="random_div">
random text message
</div>
<p>
warning 1
</p>
<p>
warning 2
</p>
其中给出了输出:
我想要这样的东西:
div和2p之间没有重叠
编辑
我想保留div的边距,一般来说,元素是如何放置的,如果可以在div和两个p之间添加边距,那就更好了:)我使用css网格为您提供了一个简单的解决方案。 唯一的变化是,通过这种方式,您实际上可以更轻松地修改布局,而不是使用浮动。请检查此处的代码:
1.
2.
3.
#内容{
最大宽度:960像素;
保证金:自动;
显示:网格;
网格模板列:重复(3,1fr);
网格模板行:重复(3,最小值(150px,自动));
栅隙:10px;
}
.一{
网格行:1/3;
}
.二{
网格柱:2/5;
}
.三{
网格柱:2/5;
}
这是因为您没有清除浮动。用clearfix类包装浮动
#随机分区{
背景:#fff;
填充:20px;
字体大小:25px;
右边距:15px;
宽度:150px;
浮动:左;
}
.clearfix::之后{
内容:“;
明确:两者皆有;
显示:表格;
}
p{
背景颜色:橙色;
}
随机短信
警告1
警告2
好吧,一位朋友告诉我一个可以接受的解决方案,我真的不想承担责任,但我必须结束这件事
解决方案是使用flex-box而不是float,这并不是我想要做的
html:
结果:
现在我只需要对边距进行一些处理,以获得所需的输出:)您正在将边距应用于float元素。删除它好吧,如果我这样做,我再也看不到橙色了,所以它更好,但我想保留marginI抱歉,但这不是我想要的,我想在div的右侧添加警告我已经更新了响应,并根据您的要求进行了一些小的更改。我真的不明白clearfix的意义。从我的例子来看,如果我只是用“右边距”替换“右边距”,我得到的结果与您相同。(因此div仍然与p重叠,只是我看不到它。这很有趣,但我不能对HTML做太多修改,尤其是我的p有不同的类。然而,也许我可以只使用2个单元格(一个单元格有我的div,一个单元格内有2个p)…但它需要很多修改。。。
#random_div {
background: #fff;
padding: 20px;
font-size: 25px;
margin: 15px;
width: 150px;
float: left;
}
p{
background-color: orange;
}
<div id="content">
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
</div>
#content {
max-width: 960px;
margin: auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, minmax(150px, auto));
grid-gap: 10px;
}
.one {
grid-row: 1 / 3;
}
.two {
grid-column: 2 / 5;
}
.three {
grid-column: 2 / 5;
}
<div class='wrapper'>
<div id="random_div">
random text message
</div>
<div class='message'>
<p>
warning 1
</p>
<p>
warning 2
</p>
</div>
</div>
#random_div {
background: #fff;
padding: 20px;
font-size: 25px;
width: 150px;
margin: 15px;
}
p{
background-color: orange;
margin-right: 5px;
}
.wrapper {
display: flex;
align-items: center;
}
.message {
flex-grow: 1;
}