使用Flexbox实现标题、内容左右布局并居中对齐

轻磊小哥_6281

轻磊小哥_6281

2025-09-25

896人浏览

原创

使用flexbox实现标题、内容左右布局并居中对齐

本文旨在解决使用Flexbox布局时,如何实现一个标题位于顶部,下方分为左右两部分内容区域,且右侧内容区域中的元素相对于主容器居中对齐的问题。我们将探讨多种实现方案,并通过代码示例详细讲解每种方案的优缺点,帮助开发者选择最适合的布局方式。

方案一:调整HTML结构

一种实现方式是将标题移动到右侧内容区域,从而简化对齐逻辑。

HTML结构:

<div class="main">
    <div class="container">
        <div class="info">
            <div class="league">
                @@##@@
                <span class="text-info">League</span>
            </div>

            <div class="stadium-date">
                <span class="text-info">Stadium, Location</span>
                <span class="date-info">26.06.2022</span>
                @@##@@
            </div>
        </div>

        <div class="match-display">
            <span class="title">NEXT MATCH</span>
            <div class="match">
                @@##@@
                VS.
                @@##@@
            </div>

            <div class="match main-match">
                @@##@@
                VS.
                @@##@@
            </div>

            <div class="match">
                @@##@@
                VS.
                @@##@@
            </div>
        </div>
    </div>
</div>

CSS样式:

.main{
    background-color:red;
    text-align: center;
}

.container{
    display: flex;
    align-items: flex-start; /* 修改 align-items 为 flex-start */
    justify-content: center;
}

.title{
    display: block;
}

.league{
    display: flex;
    align-items: center;
}

.stadium-date{
    display:flex;
    flex-direction: column;
    align-items: center;
}

.info{
    flex: 1;
    text-align: center;
}

.info img{
    width: 50%;
}

.match-display{
    flex: 1;
    text-align: center; /* 添加 text-align: center; */
}

.match{
    display: flex;
    justify-content: center;
    align-items: center;
}

.match img{
    width: 5%;
}

.main-match{
    border-style: solid;
    border-width: 3px;
    border-image: linear-gradient(to left, red 0%, red 25%, black 50%, red 75%, red 100%) 100% 0 100% 0/3px 0 3px 0 stretch;
}

说明:

  • 将.container的align-items修改为flex-start,确保左右两部分内容从顶部开始对齐。
  • 在.match-display中添加text-align: center,使其内部元素居中对齐。

优点:

  • 实现简单,易于理解。

缺点:

  • 改变了原有的HTML结构,可能不适用于所有场景。

方案二:绝对定位

另一种方法是使用绝对定位将左侧信息区域定位,并允许右侧内容区域占据全部宽度,并使用text-align: center居中对齐。

使用华数设计生成高保真HTML原型、演示文稿、动画和设计评审
使用华数设计生成高保真HTML原型、演示文稿、动画和设计评审

使用经过文档化的设计技能,从真实的品牌或项目背景中生成HTML原生原型、幻灯片、动态演示、可视化图表和评审流程。

下载

HTML结构:

保持原始的HTML结构不变。

CSS样式:

.main{
    background-color:red;
    text-align: center;
    position: relative; /* 添加 position: relative; */
}

.container{
    display: flex;
    /* align-items: center;  移除 align-items */
    justify-content: center;
}

.title{
    display: block;
}

.league{
    display: flex;
    align-items: center;
}

.stadium-date{
    display:flex;
    flex-direction: column;
    align-items: center;
}

.info{
    /* flex: 1;  移除 flex: 1 */
    text-align: center;
    position: absolute; /* 添加 position: absolute; */
    left: 0;
    top: 50px; /* 根据实际情况调整 */
}

.info img{
    width: 50%;
}

.match-display{
    flex: 1;
    text-align: center; /* 添加 text-align: center; */
    width: 100%; /* 占据全部宽度 */
}

.match{
    display: flex;
    justify-content: center;
    align-items: center;
}

.match img{
    width: 5%;
}

.main-match{
    border-style: solid;
    border-width: 3px;
    border-image: linear-gradient(to left, red 0%, red 25%, black 50%, red 75%, red 100%) 100% 0 100% 0/3px 0 3px 0 stretch;
}

说明:

  • 给.main添加position: relative,使其成为绝对定位元素的参考。
  • 给.info添加position: absolute,并设置left和top值来定位信息区域。
  • 移除.info的flex: 1。
  • 给.match-display添加width: 100%,使其占据全部宽度,并添加text-align: center使其内部元素居中对齐。
  • 注释或移除.container的align-items: center;,避免影响.match-display的居中对齐。

优点:

  • 保留了原始的HTML结构。
  • 可以更灵活地控制信息区域的位置。

缺点:

  • 需要手动调整绝对定位元素的位置。
  • 当内容高度变化时,可能需要调整top值。

总结

以上两种方案均可以实现目标布局,选择哪种方案取决于具体的应用场景和需求。如果可以接受修改HTML结构,方案一更简单直接。如果需要保留原始HTML结构并灵活控制信息区域的位置,方案二更合适。在实际开发中,应根据具体情况选择最合适的方案。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

css html 绝对定位

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
CSS position定位有几种方式
CSS position定位有几种方式

有4种,分别是静态定位、相对定位、绝对定位和固定定位。更多关于CSS position定位有几种方式的内容,可以访问下面的文章。

2023.11.23

352

4

flex教程
flex教程

php中文网为大家带来了flex教程合集,Flex是采用Flex布局的元素,称为Flex容器(flex container),简称"容器",它的所有子元素自动成为容器成员,有三个核心概念: flex项,需要布局的元素;flex容器,其包含flex项;排列方向,这决定了flex项的布局方向。php中文网还为大家带来flex的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

11217

7

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.6万人学习