流体布局

什么是流

在谈论流体布局之前我们需要知道一件事情就是何为“流”,所谓“流”就是“文档流”,是css中的一种基本定位和布局

概念

流体布局(Liquid/Fluid Layout)指的是利用元素“流”的特性实现的各类布局,流式布局采用了相对长度单位(%、em、rem、vm、vh)。典型的流式布局是采用百分比(%)作为主要区块的单位, 当然其他的相对单位(em)也是同样适用

布局特点

** 因为“流”本身具有自适应特性,所以流体布局往往都是具有自适应特性的,但是流体布局并不等同于自适应布局,自适应布局是对凡是具有自适应特性的一类布局的统称,流体布局要狭隘一些。

流体布局的特点是页面元素的宽度根据屏幕分辨率进行适配调整,但整体布局不变,这就导致如果屏幕太大或者太小都会导致元素无法正常显示,代表作栅栏系统(网格系统)

网页中主要划分区域使用百分比搭配(min-*、max-*属性使用)例如,设置网页主体的宽度为80%,min-width为960px。图片也作类似处理(width:100%, max-width一般设定为图片本身的尺寸,防止被拉伸而失真)。

这种布局方式在Web前端开发的早期历史上,用来应对不同尺寸的PC屏幕(那时屏幕尺寸的差异不会太大),在当今的移动端开发也是常用布局方式

设计方法

使用%百分比定义宽度,高度和文字大小都是用px来固定住,可以根据可视区域 (viewport) 和父元素的实时尺寸进行调整,尽可能的适应各种分辨率。

往往配合 max-width/min-width 等属性控制尺寸流动范围以免过大或者过小影响阅读。

如果用户的屏幕对于可用布局太小或太大,这两个属性便可以创建固定的宽度。在这种情况下,布局会产生滚动条,并且在功能上成为了固定宽度布局

总体框架

可以根据屏幕宽度改变了内容的宽度,也可以对空白区域使用了不同的宽度。

优点

  • 页面会伸展到整个浏览器窗口,所以即使在大屏幕上,页面的周围 也没有空白;

  • 如果用户的窗口很小,页面就会收缩以适应窗口,而不必横向滚动;

  • 即使用户设置的字体比设计人预设的更大,这种设计也可以适应(因为页面可以伸展)。

缺点

  • 如果不对页面各个部分的宽度加以控制,那么页面设计会和预期的效果大相径庭,例如某些项目或元素挤压到一起,其周围出现意想不到的空隙;

  • 如果一个固定宽度的元素位于一个不能容纳它的盒子里,那么这个元素就会溢出盒子。

  • 设计者无法掌控用户看到的效果,并且容易忽视一些问题,因为在他们特定的分辨率屏幕上,布局看起来很好。

  • 图像,视频和其他类型的内容可能需要多个宽度设置,以适应不同的屏幕分辨率。

  • 难以置信的是,大屏幕分辨率可能会因为缺少内容而产生多余的空白空间,从而减少了美感。

  • 无论当前浏览器宽度是多少,流式布局页面横向上通常会充满整个浏览器,所以它的缺点也显而易见。当浏览器宽度非常大时,页面内容会被拉伸的很宽,段落元素也会占满整个一行。相反的,当浏览器宽度很很窄时,页面元素会

     挤在一起。

注意

由于流体布局可以伸展到浏览器窗口的整个宽度,产生难以阅读的长文本行,所以有些流媒体布局只让页面的一部分伸展和收缩。在页面的其它部分则限制最大和最小宽度。

液体布局

液体布局是流体布局的别名

栅格布局

栅格布局是流体布局的一种

你不知道的css各类布局(二)之流体布局、液体布局、栅格布局的更多相关文章

  1. 你不知道的css各类布局(一)之固定布局、静态布局

    前言 当为大量用户设计网站时,设计人员必须考虑到访问者的差异: 屏幕分辨率, 浏览器的选择, 是否在浏览器最大化状态, 浏览器的额外工具栏的开启(历史记录,书签等), 操作系统和硬件. 我们知道css ...

  2. 你不知道的css各类布局(五)之em布局、rem布局

    em布局/rem布局 em和rem的区别 在了解弹性布局前我们需要先知道em和rem rem:font size of the root element,rem是相对于根元素<html>来 ...

  3. 你不知道的css各类布局(四)之响应式布局

    响应式布局 概念 响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局 布局特点 响应式设计的目标是确保一个页面在所有终端上(各种尺寸的PC.手机.手表.冰箱的Web浏览器等等)都能显示出令人满意的效 ...

  4. 你不知道的css各类布局(三)之自适应布局

    自适应布局 概念 自适应布局(Adaptive Layout)是对凡是有自适应特性的一类布局的统称 自适应布局使用media query来检测当前浏览器的宽度进而通过CSS样式调整页面大小.自适应布局 ...

  5. grid栅格布局

    前面的话 Grid布局方式借鉴了平面装帧设计中的格线系统,将格线运用在屏幕上,而不再是单一的静态页面,可以称之为真正的栅格.本文将详细介绍grid布局 引入 对于Web开发者来说,网页布局一直是个比较 ...

  6. 基本CSS布局二

    基本CSS布局二------基本页面布局二 /*主面板样式*/ #container { width:100%; margin:0px auto;/*主面板DIV居中*/ } /*顶部面板样式*/ # ...

  7. css进阶之二:flex弹性布局

    布局模式是指一个盒子与其兄弟.祖先盒的关系决定其尺寸与位置的算法.css2.1中定义了四种布局模式,分别是块布局.行内布局.表格布局.以及定位布局.css3引入了新的布局模式Flexbox布局,灵活度 ...

  8. CSS各类布局

    http://www.liquidapsive.com/ 1 静态布局(Static Layout)网页上的所有元素的尺寸一律使用px作为单位.特点:不管浏览器尺寸具体是多少,网页布局始终按照最初写代 ...

  9. 谈谈一些有趣的CSS题目(六)-- 全兼容的多列均匀布局问题

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

随机推荐

  1. Python datetime库计算两个时间点之间的分钟(秒、天)数

    计算两个时间点之间的分钟数 import datetime def minNums(startTime, endTime): '''计算两个时间点之间的分钟数''' # 处理格式,加上秒位 start ...

  2. koa 项目实战(十一)验证登录和注册的 input

    1.验证注册参数 根目录/validation/register.js const Validator = require('validator'); const isEmpty = require( ...

  3. pycharm中模块不能导入的问题

    在pycharm中发现模块老是导入不成功 只能以这样的映射的方式 现在才知道: 模块的标志符可以由字母.数字.下划线组成,但是, 不能以数字开头,如果在给python文件起名时,以数字开头是无法在py ...

  4. Kbengine游戏引擎-【1】kbengine安装

    本文主要介绍如何在Linux上安装 官网环境要求:Centos >= 5.x, Debian >= 5.x GCC版本: >= 4.4.x 官网链接 本文的安装环境介绍:Centos ...

  5. SSH整合入门案例

    package loaderman.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import ...

  6. 使用Pull解析器生成XML文件

    有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

  7. openstack核心组件--neutron网络服务(4)

    一.neutron 介绍:   Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...

  8. Java 泛型,你了解类型擦除吗?

    泛型,一个孤独的守门者. 大家可能会有疑问,我为什么叫做泛型是一个守门者.这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇.泛型是 Java 中一个很小巧的概念,但 ...

  9. MATLAB学习(七)求解优化问题:线性规划 非线性规划 拟合与插值 多目标规划

    Minf(x)=-5x1  -4x2  -6x3                x1   -x2    +x3  <=20              3x1  +2x2 +4x3 <=42 ...

  10. linux定时脚本:删除linux/HDFS上过期文件

    一.定时删除linux上定时的文件 显示20分钟前的文件 -exec ls -l {} \; 删除20分钟前的文件 -exec rm {} \; 显示20天前的文件 -exec ls -l {} \; ...