现在布局方式主要分为三种

  • 传统css布局方案(position,float,line-height等配合)。实现复杂,需要多种属性配合使用,兼容性最好。
  • flex布局方案。弹性布局,实现方便,兼容性较好。
  • gird布局方案。

css标准盒模型

尺寸

  • 默认情况: 块级元素宽度默认为100%,高度由内容撑开;内联元素和内联块级元素宽度和高度默认由内容撑开。
  • 开发者设置: 主动设置width、height、line-height等

尺寸的百分比设置

包含块

我们知道width, height都是可以设置百分比,那这个百分比的参照物是谁?这里引出一个概念,叫做包含块(CB, Contanining Block),一个元素的包含块就是该元素的width、height百分比的参照物。

一个元素的包含块是谁,主要取决于该元素的position属性,总结如下:

  • position为static和relative的元素,包含块为其父元素的content-box
  • position为absolute的元素,包含块为其最近的定位非static的祖先元素的padding-box,如果没有定位非static的祖先元素,则为初始包含块(后面解释)
  • position为fixed的元素,包含块为视口viewport
  • position为absolute和fixed时,包含块也可能是由满足以下条件的最近父级元素的padding-box:

    1. A transform or perspective value other than none
    2. A will-change value of transform or perspective
    3. A filter value other than none or a will-change value of filter (only works on Firefox)

margin

块级元素占据一行,是指块级元素的外部尺寸占据一行,就是margin-box。当margin设置为auto的时候,margin会自动占满剩余空间。

  • margin-left: 默认为0,为auto时,自动充满剩余空间
  • margin-right: 默认为0,为auto时,自动充满剩余空间
  • margin-top: 默认为0,为auto时,值还是为0
  • margin-bottom: 默认为0,为auto时,值还是为0

当margin-left和margin-right同时为auto,就会平分剩余空间,这就是margin:auto会使元素水平居中的原因。

line-height和vertical-align

利用line-height和vertical-align可以设置多种场景下的垂直居中。

https://segmentfault.com/a/1190000015713743

html布局浅谈的更多相关文章

  1. flex布局浅谈

    flex布局浅谈和实例 阿基米德曾说给我一个支点我可以撬动地球,而拥有flex基本可以撬动所有的布局. 1.flex布局基本介绍及效果展示 工欲善其事必先利其器,来来来,一起看下基础知识先(呵~,老掉 ...

  2. flex布局浅谈和实例

    阿基米德曾说给我一个支点我可以撬动地球,而拥有flex基本可以撬动所有的布局. 1.flex布局基本介绍及效果展示 工欲善其事必先利其器,来来来,一起看下基础知识先(呵~,老掉牙,但是有用啊). ** ...

  3. 浅谈Android五大布局

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLay ...

  4. [转]浅谈Android五大布局(二)——RelativeLayout和TableLayout

    在浅谈Android五大布局(一)中已经描述了LinearLayout(线性布局).FrameLayout(单帧布局)和AbsoulteLayout(绝对布局)三种布局结构,剩下的两种布局Relati ...

  5. [转]浅谈Android五大布局(一)——LinearLayout、FrameLayout和AbsoulteLayout

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLay ...

  6. 浅谈CSS3中display属性的Flex布局

    浅谈CSS3中display属性的Flex布局   最近在学习微信小程序,在设计首页布局的时候,新认识了一种布局方式display:flex 1 .container { 2 display: fle ...

  7. 浅谈 Qt 布局那些事

    Qt 布局那些事是本文介绍的内容,直接进入主题.GridLayout是一个非常强大的布局管理器,它可以实现很多复杂的布局,名字中暗示它将所有控件放置在类似网格的布局中.^__^GridLayout有两 ...

  8. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  9. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  10. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

随机推荐

  1. C++设计模式 - 享元模式(Flyweight)

    对象性能模式 面向对象很好地解决了"抽象"的问题,但是必不可免地要付出一定的代价.对于通常情况来讲,面向对象的成本大都可以忽略不计.但是某些情况,面向对象所带来的成本必须谨慎处理. ...

  2. #费马小定理,BSGS#BZOJ 3285 离散对数解指数方程

    题目 求最小的正整数 \(x\) 满足 \(g^{ax+b}\equiv c\pmod p\) 其中 \(p\) 是一个质数, \(g,a,b,c\leq 10^{1000000},p\leq 2^{ ...

  3. #特殊判断#牛客练习赛71 A 回文数

    题目 分析 首先出现奇数次的数超过1显然无解 并且只有多个0或者只有一个非0数字并且其它都是0也无解 然后由于没有前导0所以先要找到最小的非0数,先占据首尾 最后按照常规方法前一半从左到右依次递增 注 ...

  4. 使用OHOS SDK构建assimp

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone https://github.com/assimp/assimp.git 进入源码 ...

  5. 5 个编写高效 Makefile 文件的最佳实践

    在软件开发过程中,Makefile是一个非常重要的工具,它可以帮助我们自动化构建.编译.测试和部署.然而,编写高效的Makefile文件并不是一件容易的事情.在本文中,我们将讨论如何编写高效的Make ...

  6. jemter返回结果中文乱码

    如图,返回的结果,中文出现乱码 对于这个问题有两种解决方法 第一种:修改jemeter文件,需要重启jemter 在 bin 目录下,找到  jmeter.properties  这个文件,修改编码格 ...

  7. mybatis 查询一对多子表只能查出一条数据

    mybatis 插叙一对多子表只能查出一条数据 环境 ssm 持久层 mybatis 关联查询一对多<collection> 原因 主表id 和子表id 一样 处理方式:  select ...

  8. 直播预告丨“Hello ArkUI:初识Slider组件(JS)”周三约起

    12月1日 19:00-20:30,Hello HarmonyOS系列课程的第三节Hello ArkUI:初识Slider组件(JS)线上直播,将手把手教你熟悉最新的ArkUI,使用JS语言编写一个包 ...

  9. C#/.NET/.NET Core拾遗补漏合集(24年4月更新)

    前言 在这个快速发展的技术世界中,时常会有一些重要的知识点.信息或细节被忽略或遗漏.<C#/.NET/.NET Core拾遗补漏>专栏我们将探讨一些可能被忽略或遗漏的重要知识点.信息或细节 ...

  10. 高云SOC芯片GW1NSR-LV4CQN48的ARM总线

    高云SOC芯片GW1NSR-LV4CQN48的ARM总线 国产GOWIN高云出的一款芯片是GW1NSR-LV4CQN48PC7/I6,QN48封装,资源是4608,有10个18K BRAM,以及2个P ...