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


题 1:使用弹性盒(Flexbox)布局

题目要求:
创建一个包含三个内容区块的页面布局,页面宽度为 100%,每个区块高度固定为 200px,宽度随浏览器窗口自适应排列。第一个区块靠左,第二个区块居中,第三个区块靠右,三个区块的宽度平分父容器的空间。

代码示例:

<!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 {
            display: flex;
            justify-content: space-around; /* 让子元素水平等距分布 */
            height: 100vh; /* 让整个页面占满可视区域 */
            align-items: center; /* 垂直居中 */
        }
        .box {
            display: flex;
            justify-content: center;
            align-items: center;
            width: 30%; /* 每个区块占父容器的30%宽度 */
            height: 200px;
            background-color: lightcoral;
        }
        .box:nth-child(2) {
            background-color: lightseagreen; /* 给第二个区块不同的背景色 */
        }
        .box:nth-child(3) {
            background-color: lightblue; /* 给第三个区块不同的背景色 */
        }
    </style>
</head>
<body>
    <div class="box">区块 1</div>
    <div class="box">区块 2</div>
    <div class="box">区块 3</div>
</body>
</html>

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

示例解释:

  1. 弹性盒模型的使用:通过给 body 元素设置 display: flex,让三个子元素成为弹性盒布局的子项。
  2. 空间分配justify-content: space-around 属性确保子元素在父容器内水平等距排列。由于子元素有 width: 30%,每个区块将占据 30% 的宽度,剩下的 10% 会被 space-around 平均分布到区块之间。
  3. 垂直对齐:使用 align-items: center,将子项在父容器的垂直方向居中,且整个页面通过 height: 100vh 占据整个可视高度。
  4. 背景色变化:使用 nth-child 选择器给不同的区块分配了不同的背景色。

题 2:使用栅格和浮动布局

题目要求
创建一个三栏布局的页面,中间一栏为主内容,左右两栏为侧边栏,页面整体宽度为 1200px。左侧栏和右侧栏各宽度为 200px,主内容栏宽度为 800px。要求左侧栏和右侧栏通过浮动实现,中间主内容栏自适应填充剩余空间。

代码示例:

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

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


示例解释:

  1. 浮动布局的使用sidebar-left 使用 float: left 将其左浮动,sidebar-right 使用 float: right 将其右浮动。这样左侧栏靠左对齐,右侧栏靠右对齐。
  2. 主内容区的自适应:通过给 main-content 设置 margin: 0 200px,确保主内容区在两侧栏之间居中,不会被浮动的元素覆盖。
  3. 清除浮动影响:为了防止浮动的影响导致父元素高度坍塌,给 .container 设置 overflow: hidden 以清除浮动。
  4. 栅格布局:整体布局是基于固定宽度的栅格系统构建的,左右两侧各 200px,主内容区域为 800px,加起来正好是 1200px。

通过这两道测试题,你可以全面测试对 Flexbox(弹性盒)、浮动布局 以及 栅格布局 的理解。这些布局方式广泛应用于网页开发中,帮助构建灵活且兼容的页面设计。