zoukankan      html  css  js  c++  java
  • flex实现多列布局效果&对角线布局

      题目:用 css 实现如下的多列布局效果:父元素宽度自适应,子元素数量随机可变的(假如 8 个),每一行有 3 个子元素,子元素之间的水平间距为 10px ,子元素的宽度自适应父元 素的宽度((父元素宽度 - 10px * 2) / 3),子元素的高度与本身的宽度成正比(比如 2:1 )

    效果如下:

    涉及到的知识点:

    1.flex布局相关

    2.calc计算属性,(运算符号两遍要有空格)calc((100% - 10px * 2) / 6)

    3. padding和margin的百分比相对的是父元素的宽度

    4. :nth-child(3n):不要带运算符号*

      html结构如下:div里面有8个p标签

    <body>
    	<div>
    		<p></p>
    		<p></p>
    		<p></p>
    		<p></p>
    		<p></p>
    		<p></p>
    		<p></p>
    		<p></p>
    	</div>
    </body>
    

      css如下: 

    div {
    	 100%;
    	flex-direction: row;
    	flex-wrap: wrap;
    	display: flex;
    }
    p {
    	margin-right: 10px;
    	padding-bottom: calc((100% - 10px * 2) / 6);
    	border: 1px solid red;
    	 calc((100% - 10px * 2) / 3);
    	margin-bottom: 10px;
    }
    p:nth-child(3n) {
    	margin-right: 0px;
    }
    

      步骤一:使用flex布局,换行

      步骤二:cacl计算出元素的宽度

      步骤三:由于最后一行需要左对齐所以最好使用margin-right来控制间距,而不是用justify-content: space-between;

      步骤四:使用nth-child让每行最后一个元素margin-right为0 才不会换到下一行

    题目:实现一个对角线布局

      效果如下

    html:

    <body>
    	<div><p></p></div>
    	<div><p></p></div>
    	<div><p></p></div>
    </body>
    

     css:关键点就一个justify-content不同的对齐方式

    div {
    	display: flex;
    }
    div:nth-child(1) {
    	justify-content: flex-start;
    }
    div:nth-child(2) {
    	justify-content: center;
    }
    div:nth-child(3) {
    	justify-content: flex-end;
    }
    p {
    	 33%;
    	border: 1px solid red;
    	padding-bottom: 33%;
    }

      

  • 相关阅读:
    【NX二次开发】修改dlx对话框标题的方法
    【NX二次开发】导入x_t,UF_PS_import_data
    设置NX欢迎界面
    [转]10个顶级的CSS UI开源框架
    [转] 多线程 《深入浅出 Java Concurrency》目录
    [转] JAVA多线程和并发基础面试问答
    [转]StuQ 技能图谱(全套13张)
    [转] MongoDB shell 操作 (查询)
    搜集好的java技术帖子,持续更新,java程序员的要求
    [转]JAVA程序员一定知道的优秀第三方库(2016版)
  • 原文地址:https://www.cnblogs.com/longlongdan/p/14312075.html
Copyright © 2011-2022 走看看