CSS基本布局理解(测试)——WEB开发系列38

news2024/9/21 13:44:47

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

544d7ad2ad9e4348a19da064d455a068.gif


题 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>

99a3e0bc7ec8a00b582915126c09c0ab.png


示例注解:

栅格布局的使用:使用 ​​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>Apple</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
            font-family: Arial, sans-serif;
            background-color: aliceblue;
        }
        .product-section {
            display: flex;
            justify-content: space-between;
            padding: 20px;
            background-color: #f9f9f9;
        }
        .product-image {
            max-width: 2%;
            flex: 1;
            margin-right: 20px;
        }
        .product-image img {
            max-width: 100%;
            height: auto;
            display: block;
        }
        .product-details {
            flex: 2;
        }
        .product-details h2 {
            margin-bottom: 20px;
        }
        .recommendation-section {
            margin: 20px;
            overflow: hidden;
        }
        .recommendation-item {
            float: center;
            width: 100%;
            margin: 1.66%;
            background-color: #eee;
            padding: 10px;
            text-align: center;
        }
        .recommendation-item img {
            max-width: 100%;
            height: auto;
        }
        @media (max-width: 768px) {
            .product-section {
                flex-direction: column;
            }
            .recommendation-item {
                width: 100%;
                margin-bottom: 20px;
            }
        }
    </style>
</head>
<body>
    <div class="product-section">
        <div class="product-image">
            <img src="01.jpg" alt="产品图片">
        </div>
        <div class="product-details">
            <h2>Apple</h2>
            <p>这里是Apple,是的,就是Apple!</p>
        </div>
    </div>
    <div class="recommendation-section">
        <div class="recommendation-item">
            <img src="02.jpg" alt="推荐产品1">
            <p>iPhone 16 Pro</p>
        </div>
        <div class="recommendation-item">
            <img src="03.jpg" alt="推荐产品2">
            <p>iPhone 16 </p>
        </div>
        <div class="recommendation-item">
            <img src="04.jpg" alt="推荐产品3">
            <p>Apple Watch Ultra 2</p>
        </div>
    </div>
</body>
</html>

4d60d66cf0743191e1dec328b686408a.gif


示例注解:

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二证券:频频收购!81.64亿元买下“超级工厂”

下周A股解禁总市值较小&#xff0c;为262.57亿元。 赛力斯出手增资 为增强赛力斯轿车的资本实力&#xff0c;满意其可继续高质量发展需要&#xff0c;昨日晚间&#xff0c;赛力斯发布公告称&#xff0c;拟以自有资金向赛力斯轿车增资50亿元&#xff0c;完结增资后&#xff0c…

几天不上微博ip地址会消失吗?微博上的ip地址准确吗

微博&#xff0c;作为当代最受欢迎的社交媒体平台之一&#xff0c;近年来开始显示用户的IP地址。这一功能的引入&#xff0c;无疑增强了平台的透明度和互动性&#xff0c;但同时也引发了一系列关于IP地址准确性和持久性的疑问。本文将深入探讨几天不上微博IP地址是否会消失&…

为何视频监控AI分析逐渐融入摄像头?浅述背后的必然逻辑

视频监控的应用领域极为广泛&#xff0c;它已成为现代社会中各行各业不可或缺的信息化基石。从工业生产到日常生活&#xff0c;视频监控无处不在&#xff0c;其重要性不言而喻。 传统上&#xff0c;视频监控仅局限于通过摄像头捕捉并储存图像&#xff0c;以此辅助我们的工作与…

linux-IO-进程-线程(相关函数)

相关代码资源&#xff1a;xLinux: linux&#xff0c;网络编程阶段代码 1、IO 库函数 错误处理&#xff1a; 1. errno errno是一个全局变量&#xff08;在大多数实现中&#xff09;&#xff0c;用于报告系统调用的错误。当系统调用&#xff08;如文件操作、内存分配等&…

VirtualMultiplexer:直接由HE生成IHC的生成式病理AI模型|顶刊精析·24-09-14

小罗碎碎念 这篇文章于2024-09-09发表于Nature Machine Intelligence&#xff0c;目前IF18.8。 这篇文章介绍了一种名为VirtualMultiplexer的AI工具&#xff0c;能够通过生成式对抗网络从苏木精-伊红染色图像合成多种抗体标记的虚拟多重免疫组化图像&#xff0c;以加速病理组织…

vue 项目自适应 配置 px转rem 的插件postcss-pxtorem

1、安装 npm i postcss-plugin-px2rem --save -dev --force找到 postcss.config.cjs 没有的话就新建一个 module.exports {plugins: {// to edit target browsers: use "browserslist" field in package.jsonautoprefixer: {},"postcss-plugin-px2rem":…

【HTML】元素的分类(块元素、行内元素、行内块元素)

元素的分类 块元素行内元素行内块元素转换 块元素 独占一行&#xff0c;宽度默认为容器的100%&#xff0c;可以设置宽、高、行高、内外边距&#xff1b;布局时&#xff0c;块元素可以包含块元素和行内元素 <div>div</div><p>p</p><h3>h1-h6</…

C++速通LeetCode简单第6题-环形链表

快慢指针真的很好用&#xff01; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:bool hasCycle(ListNode *head) {//快慢指针ListNode* fast…

ClickHouse 24.8 LTS 版本发布说明

本文字数&#xff1a;13885&#xff1b;估计阅读时间&#xff1a;35 分钟 作者&#xff1a;ClickHouse Team 本文在公众号【ClickHouseInc】首发 时间飞逝&#xff0c;又到了新版本发布的时刻&#xff01; 发布概要 本次ClickHouse 24.8 版本包含了19个新功能&#x1f381;、18…

关于 vue/cli 脚手架实现项目编译运行的源码解析

1.vue项目运行命令解析 在日常开发中&#xff0c;vue 项目通过vue-cli-service脚手架包将项目运行起来&#xff0c;常用的命令例如&#xff1a; npm run serve npm run build 上述执行命令实际一般对应为项目中 package.json 文件的 scripts属性中编写的脚本命令&#xff0c;在…

【C++】——string类的模拟实现

目录 一、string模拟实现 1.1构造析构 1.2迭代器 1.3修改 1.4查找 1.5substr 深浅拷贝的区别 1.6比较函数与流插入流提取 二、string类的拷贝 2.1浅拷贝与深拷贝 2.2传统版与现代版区别 2.3写时拷贝&#xff08;了解&#xff09; 三、vs和g下string结构的说明 3.1v…

spring security OAuth2 搭建资源服务器以及授权服务器/jdbc/jwt两种方案

一、认证服务器基于jdbc方式 如果不懂请移步上一篇文章&#xff1a;Spring security OAuth2 授权服务器搭建-CSDN博客 在上一篇文章中&#xff0c;TokenStore的默认实现为 InHenoryTokenStore 即内存存储&#xff0c;对于 CLient 信息&#xff0c;userDetaitsServce 接负责从存…

vue项目如何在js文件中导入assets文件夹下图片

前言&#xff1a; 之前在vuewebpack项目中动态导入图片时&#xff0c;是使用的require()函数。但是在vite中不支持require()函数&#xff0c;换成了new URL()方式。 项目中使用&#xff1a;

使用 element UI 实现自定义日历

效果如下&#xff1a; HTML代码部分&#xff1a; <el-calendar v-model"value"><!-- 这里使用的是 2.5 slot 语法&#xff0c;对于新项目请使用 2.6 slot 语法--><template slot"dateCell" slot-scope"{date, data}"><!--…

简单示例,搞懂PowerBI的ALL(),ALLEXCEPT()和ALLSELECTED()的区别

假设我们有如下数据&#xff0c;我们来统计下各班级的人数 我们在报表页里加上 班级’二班‘ 的筛选条件&#xff0c;此时PowerBI已经自动为我们显示了各班级人数&#xff1a;一班有3人&#xff0c;二班有1人。 根据我们的筛选条件&#xff0c;我们的统计人数应该是按照筛选器&…

解决RabbitMQ设置TTL过期后不进入死信队列

解决RabbitMQ设置TTL过期后不进入死信队列 问题发现问题解决方法一&#xff1a;只监听死信队列&#xff0c;在死信队列里面处理业务逻辑方法二&#xff1a;改为自动确认模式 问题发现 最近再学习RabbitMQ过程中&#xff0c;看到关于死信队列内容&#xff1a; 来自队列的消息可…

【YashanDB知识库】archivelog磁盘满导致数据库abnormal

本文转自YashanDB官网&#xff0c;具体内容可见archivelog磁盘满导致数据库abnormal 【问题分类】功能使用 【关键字】磁盘空间满&#xff0c;archivelog日志&#xff0c;archivelog自动清理 【问题描述】数据库状态变更为abnormal&#xff0c;检查V$DIAG_INCIDENT视图&#…

足底筋膜炎5天自愈方法

足底筋膜炎并没有确切的5天自愈方法。足底筋膜炎是足底筋膜的一种无菌性炎症&#xff0c;主要症状是脚后跟部位的疼痛&#xff0c;这种疼痛通常是由于长时间站立、行走或跑步等引起的足底筋膜过度牵拉所致。由于这是一种慢性炎症&#xff0c;其恢复过程往往需要一定的时间&…

docker查看从当前最后100条起看日志

logs.sh 使用说明 logs.sh 是一个用于查看 Docker 容器日志的脚本。该脚本支持两种使用方式&#xff1a; 默认查看 video-console 容器的日志。通过指定容器 ID 来查看相应容器的日志。 1. 默认方式 不需要任何参数&#xff0c;直接运行脚本&#xff0c;将自动查找名为 vid…

百度副总裁陈洋:大模型让软件开发更高效、更安全

&#x1f381;&#x1f449;点击进入文心快码 Baidu Comate 官网&#xff0c;体验智能编码之旅&#xff0c;还有超多福利&#xff01;&#x1f381; 9月11日-12日&#xff0c;CCS 2024成都网络安全系列活动在成都举行。百度副总裁陈洋出席大会开幕式并进行主题分享。陈洋表示&a…