You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让HTML页面内容上下排列而非并排?

解决内容并排问题的方案

问题核心是你的.contact-info-container使用了display: flex且默认方向为横向(row),所以内部元素会并排排列。以下是具体修改步骤:

1. 调整容器的Flex布局方向

将.contact-info-container改为垂直排列:

.contact-info-container {
  display: flex;
  flex-direction: column; /* 切换为垂直排列 */
  gap: 20px; /* 用gap统一控制元素间距,替代零散的margin */
  margin-top: 20px;
}

2. 重置子元素的Flex属性

去掉原有的横向布局相关设置,让子元素自动占满容器宽度:

.contact-info-container div {
  flex-basis: auto; /* 重置为默认值,取消固定宽度占比 */
  margin: 0; /* 去掉左右margin */
}

.contact-info-container .map-container {
  flex-basis: auto; /* 重置地图容器的宽度设置 */
  margin-left: 0; /* 去掉左侧margin */
}

3. 修改表单容器的显示方式

把.container的inline-block改为block,确保它独占一行:

.container {
  background-color: #FFFFFF;
  padding: 40px;
  border-radius: 10px;
  box-shadow: 0px 0px 10px #333333;
  width: 400px;
  margin: 0 auto;
  display: block; /* 改为block,避免和其他元素同行 */
}

完整修改后的CSS代码

body {
  background-color: #ffffff;
  color: #000000;
  font-family: Arial, sans-serif;
  min-height: 1000px;
}

#header {
  background-color: #000000;
  padding: 10px;
  text-align: center;
}

#header h1 {
  color: #FFFFFF;
  margin-top: 10px;
  padding-top: 10px;
}

#navbar {
  background-color: #000000;
  overflow: hidden;
  margin: auto;
  width: auto;
  text-align: center;
}

#navbar a {
  position: relative;
  display: inline-block;
  color: #FFFFFF;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

#navbar a:hover {
  background-color: #666666;
}

#content {
  margin-top: 20px;
  padding: 20px;
}

#about {
  margin-top: 20px;
  padding: 20px;
}

#footer {
  background-color: #000000;
  color: #ffffff;
  padding: 10px;
  text-align: center;
  position: fixed;
  bottom: 0;
  width: 100%;
}

label {
  display: block;
  margin-bottom: 10px;
}

input[type=text],
input[type=email],
textarea {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  box-sizing: border-box;
  font-size: 16px;
}

textarea {
  height: 150px;
}

input[type=text],
input[type=password] {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  box-sizing: border-box;
  font-size: 16px;
}

button[type=submit] {
  background-color: #000000;
  color: #FFFFFF;
  padding: 12px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
}

button[type=submit]:hover {
  background-color: #666666;
}

.container {
  background-color: #FFFFFF;
  padding: 40px;
  border-radius: 10px;
  box-shadow: 0px 0px 10px #333333;
  width: 400px;
  margin: 0 auto;
  display: block;
}

.contact-info {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
}

.contact-info div {
  flex-basis: calc(33.3% - 20px);
  margin: 0 10px;
}

.map-container {
  margin-top: 20px;
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.map-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.contact-info-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 20px;
}

.contact-info-container div {
  flex-basis: auto;
  margin: 0;
}

.contact-info-container .map-container {
  flex-basis: auto;
  margin-left: 0;
}

效果说明

  • flex-direction: column直接让flex容器内的元素从上到下垂直排列
  • gap属性可以简洁地控制元素间的垂直间距,无需逐个设置margin
  • 重置子元素的Flex属性,避免原有横向布局的样式残留干扰

内容的提问来源于stack exchange,提问作者Mhegazy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:37:03