热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端常用的布局类型——前端布局

1.Static静态布局固定宽高:2.Liquid流式布局宽高用百分比,按屏幕分辨率调整,布局不发生变化3.Adaptive自适应
1.Static 静态布局

固定宽高:

2.Liquid 流式布局

宽高用百分比,按屏幕分辨率调整,布局不发生变化

3.Adaptive 自适应布局

为不同的屏幕分辨率定义的布局 @media媒体查询技术

4.Responsive 响应式布局

使用meta标签,宽高随窗口调整自动适配,适应布局和流式布局的综合方式

5.Flex 弹性布局

常用

6.圣杯布局

flex:flex-group、flex-shrink、flex-basis
flex:auto/none/负数/一个长度或百分比/两个非负数/一个非负数和一个长度或百分比等
A,flex-group:当父元素有剩余空间时,子元素占据剩余空间的量
B,flex-shrink:当父元素的空间不足以展示所有的子元素,父元素没设置flex-wrap,子元素需要进行收缩的量
C,flex-basis:表示该子元素的初始宽度

7.栅格布局

1).栅格(网格划分):在一个特定区域内划分出有规律的格子,依靠这些格子进行有规律的版面布局。
使用栅格布局:bootstrap(12列),element(24栏),antDesign
2).栅格布局
container:栅格系统容器;rows:行;cols:列;gutters:各列间的空隙
3).栅格布局实现响应式布局

8. Tabel布局

使用表格进行页面排版和样式设置
1).用法
display:table
display:table-cell,相当于td元素
display:table-row,相当于tr元素
table-layout:fixed | auto(默认):table-layout 属性用于显示表格单元格、行、列;
auto, 自动表格布局,列的宽度由单元格中最大内容的宽度决定。
fixed ,固定表格布局。

【参考】
1.https://www.jianshu.com/p/0ab9d3e4d262

9.Masonry Layout 瀑布流效果

很受图片网站的欢迎:
例如国外的 http://pinterest.com/.
特点:

  1. 不同高度的方格组成
  2. 版面切割为多个直行
    在这里插入图片描述
    实现方法:
    使用第三方的js组件:
    Masonry.js
    https://masonry.desandro.com/
    在这里插入图片描述Isotope.js
    https://isotope.metafizzy.co/
    在这里插入图片描述

原理:
通过Javascript计算共有多少个方格,再计算每一个方格的宽度和高度。容器的宽度可以防止多少行等等要求,将全部的方格的postion都设置成为absolute,逐一计算出它们的top和left去定位,所有的方格的位置都是计算出来的,多以可以在改变浏览器的宽度的时候,方格动态移动并且重新排列。

这里使用css手动实现:
在线编译工具:https://codepen.io/

  1. column-count:
  2. column-gap:

DOCTYPE html>
<html><head><meta charset&#61;"utf-8"><title>title><link rel &#61; "stylesheet" href &#61; "css/style.css">head><body><div class&#61;"masonry"><div class&#61;"item"><img src&#61;"http://picsum.photos/360/490?random&#61;1"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/340/460?random&#61;2"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/780/460?random&#61;3"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/360/480?random&#61;4"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/360/560?random&#61;5"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/360/860?random&#61;6"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/360/260?random&#61;7"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/360/360?random&#61;8"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/360/460?random&#61;9"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/360/460?random&#61;10"/>div><div class&#61;"item"><img src&#61;"http://picsum.photos/360/460?random&#61;11"/>div>div>body>
html>

.body{margin : 4px;font-family:Helvetica;
}
.masonry{column-count: 4;column-gap: 0;
}
.item{padding:2px;
}
.item img{display:block;width: 100%;height: auto;
}

这就已经简单的实现了&#xff1a;基础功能
在这里插入图片描述
但是发现&#xff1a;添加上序号发现

.body{margin : 4px;font-family:Helvetica;
}
.masonry{column-count: 4;column-gap: 0;
}
.item{padding:2px;position:relative;/* 使得每一个方格的item都有自己的序号 */counter-increment: item-counter;
}
.item img{display:block;width: 100%;height: auto;
}
.item::after{position: absolute;display: block;top: 2px;left: 2px;width: 24px;height: 24px;text-align:center;line-height:24px;background-color:#000000;color:#fff;/* 加入编号 */content:counter(item-counter);
}

在这里插入图片描述
图片的顺序&#xff1a;不是那种由上至下&#xff0c;再由左至右。不满足时间顺序展示。但是优点就是代码简单。

使用Flexbox实现瀑布流效果&#xff1a;

<link rel &#61; "stylesheet" href &#61; "css/style2.css">

.body{margin : 4px;font-family:Helvetica;
}
.masonry{display: flex;flex-direction: column;flex-wrap: wrap;height: 2000px;
}
.item{position: relative;width: 25%;padding: 2px;box-sizing:border-box;/* 使得每一个方格的item都有自己的序号 */counter-increment: item-counter;
}
.item img{display: block;width:100%;height:auto;
}
.item::after{position: absolute;display: block;top: 2px;left: 2px;width: 24px;height: 24px;text-align:center;line-height:24px;background-color:#000000;color:#fff;/* 加入编号 */content:counter(item-counter);
}
/* 但是flxbox 有一个order的功能 n表示任何数 */.item:nth-child(4n&#43;1){order:1;
}
.item:nth-child(4n&#43;2){order:2;
}
.item:nth-child(4n&#43;3){order:3;
}
.item:nth-child(4n){order:4;
}

不推荐使用&#xff1a;应为需要自我计算&#xff1a;&#xff08;不稳定&#xff09;


推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 本文介绍了SVD(奇异值分解)和QR分解的基本原理及其在Python中的实现方法。通过具体代码示例,展示了如何使用这两种矩阵分解技术处理图像数据和计算特征值。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 深入解析三大范式与JDBC集成
    本文详细探讨了数据库设计中的三大范式,并结合Java数据库连接(JDBC)技术,讲解如何在实际开发中应用这些概念。通过实例和图表,帮助读者更好地理解范式理论及其在数据操作中的重要性。 ... [详细]
  • 本文探讨了在Java中实现系统托盘最小化的两种方法:使用SWT库和JDK6自带的功能。通过这两种方式,开发者可以创建跨平台的应用程序,使窗口能够最小化到系统托盘,并提供丰富的交互功能。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
author-avatar
手机用户2602889207
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有