zoukankan      html  css  js  c++  java
  • css实现响应式九宫格效果

    1. 首先看下九宫格的效果图: 

    2. html代码比较简单,如下: 

        <div class="main">
            <div class="box1"></div>
            <div class="box2"></div>
            <div class="box3"></div>
            <div class="box4"></div>
            <div class="box5"></div>
            <div class="box6"></div>
            <div class="box7"></div>
            <div class="box8"></div>
            <div class="box9"></div>
        </div>
    

    3. css代码也不多 : )

            * { padding: 0; margin: 0; }
            .main {
                 
                background-color: #fff;
                 100%;
                padding-bottom: 100%;
                padding-left: 0.5%;
        	   padding-top: 0.5%;
            }
            .main>div {
                 31%;
                padding-bottom: 31%;
                border: 1% solid #fff;         
                background-color: mediumpurple;
                border-radius: 3%;
                float: left;
                margin: 1%;
            }        
    

    接下来分析一下如何实现等宽高的,这里主要使用 padding-bottom 属性来实现高与宽一样的!

    1. padding 属性 :  当该属性的值用%表示时, 是基于父元素的宽度的百分比 的内边距。

     上面的css代码就是通过设置padding与宽度的百分比一致来实现等宽高的格子的 : ) 

    2. 要实现九个格子固定位置, 还要计算出每个格子的宽度以及边距margin, 这些是根据项目的实际情况计算的 : )

    但上面仅仅是实现没有内容的九宫格,如果往里面添加内容,是会乱的, 所以下面说一下如果往格子里添加内容(完整代码): 

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
        <meta name="format-detection" content="telephone=no">
        <title>九宫格</title>
        <style>
            * { padding: 0; margin: 0; }
            .main {
                 
                background-color: #fff;
                 100%;
                padding-bottom: 100%;
                padding-left: 0.5%;
        	   padding-top: 0.5%;
            }
            .main .box {
                 31%;
                padding-bottom: 31%;
                border: 1% solid #fff;         
                background-color: mediumpurple;
                border-radius: 3%;
                float: left;
                margin: 1%;
                position: relative;   /*父元素给相对定位*/
            }
            .main .box .content {
    	  position: absolute;    /*子元素给绝对定位*/
    	   100%;
           height: 100%;
    	}
        </style>
    </head>
    <body>
        <div class="main">
            <div class="box">
            	<div class="content">
            		格子1
            	</div>
            </div>
            <div class="box">
            	<div class="content">
            		格子2
            	</div>
            </div>
            <div class="box">
            	<div class="content">
            		格子3
            	</div>
            </div>
            <div class="box"></div>
            <div class="box"></div>
            <div class="box"></div>
            <div class="box"></div>
            <div class="box"></div>
            <div class="box"></div>
        </div>
    </body>
    </html>
    

      格子内部是一个和格子等宽高的div元素,我们可以在这个标签内添加图标文字,组成一个好看的导航栏 : )

    好啦,本次的分享就写到这里啦, 不懂的可以在下面留言   : )

  • 相关阅读:
    JVM活学活用——GC算法 垃圾收集器
    JVM活学活用——类加载机制
    JVM活学活用——Jvm内存结构
    优化springboot
    Java基础巩固计划
    Java自定义注解
    记一次内存溢出的分析经历
    redis学习笔记-redis的安装
    记一次线程池调优经历
    Python中关于split和splitext的差别和运用
  • 原文地址:https://www.cnblogs.com/stella1024/p/8250189.html
Copyright © 2011-2022 走看看