html - 想要在一个 div 内制作 3 个不同宽度的 div
问题描述
我正在尝试在另一个 div 中创建 3 个 div。这三个 div 具有不同的宽度。第一个 div 包含一张图片。我想将单个 div 的内容放在其各自的中心以及容器 div 内。
HTML
<div id="container">
<div id="left">
<img src="Pictures\38fafe4c2faaa7d207b0115720dedd21.jpg" alt="Pic Not available"
class="maskpic">
</div>
<div id="middle">
<p class="firstmiddle">
STAY HOME,
</p>
<p class="secondmiddle">
STAY SAFE.
</p>
</div>
<div id="right">
<p>
Contactless Deliveries
<br><br>
All delivery staff trained in COVID-19<br>preventive measures
<br><br>
All Delivery and warehouse staff are equipped with<br>medical-grade hand Sanitizers
<br><br>
All warehouse staff undergo daily mandatory<br>thermal temperature scanning
<br><br>
No deliveries in 'highly affected' areas
</p>
</div>
</div>
CSS
#container {
width: 100%;
height: 200px;
}
#left, #middle, #right { color: #333333; }
#left {
display: inline-block; *display: inline; zoom: 1; vertical-align: top;
}
.maskpic {
height: 100px;
width: 25%;
}
#middle {
display: inline-block; *display: inline; zoom: 1; vertical-align: top; font-size: 58px
}
#right {
display: inline-block; *display: inline; zoom: 1; vertical-align: top; font-size: 18px;
}
#left {
width: 25%; background:#C0C0C0;
}
#middle {
width: 50%; background: #C0C0C0;
}
#right {
width: 25%; background:#C0C0C0;
}
解决方案
有一个快速解决方法。尝试使用 grid 或 flex 将所有内容居中。
该容器可以使用FLEX,因为它易于设置;“我认为您的意图是使用 display: inline-block 使 div 出现在一行中,问题在于根据显示它不会按您的预期工作。所以我使用了 flex-box 与在一定程度上单独显示尺寸。”
里面的 div 被制作成GRID以满足您想要的中心对齐。“我使用网格是因为它只需要一条线即可将所有内容居中:place-items:center;但请注意,它必须只有一个直接子级,这样它就不会创建新行。如果你想在里面添加许多标签,只要确保将它们放在一个父母之下。”
例子:
<div style="display:grid;place-items:center">
<div>
... items here ...
</div>
</div>
有关 flex 和 grid 的更多信息:
- https://css-tricks.com/snippets/css/a-guide-to-flexbox/
- https://css-tricks.com/snippets/css/complete-guide-grid/
#container {
width: 100%;
display:flex;
align-items:stretch;
}
#left, #middle, #right {
display:grid;
place-items:center;
color: #333333;
background: #C0C0C0;
width: 25%;
font-size: 14px;
padding:1rem;
}
.maskpic {
height: 100px;
width: 25%;
}
#middle {
width: 50%;
font-size: 48px
}
<div id="container">
<div id="left">
<img src="Pictures\38fafe4c2faaa7d207b0115720dedd21.jpg" alt="Pic Not available"
class="maskpic">
</div>
<div id="middle">
<p>
STAY HOME, <br>STAY SAFE.
</p>
</div>
<div id="right">
<p>
Contactless Deliveries
<br><br>
All delivery staff trained in COVID-19<br>preventive measures
<br><br>
All Delivery and warehouse staff are equipped with<br>medical-grade hand Sanitizers
<br><br>
All warehouse staff undergo daily mandatory<br>thermal temperature scanning
<br><br>
No deliveries in 'highly affected' areas
</p>
</div>
</div>
推荐阅读
- json - 使用 jq 将 JSON 结构化为 CSV
- c# - 根据调用类在静态类中设置静态变量
- c++ - lambda 参数中的结构化绑定
- python - TypeError:SetDimensions 参数 1:预期 3 个值的序列,得到 2 个值
- python - 无头 Chrome 驱动程序未返回所需结果
- maven - maven 3.8.0 :testCompile (default-testCompile) 在项目 App 上:致命错误编译:无效标志:--release -> [帮助 1]
- react-native - (React Native)在 onPress() 之后将颜色更改为文本
- php - foreach() 仅返回带有 json_decode() 的最后一项
- javascript - Slick Uncaught TypeError: e(...).slick is not a function
- android - 是否应该从 Playstore 下载应用程序以跟踪安装情况?或者有没有其他方法可以进行安装跟踪测试