关于CSS学习的一些总结

接触CSS有很长的一段时间了,我对它的感情每次都有些不同,简单··· 费解··· 神奇···  好玩···

CSS就是这么一门不正交的语言,你无需一步步从头学起,它就像乐高积木,学会了一点就能用上一点。

尽管CSS不正交,属性也比较多不好记,但没关系,你只要记住用的最多的几种方法足矣应付业务中大部分需求:

  • 行内水平居中,块级水平居中
  • 行内垂直居中,块级垂直居中,fixed定位的margin:auto 居中
  • 浮动左右结构布局,flex左右结构布局
  • 浮动左中右结构布局,flex左中右结构布局
  • 一行省略,多行省略

除了以上用的最多的几种方法外,我们还需要知道CSS一些基本常识:

控制文档流

  • 文档流是一个很垃圾的翻译,英文原文是 Normal Flow
  • 文档流中内联元素默认从左到右排列,宽度不够则自动换行
  • 文档流中块级元素从上到下排列,每个元素占一行
  • float:left、position:absolute、position: fixed 可以使元素脱离文档流
  • 块级元素的高度由其文档流中元素高度的总和确定
  • 内联元素中,给 inline 元素设置宽高是没有任何效果的
  • 例如如果 span 的 font-size 为 20px,则该 span 里面的文字大小和 line-height 跟字体有关
  • 例如想要在页面上显示两个空格,应该在代码里写    才行
  • 介意不要写死height和width。因为宽高定死之后,如果文字变多,会出现BUG。用户缩小窗口大小,会出现滚动条,影响体验。width: 100% 再加上 padding 就会撑出父元素之外,很难看。不写死宽高,页面就是自适应的。

控制z-index:堆叠上下文和堆叠顺序

  • 什么是堆叠上下文
  • 出发堆叠上下文,可以理解为堆叠作用域。跟 BFC 一样,我们只知道一些属性会触发堆叠上下文,但并不知道堆叠上下文是什么。
  • 例如border在background上面,绝对定位元素在浮动元素上面,内联元素在浮动元素上面,但z-index 为 9999 的绝对定位元素不一定在z-index为0的相对定位元素上面。

理解BFC

  • 官方学名:块格式化上下文。
  • 首先要明确一件事,BFC根本不好解释,每个人的解释都不同,就像解释什么是面向对象编程一样。如果一定要回答BFC是什么,请举例说明。
  • 功能1:爸爸管儿子(用BFC包住浮动元素)
  • 功能2:兄弟之间划清界限(用float+div做左右自适应布局)

理解IFC(BFC的兄弟)

  • 官方学名:内联格式化上下文。与他兄弟一样,不好解释
  • 所有的内联元素都有两个高度
    • 基于字体度量的 content-area
    • virtual-area(也就是 line-height )
    • 这两个高度你都无法看到
  • line-height: normal 是基于字体度量计算出来的
  • line-height: n (n=1,2,3…) 可能得出一个比 virtual-area 还要矮的 content-area
  • vertical-align 不靠谱
  • line-box 的高度的受其子元素的 line-height 和 vertical-align 的影响
  • 我们无法轻易的用 CSS 来控制字体度量
  • 了解更多

理解 Float 布局和 Flex 布局

  • 需要支持IE8吗?No!:Flex布局+弹性宽度 。Yes!:Float布局+定宽      可支持到IE5
  • 原则:不到万不得已不要写死width和height,尽量使用高级语法,如:calc,flex,如果是IE9以下,宽高全部写死。
  • float口诀:子元素全部加:float:left(right),父元素加: .clearfix,如果宽度不够,可以用 margin: 0 -4px;
  • felx口诀:父元素加:display:flex。

理解响应式与移动端页面

  • 做好媒体查询:media query 
  • 学会隐藏元素:display:none
  • 手机端需要加上:
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  • 手机端的交互方式不一样:没有hove,没有touch事件,没有resize,没有滚动条
  • 移动端页面最好使用flex布局

掌握动态REM方案

  • 动态rem移动端适配
  • rem:root rem   根元素font-size的计算值
  • 所有手机显示的界面都是一样的,只是大小不同
  • 1rem == html font-size == viewport width
  • 动态rem:通过js计算算出屏幕宽度,然后确定比例,于是每进入一次设备将会根据设备视口的宽度来调整rem的px值。
  • rem可以与其它单位同时存在

掌握 icon 的使用

  • 关于css图标icon的六种实现方法
  • img 法:简单暴力,缺点:图片过多时增加服务器的请求,可做CDN优化
  • background法:把图片放在css背景标签中,background属性能够控制图片居中,平铺,横向或者纵向自适应剪裁,在做复杂的图片处理时用background属性比img标签要好。
  • css sprites法:国内一般叫雪碧图或者精灵图,思路就是将多张图片拼成一张背景图,然后选择性展示背景图某一部分来达到展示不同icon的目的。优点:减少请求。
  • font法:用字体做icon,有些设计师将一些常用的icon集合做成了一套字体,通过字体选择将icon打出来,跟搜狗输入法的特殊符号有点像,不过大小不太好调整,得用font-size。
  • SVG法:目前比较流行的方法,用svg矢量图做成icon图标。比如阿里巴巴矢量图图标库,比如搜索iphone,会有很多设计师设计的svg图片供你使用,选好图片后创建项目,生成js代码,按照教程将网站上生成的icon图标代码拷贝至你的代码中即可。优点:无论放多大都不存在图片锯齿。
  • css法:用你学到的css知识写出来。

掌握 Bootstrap 的使用

  • bootstrap的核心方式就是:复制粘贴
  • 先引入bootstrap
  • 掌握bootstrap的网格系统
  • 掌握bootstrap css组件怎么用
  • 掌握bootstrap jQuery怎么用

Grid布局

  • Grid布局详解
  • grid布局是css中最强大的布局系统,适合复杂布局使用,可以同时处理行和列
  • 缺点:目前兼容性不太好
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值