新闻中心

使用 CSS Grid 实现元素置于垂直居中容器顶部且不超出屏幕的布局

2025-10-29
浏览次数:
返回列表

使用 css grid 实现元素置于垂直居中容器顶部且不超出屏幕的布局

本文介绍如何利用 CSS Grid 布局,实现一个元素位于垂直居中容器的顶部,并且在容器高度不足时,该元素能够固定在顶部,避免超出屏幕范围。通过示例代码和详细解释,帮助开发者掌握这种灵活且高效的布局技巧。

在网页设计中,经常会遇到需要将一个元素置于垂直居中的容器顶部,并且要保证在容器高度变化时,该元素不会超出屏幕范围的需求。传统的定位方式可能需要借助 J*aScript 来动态调整,但使用 CSS Grid 布局可以更简洁地实现这一效果。

使用 CSS Grid 实现布局

CSS Grid 布局提供了一种强大的方式来控制页面元素的排列。我们可以利用 Grid 的 grid-template-rows、justify-content 和 align-items 属性来实现垂直居中和元素置顶的效果。

以下是一个具体的实现示例:

HTML 结构:

<div class="wrapper">
  @@##@@
  <div class="centered">
    <h1>Heading</h1>
    <p>
      And some content. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen
      book.
    </p>
  </div>
</div>
<button onclick="toggle()">toggle wrapper size</button>

CSS 样式:

万相营造 万相营造

阿里妈妈推出的AI电商营销工具

万相营造 168 查看详情 万相营造
.wrapper {
  height: 600px; /* 初始高度,可以根据需要调整 */
  display: grid;
  grid-template-rows: 1fr auto 1fr; /* 将容器分为三行 */
  justify-content: center; /* 水平居中 */
  align-items: end; /* 底部对齐,保证内容区域在底部 */
}

.centered {
  background: #F00; /* 仅用于演示,可以替换为实际样式 */
  width: 300px; /* 内容区域宽度 */
}

.on-top {
  margin-bottom: 16px; /* 元素与内容区域的间距 */
}

button {
  position: absolute;
  top: 0;
  right: 0;
}

J*aScript (用于演示容器高度变化):

let i = 0;

function toggle() {
  document.querySelector('.wrapper').style.height = i++ % 2 === 0 ? '300px' : '600px';
}

代码解释:

  1. .wrapper:
    • display: grid;:将容器设置为 Grid 布局。
    • grid-template-rows: 1fr auto 1fr;:将容器分为三行,第一行和第三行占据剩余空间(1fr),中间行(auto)的高度由内容决定。这使得内容区域始终垂直居中。
    • justify-content: center;:使内容在水平方向上居中。
    • align-items: end;:将内容区域对齐到容器底部。
  2. .centered: 定义了内容区域的样式,例如背景颜色和宽度。
  3. .on-top: 定义了置于顶部的元素的样式,例如底部外边距。

工作原理:

通过将容器设置为 Grid 布局,并使用 grid-template-rows 将其划分为三行,我们可以利用 align-items: end 属性将内容区域对齐到容器底部。同时,1fr 单位使得顶部和底部行自动分配剩余空间,保证了垂直居中的效果。当容器高度减小时,置于顶部的元素会自动向上移动,直到触及容器顶部,从而避免超出屏幕范围。

注意事项

  • 确保 .wrapper 容器具有明确的高度,以便 Grid 布局能够正常工作。
  • 可以根据实际需求调整 grid-template-rows 的值,以实现不同的布局效果。
  • 如果需要更复杂的布局,可以考虑使用 CSS Grid 的其他属性,例如 grid-template-columns、grid-column 和 grid-row。

总结

使用 CSS Grid 布局可以轻松实现元素置于垂直居中容器顶部且不超出屏幕的布局,无需编写复杂的 J*aScript 代码。这种方法不仅简洁高效,而且具有良好的可维护性和扩展性,是现代 Web 开发中常用的布局技巧之一。通过掌握 CSS Grid 布局,开发者可以更加灵活地控制页面元素的排列,创造出更加美观和用户友好的界面。

使用 CSS Grid 实现元素置于垂直居中容器顶部且不超出屏幕的布局

以上就是使用 CSS Grid 实现元素置于垂直居中容器顶部且不超出屏幕的布局的详细内容,更多请关注其它相关文章!


# 显示效果  # 美妆网站建设策划方案  # 营销事件平台推广方案  # 龙华网络推广营销策划  # 恩施网站建设机构  # 仙桃网站建设推广  # 网站建设评审会简报  # 深圳优质营销推广  # 网站装修搜索推广  # 台北百度网站优化  # 西藏网站建设电话  # 将其  # 这一  # 是一个  # css  # 可以利用  # 设置为  # 可以根据  # 单选框  # 表单  # red  # 垂直居中  # 排列  # 网页设计  # app  # html  # java  # javascript 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Lar*el DB::listen 事件中的查询执行时间单位解析  基于动态规划的房屋花卉种植最小成本算法详解  Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】  TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法  sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统  新三国志曹操传110级星符试炼夏侯渊极难攻略  Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式  Golang如何处理RPC请求负载均衡_Golang RPC请求负载均衡策略与实践  Win10系统怎么查看已安装更新_Win10卸载有问题的更新补丁  css子元素高度不一致导致布局错位怎么办_使用align-items:stretch解决高度差异  Node.js中HTML按钮与J*aScript函数交互的正确姿势  Go语言中动态执行代码字符串的策略与实践  俄罗斯搜索引擎Yandex指南 附2025年免登录官网入口  大麦的“候补”是什么意思 大麦候补购票规则【详解】  html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】  马斯克:Optimus 人形机器人复数形式为 Optimi  钉钉视频会议画面卡顿如何解决 钉钉会议画面优化方法  三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升  如何修改开机登录密码_Windows账户安全设置超详细教程【必学】  J*aScript中正确使用querySelectorAll与复杂CSS选择器  qq游戏网页版直接玩_qq游戏免下载快速入口  离线运行Go语言之旅:本地部署与GOPATH配置指南  在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验  J*a里如何使用forEach遍历Map_Map遍历方法说明  使用Python高效删除Word宏并转换DOCM为DOCX格式  mc.js官网登录入口 mc.js官方登录入口最新版  谷歌浏览器最新官方入口链接 谷歌浏览器网页版官网导航  解决J*aScript中重复选择项的确认对话框显示问题  Mac终端命令大全_Mac常用Terminal指令速查  天眼查企业查询官网入口 天眼查官方网页版查询  BetterDiscord插件中安全更新用户简介的实践指南  Selenium Python中处理点击后新窗口加载冻结问题的策略与实践  Node.js 中使用 node-cron 实现定时 API 数据抓取与处理  163邮箱登录密码 163邮箱忘记密码找回  C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图  Win11文件资源管理器卡顿怎么修 Win11重置资源管理器进程优化响应速度【修复方法】  动漫花园资源网使用步骤_动漫花园资源网下载流程  Go语言中对Map值调用带指针接收者方法:原理与最佳实践  2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享  PHP中高效并行检查多链接状态的教程  提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案  怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】  Python多线程中正确使用sigwait处理SIGALRM信号  sublime怎么设置启动时打开的窗口_sublime会话管理与热退出  微信网页版官方入口直达 微信网页版网页版登录使用方法  steam官方网页快速访问 steam账号注册全流程  QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问  qq邮箱日历功能怎么用_创建日程与会议邀请的技巧  如何在网页中实现特定地点的随机图片展示  CSS响应式网页如何实现主次模块比例自适应_flex-grow与flex-shrink调整 

搜索