热门标签 | 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;


推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 深入解析三大范式与JDBC集成
    本文详细探讨了数据库设计中的三大范式,并结合Java数据库连接(JDBC)技术,讲解如何在实际开发中应用这些概念。通过实例和图表,帮助读者更好地理解范式理论及其在数据操作中的重要性。 ... [详细]
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社区 版权所有