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


推荐阅读
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 计算机网络复习:第五章 网络层控制平面
    本文探讨了网络层的控制平面,包括转发和路由选择的基本原理。转发在数据平面上实现,通过配置路由器中的转发表完成;而路由选择则在控制平面上进行,涉及路由器中路由表的配置与更新。此外,文章还介绍了ICMP协议、两种控制平面的实现方法、路由选择算法及其分类等内容。 ... [详细]
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社区 版权所有