当前位置: 首页 > news >正文

CSS基本布局理解——WEB开发系列38

对CSS学习已经接近尾声,下面你可以对以下两道“小卡拉米”测试进行测试下CSS理解程度。


题 1:基于栅格布局的现代博客首页设计

题目要求:
创建一个博客首页布局,包含一个顶部导航栏、一个主要的内容区域(左侧为博客文章列表,右侧为一个侧边栏显示推荐内容),以及一个底部的页脚。要求使用 栅格布局 来分割页面,顶部导航栏固定在顶部,内容区域左右分栏。

代码示例:

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>博客首页</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}body {font-family: Arial, sans-serif;line-height: 1.6;}.container {display: grid;grid-template-rows: 80px 1fr 100px;grid-template-columns: 1fr 3fr 1fr;grid-template-areas: "header header header""sidebar main main""footer footer footer";min-height: 100vh;}header {grid-area: header;background-color: #333;color: #fff;display: flex;justify-content: center;align-items: center;font-size: 24px;}.sidebar {grid-area: sidebar;background-color: #f4f4f4;padding: 20px;}.main-content {grid-area: main;padding: 20px;background-color: #fff;}footer {grid-area: footer;background-color: #333;color: #fff;text-align: center;display: flex;justify-content: center;align-items: center;}</style>
</head>
<body><div class="container"><header>导航栏</header><aside class="sidebar">侧边栏推荐内容</aside><section class="main-content"><h2>博客文章标题</h2><p>这是博客文章的内容。你可以在这里测试文本和图片布局。</p></section><footer>页脚信息</footer></div>
</body>
</html>


示例解释:

栅格布局的使用:使用 ​​grid-template-rows​​ 和 ​​grid-template-columns​​ 将页面分为三行三列。第一行是顶部导航栏,第二行分为左右两栏,第三行是页脚。通过 ​​grid-template-areas​​ 确定每个区域的布局位置。

顶部导航栏:​​header​​ 元素被设置在第一行,占据整个页面宽度,居中显示导航文字。

内容区域:​​main-content​​ 和 ​​sidebar​​ 分别设置在栅格的中间部分,主内容区域宽度是侧边栏的三倍,符合现代博客的布局风格。

页脚:​​footer​​ 固定在页面底部,跨越整个页面宽度,并居中显示内容。

响应式设计:通过 ​​grid​​​ 的灵活性,你可以轻松扩展布局,适应不同屏幕大小。


题 2:基于 Flexbox 和浮动的响应式电商产品页面

题目要求
创建一个电商网站的产品详情页面,包括顶部的产品图片展示区、描述区、以及一个放置推荐产品的底部区域。要求通过 弹性盒布局 完成产品图片和描述区的布局,底部的推荐产品使用 浮动布局。

代码示例:

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>栅格与浮动布局测试</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}.container {width: 1200px;margin: 0 auto; /* 让容器水平居中 */overflow: hidden; /* 清除浮动影响 */}.sidebar-left, .sidebar-right {width: 200px;height: 300px;background-color: lightcoral;}.sidebar-left {float: left; /* 左侧栏左浮动 */}.sidebar-right {float: right; /* 右侧栏右浮动 */}.main-content {margin: 0 200px; /* 确保主内容区不会被侧边栏覆盖 */height: 300px;background-color: lightseagreen;}</style>
</head>
<body><div class="container"><div class="sidebar-left">左侧边栏</div><div class="main-content">主内容区域</div><div class="sidebar-right">右侧边栏</div></div>
</body>
</html>


示例解释:

弹性盒布局的使用:​​product-section​​ 区域使用了 ​​flexbox​​ 布局,​​product-image​​ 和 ​​product-details​​ 分别占据 1 和 2 的比例,保证图片和描述部分在大屏幕上呈现合理的比例。

图片自适应:​​img​​ 标签通过 ​​max-width: 100%​​ 确保图片不会超出其父容器,且可以根据容器大小自适应缩放。

浮动布局的使用:底部的推荐产品区域采用浮动布局,每个推荐产品使用 ​​float: left​​ 并设置固定宽度,使它们并排排列。同时使用 ​​overflow: hidden​​ 清除浮动。

响应式设计:使用媒体查询(​​@media​​​)调整布局,使页面在移动设备上显示更加友好。当屏幕宽度小于 768px 时,产品图片和描述区垂直排列,推荐产品区域的每个项目宽度为 100%。

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JAVA-网络(0907)
  • Loki 分布式日志中心服务
  • 从用户数据到区块链:Facebook如何利用去中心化技术
  • TDengine 签约前晨汽车,解锁智能出行的无限潜力
  • MySQL5.7基于mysqldump、xtrbackup、innobackupex工具进行全量备份/恢复、增量备份/恢复
  • Vue的学习(三)
  • DeepSeek缓存命中技术,成本降低10倍
  • ElementPlus表单验证报错 formEl.validate is not a function
  • 在线小说|基于java的小说阅读系统小程序(源码+数据库+文档)
  • Llama 3.1 大模型指令微调提升中文能力
  • 数据结构--双链表
  • 《C Primer Plus》第 2 章复习题和编程练习
  • 如何用静态住宅代理实现分布式代理网络
  • (学习总结16)C++模版2
  • 基于Python的B站热门视频可视化分析与挖掘系统
  • 【前端学习】-粗谈选择器
  • Angular2开发踩坑系列-生产环境编译
  • C语言笔记(第一章:C语言编程)
  • es的写入过程
  • JavaScript HTML DOM
  • Javascript设计模式学习之Observer(观察者)模式
  • Otto开发初探——微服务依赖管理新利器
  • PHP CLI应用的调试原理
  • python docx文档转html页面
  • python3 使用 asyncio 代替线程
  • scala基础语法(二)
  • scrapy学习之路4(itemloder的使用)
  • TypeScript迭代器
  • 记录一下第一次使用npm
  • 技术:超级实用的电脑小技巧
  • 模型微调
  • 全栈开发——Linux
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 线性表及其算法(java实现)
  • 原生 js 实现移动端 Touch 滑动反弹
  • 再次简单明了总结flex布局,一看就懂...
  • ​马来语翻译中文去哪比较好?
  • # .NET Framework中使用命名管道进行进程间通信
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #### golang中【堆】的使用及底层 ####
  • #define
  • #window11设置系统变量#
  • (02)vite环境变量配置
  • (35)远程识别(又称无人机识别)(二)
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)创业的注意事项