【发布时间】:2021-09-05 23:58:36
【问题描述】:
我正在学习 flexbox,我的目标是创建一个包含 3 个项目的简单 flexbox,它可以响应不同的设备(智能手机、平板电脑、台式机……)。 这些项目应该一个在另一个之上,并一起填充所有浏览器的宽度和高度。所以基本上不应该有滚动。 (总结一个项目在最顶部,一个在页面底部,其余的占据中间的空间)。
桌面和智能手机上的宽度部分似乎可以工作。但是如何填充浏览器的高度,字体和框如何适应不同设备的不同高度,对我来说仍然是个谜。
我的临时解决方案是增加智能手机的利润……
你有什么想法?
这是我所做的:
.container {
display: flex;
flex-wrap: wrap;
width: 100%;
height: 100%;
font-size: 3em;
}
.item {
border: 5px solid red;
margin-bottom: 40px;
}
@media screen and (max-width: 500px) {
.element {
margin-bottom: 70px;
}
}
.one {
flex-basis: 100%;
display: flex;
}
.two {
flex-basis: 80%;
display: flex;
}
@media screen and (max-width: 64em) {
body {
font-size: 80%;
}
}
@media screen and (max-width: 50em) {
body {
font-size: 70%;
}
}
@media screen and (max-width: 30em) {
body {
font-size: 60%;
}
}
.three {
flex-basis: 100%;
}
<div class="container">
<div class="item one">1</div>
<div class="item two">
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
</div>
<div class="item three">3</div>
</div>
【问题讨论】:
-
下次请使用minimal, reproduciable code snippet。主要关注最小化。 30 行 HTML 代码被两个编辑器缩减为 8 行,在清除您过度使用空格之后是对代码行的不必要使用。也无需使用 3 个具有完全相同内容的媒体查询。一个就足够了。
标签: html css flexbox responsive-design