css实现垂直上下布局的两种常用方法

例子:将两个<span>元素在<div>内垂直居中放置.

方法一:使用 Flexbox 来实现。

在下面的示例中,我将为 <div> 元素添加样式,使其成为一个 Flex 容器,并使用 Flexbox 属性将其中的两个 <span> 元素垂直居中:

import React from 'react';
import './Component.css'; // 导入样式文件

function Component() {
  return (
    <div className="container">
      <span className="centered">Span 1</span>
      <span className="centered">Span 2</span>
    </div>
  );
}

export default Component;

在上述代码中,我们为

元素添加了名为 .container 的样式类,并为两个 元素分别添加了名为 .centered 的样式类。

然后,在样式文件(例如 Component.css)中,你可以使用 Flexbox 属性来实现垂直居中:

.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 300px; /* 为示例添加一个高度 */
}

.centered {
  /* 可选的样式定义 */
}

我们通过将 .container 的 display 属性设置为 flex,以及设置 flex-direction: column;、align-items: center; 和 justify-content: center;,将其内部的元素在垂直方向上居中对齐。

你可以根据需要对 .centered 类进行进一步的样式定义,例如设置文字样式、边距等。

方法二:使用 Grid 实现上下布局

你可以在容器上应用 Grid 布局,并使用网格行来定位上下两个元素。下面是一个使用 Grid 实现上下布局的示例:

import React from 'react';
import './Component.css'; // 导入样式文件

function Component() {
  return (
    <div className="container">
      <div className="top">上方内容</div>
      <div className="bottom">下方内容</div>
    </div>
  );
}

export default Component;

在上述代码中,我们在 <div> 元素中包含了两个子元素,分别是上方内容和下方内容。

然后,在样式文件(例如 Component.css)中,你可以使用 Grid 属性来实现上下布局:


.container {
  display: grid;
  grid-template-rows: 1fr auto; /* 使用网格行实现上下布局 */
  height: 100vh; /* 为示例添加一个高度,这里使用视口高度作为容器高度 */
}

.top {
  background-color: #f1f1f1;
}

.bottom {
  background-color: #ddd;
}

在上述代码中,我们将 .container 的 display 属性设置为 grid,并使用 grid-template-rows 属性来定义网格行。1fr 表示第一行占据剩余的垂直空间,auto 表示第二行根据内容自动调整高度。

.top 和 .bottom 元素则根据需要进行样式定义。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凭栏听雨客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值