前端需要完完全全掌握的这些布局方案

简介: 前端需要完完全全掌握的这些布局方案

前端布局方案有以下几种:

  • 固定布局
  • 百分比布局/流式布局
  • 响应式布局
  • 弹性布局/flex布局
  • Grid布局/二维布局(目前前端布局的发展方向)
  • 定位布局
  • 浮动布局

固定布局

固定布局是最简单的布局,也是小白上手最快的布局,直接设置宽度值和高度值进行布局,不需要考虑是否跟随屏幕大小变化的布局方案,最能展现出网页设计的原始效果。

布局单位:

一律采用px

优点:

上手快,布局简单,没有任何兼容性问题。

门户网站和企业网站更多会采用这种布局方案,因为他们的设备尺寸一般都是固定的。

缺点:

不会自适应屏幕大小。

高分辨率的设备,固定布局会留下很大的空白,会出现‘黄金比例’,‘三分定律’。综合平衡和其他的设计原则。

屏幕分辨率过小时会出现横向滚动条。

性能消耗: 由于一开始就写了固定宽高,所以是所有布局方案中消耗性能最小的

百分比布局/流式布局

百分比布局顾名思义就是采用数学中的百分比单位进行布局,不受窗口宽度的影响,通过百分比来限定布局元素,还可以根据客户端分辨率大小进行显示。

布局单位: %

优点:

页面布局根据屏幕分辨率进行适配但是整体布局结构不变。

缺点:

窗口比例缩小到百分之五十,布局结构会发生错乱,一般情况会搭配min-*或者max-*使用。

屏幕尺度跨度太大,在相对其原始设计过小或过大的屏幕上会比例失调。

性能消耗:

在所有方案中,我自认为是消耗性能最大的,比响应式布局还要消耗性能,因为每个设备的宽高不一样,浏览器需要进行大量的计算

响应式布局

响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,讲的是一个网站可以适用于多个设备,而不是为每个设备都写一套代码,这个概念是为了解决市面上手机移动浏览而诞生的。

布局单位:

媒体查询、rem、vw/vh

优点:

不同分辨率设备灵活变化,能够解决多设备显示适用的问题

缺点:

兼容各种设备工作量大,效率低

一定程度上改变原有的布局结构,用户体验差

这是一种折中的选择方案,多方面导致无法达到页面布局的最佳效果

性能消耗: 相对于百分比来说消耗还算比较小的,但是相当于固定布局消耗还是比较大

媒体查询

//媒体查询必须在head里面添加这一句代码防止屏幕被手动放大和缩小
<meta id="viewport" name="viewport" content="width=device-width; initial-scale=1.0; 
maximum-scale=1; user-scalable=no;">
//媒体查询代码一般min是从小到大 1=>10,max是从大到小 10=>1
//因为js代码是至上往下进行执行,如果执行了这句代码,下一句代码执行则会覆盖上一句代码
// @media 查询 必须指定设备 这里指定的是screen screen 屏幕宽度 也有其他属性 max 最大 min 最小
    @media screen and (max-width:320px)  {
    //屏幕视口不大于320触发
        html {
            font-size: 12px;
        }
        body{
            background: #000;
        }
    }
 
    @media screen and (min-width:320px) {
    //屏幕视口不小于320触发
        html {
            font-size: 15px;
        }
        body{
            background: blue;
        }
    }
 
    @media  screen and (min-width:400px)  {
     //屏幕视口不小于400触发
        html {
            font-size: 18px;
        }
        body{
            background: yellow;
        }
    }
 
    @media  screen and (min-width:600px)  {
     //屏幕视口不小于600触发
        html {
            font-size: 24px;
        }
        body{
            background: #ccc;
        }
    }
//媒体查询max查询代码
        @media screen and (min-width:900px) {
        //屏幕宽度不小于900触发
        html {
            font-size: 12px;
        }
        body{
            background: #000;
        }
    }
 
    @media screen and (max-width:900px)  {
     //屏幕宽度不大于900触发
        html {
            font-size: 15px;
        }
        body{
            background: blue;
        }
    }
 
    @media  screen and (max-width:500px)  {
     //屏幕宽度大小于500触发
        html {
            font-size: 18px;
        }
        body{
            background: yellow;
        }
    }
 
    @media  screen and (max-width:400px)  {
        html {
            font-size: 24px;
        }
        body{
            background: #ccc;
        }
    }

rem单位

rem是相对于html根元素的大小,可以采用媒体查询的方式动态设置html根元素大小

vw/vh布局

vw和vh是相对有浏览器可视区域的宽度和高度,跟百分比有些类似,但又不同

% 大部分相对于祖先元素,也有相对于自身的情况比如(border-radius、translate等)
vw/vh 相对于可视窗口的尺寸

响应式布局和百分比布局的区别: 响应式布局可以随着屏幕变化变化为多个布局格式,但是百分比从始到终都是一个模板

弹性布局/flex布局

弹性布局能和其他两种主要布局类型(固定宽度布局和百分比布局)结合使用。flex布局和em都可以叫做弹性布局。flex是css3的一个属性。

附上flex布局详链接:fiex布局点我

布局单位: em

优点:

常见的布局中,通常有一部分是固定高度,而其他部分是剩余大小分配的,这种情况我们可以使用弹性布局。

如果结合其他布局方式,可以说是完美的,不过需要有一些需要考虑的。

缺点:

兼容性: 浏览器在 ie10 以上的可以考虑,ie10以下会出现兼容性问题,需要做兼容

性能

不怎么消耗性能,因为不需要他去计算,是通过css属性方式进去

em

em单位是相当于父级盒子来说的,因此得不到推广,rem和em相对于百分比来说比较灵活。

国人制作网页习惯用CSS强制定义字体大小,确保到每个设备上的效果一致,采用的都是绝对单位px。要是从网站易用性出发字体大小应该是可变的,一些眼睛视力比较弱的人需要放大字体去查看页面内容。然而现在占据大部分浏览器市场的IE无法调整那些使用px作为单位的字体大小。国外则非常重视网站的易用性,一部分外国网站已经使用em作为字体单位。

Grid布局/二维布局

Grid(网格)布局是一个二维布局是在基于网络上的布局系统。Flex布局改善了我们的布局方式,但它主要是为了解决一维布局,而不是复杂的二维布局。flex和grid能够协同工作且配合十分的好。Grid(网格) 布局是第一个专门为解决布局问题而创建的 CSS 模块

采用grid布局的元素,称为grid容器,简称“容器”。其所有直系子元素(直系子元素的子元素不包含在内)自动成为容器成员,被称为grid项目,简称“项目”。

优点:

可以让很多繁琐的布局变得简单,和flex结合使用更佳。

提高网页的规范性和可重用性,将页面模块的尺寸标准化,对于大型网站的开发和维护能大大节约成本。

能让整个网站各个页面的布局保持一致,增加页面的相似度。

缺点:

兼容性是它的一大痛点: 微信浏览器不兼容

性能

消耗性能较小,因为不需要他去计算,是通过css属性方式进去

定位布局

通过css定位属性进行定位,如子绝父相等等

浮动布局

浮动布局会脱离文档流,还需要清除浮动

.father:before,#father:after {
content:".";
display:table;
}
.father:after {
clear:both;
}
.father {
*zoom:1;
}
相关文章
|
1月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
227 1
|
2月前
|
存储 前端开发 安全
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
191 5
|
8月前
|
前端开发 API 开发者
harmonyOS基础- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)
本文由黑臂麒麟(6年前端经验)撰写,介绍ArkTS开发中的常用基础组件与布局组件。基础组件包括Text、Image、Button等,支持样式设置如字体颜色、大小和加粗等,并可通过Resource资源引用统一管理样式。布局组件涵盖Column、Row、List、Grid和Tabs等,支持灵活的主轴与交叉轴对齐方式、分割线设置及滚动事件监听。同时,Tabs组件可实现自定义样式与页签切换功能。内容结合代码示例,适合初学者快速上手ArkTS开发。参考华为开发者联盟官网基础课程。
713 75
harmonyOS基础- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)
|
编解码 前端开发 JavaScript
.NET_web前端框架_layui_栅格布局
【8月更文挑战第27天】
231 4
|
前端开发 数据可视化 搜索推荐
深入剖析极态云优雅的前端框架设计方案(上)
最近在体验极态云,这款低代码软件开发产品,发现其前端框架设计方案很优雅很强大! 在接下来的学习过程中,我将持续输出自己对极态云前端框架设计方案的深入理解,包括具体的使用技巧、优势分析以及可能的应用场景等方面的内容,希望能为大家提供有价值的参考。
|
Web App开发 前端开发 JavaScript
前端开发的秘密武器:这些工具让你轻松应对各种复杂布局!
【10月更文挑战第31天】前端开发充满挑战,尤其是在处理复杂布局时。本文介绍了几种关键工具和技术,如HTML和CSS基础、Firefox开发者工具、Visual Studio Code以及Vue、React和Angular等前端框架,帮助开发者高效应对复杂布局,提升代码质量和用户体验。
168 2
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
前端开发 容器
前端基础(十五)_多栏布局(两列自适应布局、圣杯布局---三列布局、双飞翼布局--三列布局、等高布局)
本文介绍了前端开发中的多种自适应布局技术,包括两列自适应布局、圣杯布局(三列布局)、双飞翼布局(三列布局)和等高布局。文章通过代码示例展示了如何使用HTML和CSS实现这些布局,以及如何通过flex布局简化实现过程。
559 2
|
弹性计算 前端开发 容器
【前端web入门第六天】02 flex布局
Flex布局是一种现代CSS布局模式,通过给父元素设置`display: flex`,其子元素可自动挤压或拉伸。它包含弹性容器和弹性盒子,主轴默认为水平方向,侧轴为垂直方向。主轴对齐方式由`justify-content`属性控制,侧轴对齐方式包括`align-items`(针对所有子元素)和`align-self`(针对单个子元素)。修改主轴方向使用`flex-direction`属性,`flex`属性用于控制子元素在主轴上的伸缩比例。此外,`flex-wrap`属性允许子元素换行,而`align-content`属性则定义多行对齐方式。
301 9
|
Web App开发 前端开发 JavaScript
Web前端项目的跨平台桌面客户端打包方案之——CEF框架
Chromium Embedded Framework (CEF) 是一个基于 Google Chromium 项目的开源 Web 浏览器控件,旨在为第三方应用提供嵌入式浏览器支持。CEF 隔离了底层 Chromium 和 Blink 的复杂性,提供了稳定的产品级 API。它支持 Windows、Linux 和 Mac 平台,不仅限于 C/C++ 接口,还支持多种语言。CEF 功能强大,性能优异,广泛应用于桌面端开发,如 QQ、微信、网易云音乐等。CEF 开源且采用 BSD 授权,商业友好,装机量已超 1 亿。此外,GitHub 项目 CefDetector 可帮助检测电脑中使用 CEF
2578 3

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
  • 2
    前端工程化演进之路:从手工作坊到AI驱动的智能化开发
  • 3
    Vue 3 + TypeScript 现代前端开发最佳实践(2025版指南)
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    447
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    165
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    179
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    138
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    227
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    316
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    148
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    80
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    145
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    197
  • 下一篇
    oss云网关配置