NotionNext
NotionNext
编程爱好者
/互联网从业者
/知识分享博主
认知决定态度,态度决定选择,选择决定人生

CSS 布局

发布于:2021-12-14|最后更新: 2023-8-29|
type
status
date
slug
summary
tags
category
icon
password

css布局

什么是布局?

把页面分成一块一块,按左中右,上中下等排列

布局分类

两种
  • 固定宽度布局,一般宽度为960/1000/1024px
  • 不固定宽度布局,主要靠文档流的原理来布局
记住
  • 文档流本来就是自适应的,不需要加额外的样式
第三种布局
  • 响应式布局
  • 意思是PC上固定宽度,手机上不固定宽度
  • 也就是一种混合布局

布局的两种思路

从大到小
  • 先定下大局
  • 然后完善每个部分的小布局
从小到大
  • 先完成小布局
  • 然后组合成大布局
  • *两种均可使用
  • 新人推荐用第二种,因为小的简单
  • 老手一般用第一种,因为熟练有大局观

用什么 CSS 布局?

  • 如果需要兼容 IE 9 ,使用 float 布局 ,左浮两个,固定宽度,不要响应式,给父元素添加 clearfix !!!,必要时候采用 负 margin
  • 如果需要兼容最新的浏览器,用 grid 布局
  • 如果不需要兼容最新版的,用 flex 布局 ,必要时采用 负margin

float 布局

步骤
  • 子元素上加上 float:left 和 width
  • 在父元素上加 .clearfix
经验
  • 有经验者会留一些空间或者最后一个不设width
  • 不需要做响应式,因为手机上没有IE,而这个布局是专门为IE准备的
  • IE 6/7 存在双倍 margin bug, 解决办法有两个
  • 一是将错就错,针对 IE 6/7 把 margin减半 ,在属性前面加上下划线
  • 二是神来一笔,再加一个 display: inline-block
clearfix 写法
我们除了用border调试,还可以用outline调试方法,outline不占用宽度

float布局实践

不同布局
  • 用float做两栏布局(如顶部条)
  • 用float做三栏布局(如内容区)
  • 用float做四栏布局(如导航栏)
  • 用float做平均布局(如产品展示区)
经验
  • 加上头尾,即可满足所有PC页面需求
  • 手机页面傻子才用float
  • float要程序员自己计算宽度,不灵活
  • float用来应付IE足以

flex布局

容器 container

container 表示容器 一般用来做父元素 ,它里面的子元素是items
flex container有哪些样式?
  • 让一个元素变成flex容器
  • 改变item的流动方向(主轴)
  • 改变折行
  • 主轴的对齐方式
  • 次轴对齐
  • 多行内容如何分布
这个基本用不上
flex item有哪些属性?
  • item 上面加order ,用order改变item的显示顺序
  • item 上面加flex-grow , 用来分配多余的空间给item
  • flex-shrink 用来控制如何变瘦,一般写flex-shrink: 0防止变瘦,默认是1
  • flex-basis 控制基准宽度 ,认是auto
  • flex: flex-grow flex-shrink flex-basis 可以缩写,空格隔开
  • align-self 定制 align-items
重点
  • display: flex
  • flex-direction: row/column
  • flex-wrap: wrap
  • justify-content: center /space-between
  • align-items: center

flex布局实践

不同布局
  • 用flex做两栏布局(如顶部条)
  • 用flex做三栏布局(如内容区)
  • 用flex做四栏布局(如导航栏)
  • 用flex做平均布局(如产品展示区)
  • 用flex组合使用,做更复杂的布局
经验
  • 永远不要把width和height写死,除非特殊说明
  • 用min-width / max-width / min-height / max-height
  • flex可以基本满足所有的需求
  • flex和margin-xxx:auto 配合有意外的效果
什么叫写死? 写死
  • width:100px
不写死
  • width: 50%
  • max-width: 100px
  • width: 30vw
  • min-width:80%
  • 特点:不使用px , 或者加min max 前缀
前端戒律:
  • 没有图不要写代码,必须先给设计稿
  • 没有设计稿就自己画 ,老板同意在写代码
  • 设计师只给一稿,让你做两套怎么办?没设计稿,不做
  • 自己当设计师,设计稿不被老板肯定,就不要写代码.

常用的草图软件

跨平台
  • Bslsamiq
  • Figma
  • 墨刀
  • Adobe XD
特点
  • 直接干,不用学

Grid布局

功能最强大的布局方案,二维布局用Grid ,一维布局用Flex
Grid也分container和items
  • 让一个元素成为container
  • 设置行和列
  • 你可以给每条线取名字
  • item可以设置范围
  • fr - free space 巧记: 份
  • 分区grid-template-areas
  • 空隙 gap

Grid布局实践

布局
  • Grid尤其适合不规则布局
经验
  • 等到Grid普及了,前端对CSS的要求会进一步降低
 
CSS 基本概念CSS 定位