九宫格——用html+css制作一个网页

本文档详细记录了如何使用HTML和CSS创建一个可以根据页面缩放自适应的九宫格布局。作者首先构建了一个由三个行组成的结构,每个行包含三个小方块,然后通过设置flex布局和适当样式实现九宫格排列。在调整样式以实现自适应布局的过程中,强调了避免使用固定值并应用百分比的重要性。此外,作者还提到在调试过程中添加内部数字辅助判断颜色和位置问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自用(仅供参考,如有错误欢迎指出)

要求:

1.通过html和css制作一个可以根据页面缩放进行变化的九宫格。

2.并且可以通过手机浏览器访问。

过程:

1.网页制作

先不管通过网页访问这一项,先写一个本地的网页。

首先要把九宫格的形状做出来。九宫格就像魔方的一个面,所以我先做一个大的div,然后把它分成三个行,然后每个行再分成三个小块。

于是我在body中先写了这样一个结构:

<div>
     <div>

     </div>

     <div>

     </div>

     <div>
                
     </div>
</div>

假设每个小正方形的边长为50px,颜色为橙色(#ff7700)。
先不设置排列方式,将每一行分为三个小正方形。

        <div>
            <div>
                <div class="little-square"></div>
                <div class="little-square"></div>
                <div class="little-square"></div>
            </div>
            <div>
                <div class="little-square"></div>
                <div class="little-square"></div>
                <div class="little-square"></div>
            </div>
            <div>
                <div class="little-square"></div>
                <div class="little-square"></div>
                <div class="little-square"></div>
            </div>
        </div>

有点粗暴,也还没有设置边距,所以他现在是一个长条状,他们粘在了一起:
没有设置位置的九个小方格
给小方块的class加上外边距属性:
加入外边距属性
下面要改变一下小方块的排列方式,行和行是竖直排列,每一行中的小方块是水平排列,所以创建row类,并添加到每一行之上。

.row{
    display:flex;
 }

刷新后可以看到呈如下排列,已经大概符合形状了。
排列后的九宫格
设置小正方形的样式使其美观。

        .little-square {
            margin: 6px;
            background-color: #ff7700;
            width: 50px;
            height: 50px;
            border-radius: 15%;
        }

最终小正方形变成下图样式。
在这里插入图片描述
有时候会不小心把百分比搞错,颜色有可能看不到,无法判断出现了什么情况。所以我在小方格里面添加了数字,这样就能够保证色块不见了的时候我也可以判断出当前的排列情况,便于修改。
九宫格成品
查阅资料后,我得知,完成自适应不能够把各个值写死。也就是不能给他们一个具体值,例如:把小方块的边长设置为50px。

        .row {
            width:50%;
            margin-left:auto;
            margin-right:auto;
            display: flex;
        }

        .little-square {
            padding-bottom:30%;
            margin-left:1.5%;
            margin-bottom:1.5%;
            position:relative;
            background-color: #ff7700;
            width:30%;
            height:0;
            border-radius: 15%;
        }

插曲:

在这里插入图片描述

        .test{
            width:50px;
            height:50px;
            background-color: rgb(231, 35, 35);
        }

建一个属性为如上所述的div,则会出现一个正方形。
如果把width删除掉,则会出现一个条。
在这里插入图片描述
如果把height删除掉,则什么都没有
在这里插入图片描述
但是在这种情况下,我在div里面添加了数字1,会出现1占据的那一小块。
在这里插入图片描述
这一小块就只有这么宽,输入多个1,甚至是超出范围的1,红色区域都不会变化,因为width是有固定值的。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值