彻底解决屏幕自适应布局

549 阅读2分钟

你知道的布局方式都有啥?

  1. 浮动布局 float:left|right
  2. inline-block布局display:inline-block
  3. Flex布局display:flex
  4. Grid布局 display:grid
  5. 定位布局 position:absolute|relative
  6. 表格布局 <table>display:table
  7. 使用框架布局 bootstrapPure.css

CSS的值与单位都有啥?

绝对长度单位

以下都是绝对长度单位——它们与其他任何东西都没有关系,通常被认为总是相同的大小。

单位名称等价换算
cm厘米1cm = 96px/2.54
mm毫米1mm = 1/10th of 1cm
Q四分之一毫米1Q = 1/40th of 1cm
in英寸1in = 2.54cm = 96px
pc十二点活字1pc = 1/16th of 1in
pt1pt = 1/72th of 1in
px像素1px = 1/96th of 1in

这些值中的大多数在用于打印时比用于屏幕输出时更有用。例如,我们通常不会在屏幕上使用cm。惟一一个您经常使用的值,估计就是px(像素)。

相对长度单位

相对长度单位相对于其他一些东西,比如父元素的字体大小,或者视图端口的大小。使用相对单位的好处是,经过一些仔细的规划,您可以使文本或其他元素的大小与页面上的其他内容相对应。下表列出了web开发中一些最有用的单位。

单位相对于
em在 font-size 中使用是相对于父元素的字体大小,在其他属性中使用是相对于自身的字体大小,如 width
ex字符“x”的高度
ch数字“0”的宽度
rem根元素的字体大小
lh元素的line-height
vw视窗宽度的1%
vh视窗高度的1%
vmin视窗较小尺寸的1%
vmax视图大尺寸的1%

详细内容请看此处

从上面我们可以组合出哪些自适应布局方案?

  1. flex+JS+rem布局
  2. flex+vw布局
  3. ... Grid布局很强大,不过目前浏览器支持情况,而且Grid适合进行大框架布局,局部布局还是使用flex比较合适。

实现效果

Demo案例

gitee.com/zgsbbk/web-…

结尾

今天有点累了,改天再详细写写。。。哈哈