好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

边框九宫格实现九宫格

1. 前言

由于实现九宫格最方便的方式就是网格布局,所以边框九宫格咱们来拿网格实现法举例,边框九宫格的关键点其实并不在于用哪种方式实现九宫格,所以很容易融会贯通。

2. 笨方法

相信大家都有过这样的经历(假装你们有过):有一道数学题你并不会,但是你却想到了一个耿直的办法来解开这道数学题,答案都是正确的,只不过过程曲折了些:

比如问你6 x 9 = ? 突然你就忘记了九九乘法表,但是你知道6 x 9 = 9 + 9 + 9 + 9 + 9 + 9。

于是乎你就算呗,最后终于算出来了,顶多麻烦了点,但依然得出了正确答案不是吗?(即使会被数学老师diss一番)

边框九宫格也是同理,咱们不懂怎么让两个边框并在一起的时候怎么变细,但是咱们可以用笨方法:

让两个相邻的盒子的其中一个的相邻边不显示边框不就完了!

image.png

这样的边框合在一起就不会出现两个边框贴在一起啦!

思路有了,那咱们再来个动态程序看一眼:

<!DOCTYPE html>

<html>

<head>

  <Meta charset="UTF-8">

  <Meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

  <!-- 在这里用link标签引入中文渐变色 -->

  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/chinese-gradient">

  <style>

    /* 清除默认样式 */

    * { padding: ; margin: ; }

    /* 全屏显示 */

    html, body, ul { height:  }

    /* 父元素 */

    ul {

      /* 清除默认样式 */

      list-style: none;

      /* 显示为网格布局 */

      display: grid;

      /* 均分成三行三列 */

      grid: repeat(, fr) / repeat(, fr);

      /* 给个合适的间距 */

      gap: px;

      /* 调用动画 */

      animation: clear-gap s ease-out infinite alternate

    }

    /* 子元素 */

    li {

      /* 两像素的边框 */

      border: px solid black

    }

    /* 定义动画 */

    @keyframes clear-gap { to { gap:  } }

    /* 第一个子元素 */

    li:first-child {

      border-right: none;

      border-bottom: none;

    }

    /* 第二个子元素 */

    li:nth-child(2) {

      border-bottom: none;

    }

    /* 第三个子元素 */

    li:nth-child(3) {

      border-left: none;

      border-bottom: none;

    }

    /* 第四个子元素 */

    li:nth-child(4) {

      border-right: none;

    }

    /* 第六个子元素 */

    li:nth-child(6) {

      border-left: none;

    }

    /* 第七个子元素 */

    li:nth-child(7) {

      border-top: none;

      border-right: none;

    }

    /* 第八个子元素 */

    li:nth-child(8) {

      border-top: none;

    }

    /* 第九个子元素 */

    li:last-child {

      border-top: none;

      border-left: none;

    }

  </style>

</head>

<body>

  <ul>

    <li></li>

    <li></li>

    <li></li>

    <li></li>

    <li></li>

    <li></li>

    <li></li>

    <li></li>

    <li></li>

  </ul>

</body>

</html>

运行结果:

3. 小结

这么做完全可以实现,绝对没毛病,但一般来说大家用笨方法解出来的数学题,即使答案正确,老师也不会给满分,因为 6 x 9 = ? 就是想考察你的乘法水平,但你却用了加法,虽然答案一样但却饶了许多弯路。如果去参加面试的时候这么实现出来,面试官也不会给你满分,那么下一小节我们来看看有没有不那么麻烦的方法。


查看更多关于边框九宫格实现九宫格的详细内容...

  阅读:34次

上一篇

下一篇

第1节:中文布局 CSS 库    第2节:绝对定位    第3节:绝对定位+负边距    第4节:绝对定位+平移    第5节:网格布局    第6节:弹性布局    第7节:表格布局    第8节:外边距    第9节:绝对定位 + 平移    第10节:行内块元素    第11节:增光添彩    第12节:中文布局CSS库    第13节:多列属性    第14节:左浮动法    第15节:固定定位    第16节:非固定定位    第17节:固定定位+渐隐渐现    第18节:边框九宫格    第19节:加入边框    第20节:改进版    第21节:经典面试题    第22节:课程简介    第23节:移动端的迭代速度    第24节:移动端的屏幕长宽比    第25节:居中布局简介    第26节:中文布局 CSS 库实现居中布局    第27节:绝对定位实现居中布局    第28节:绝对定位+负边距实现居中布局    第29节:绝对定位+平移实现居中布局    第30节:网格布局实现居中布局    第31节:弹性布局实现居中布局    第32节:表格布局实现居中布局    第33节:单列布局简介    第34节:外边距实现单列布局    第35节:弹性布局实现单列布局    第36节:网格布局实现单列布局    第37节:网格布局实现单列布局    第38节:绝对定位+平移实现单列布局    第39节:行内块元素实现单列布局    第40节:增光添彩单列布局    第41节:双列布局简介    第42节:中文 布局CSS库实现双列布局    第43节:多列属性实现双列布局    第44节:左浮动实现双列布局    第45节:绝对定位实现双列布局    第46节:弹性布局实现双列布局    第47节:网格布局实现双列布局    第48节:增光添彩双列布局    第49节:吕形布局简介    第50节:固定定位实现吕形布局    第51节:中文布局CSS库实现吕形布局    第52节:外边距的作用    第53节:非固定定位实现吕形布局    第54节:固定定位+渐隐渐现吕形布局    第55节:上下栏布局简介    第56节:上下栏布局中文布局CSS库    第57节:固定定位实现上下栏布局    第58节:外边距的作用上下栏布局    第59节:非固定定位实现上下栏布局    第60节:固定定位+渐隐渐现上下栏布局    第61节:九宫格简介    第62节:中文布局CSS库实现九宫格    第63节:网格布局实现九宫格布局    第64节:表格布局实现九宫格布局    第65节:绝对定位实现九宫格布局    第66节:弹性布局实现九宫格布局    第67节:左浮动实现九格宫布局    第68节:弹性布局实现九宫格布局    第69节:加入边框 九宫格    第70节:边框九宫格实现九宫格    第71节:改进版九宫格布局    第72节:九宫格经典面试题    第73节:响应式简介    第74节:响应式布局中文布局CSS库    第75节:网格布局之应式布局    第76节:弹性布局之响应式布局    第77节:左浮动法之响应式布局    第78节:媒体查询简介    第79节:媒体属性    第80节:逻辑操作符