「场景学习法」学习Css竟然可以这么简单,这些年我干嘛去了

Css的学习说难也难,说简单也简单,当然这也是取决于学习方式。a总聊前端给大家分享自己总结的学习方式「场景学习法」,方法很简单,当你学会了「场景学习法」,我相信你也可以无比轻松的学习Css。「场景学习法」的核心在于:你能想到的应用方法有多少种,从而转变为最常用的一种。get不到点?那是当然,专业的嘛!来来来,举个栗子,用大白话说。

图中的列表是横向并排展示的,这种方式很常见吧!那么你会蹦出几种方法?这种列表对于有经验的人来说至少有5~6种方法,下面说一下比较常见的4种方法:

  • flex弹性布局

父元素设置display: flex,子级元素自动并排。现在应该是用的比较多,如果要使子级换行,还得加上flex-wrap: wrap;

css 复制代码
```
div {
    display: flex;
    flex-wrap: wrap;
}
```
  • float浮动

每个子级元素设置float:left,同样可以并排。使用float有很大的坑,就是父级的高度不会被撑,所以要给父级元素清除浮动。

css 复制代码
```
div {
    clear: both;
    li {
        float: left;
    }
}
```

回想IE浏览器时代,在flex布局还没出来前基本都是用float,为了兼容IE6、7、8、9、10,搞得我们不要的不要的,那是直逼自废修为的地步!真的太惨了。

  • inline-block

是将子级元素转为"内联"和"块级"两个状态,缺点在于两个子元素之间会产生空隙。

css 复制代码
```
div {
    display: inline-block;
}
```      
  • inline-flex

是将子级元素转为"内联"和"弹性盒子"两个状态,与flex实现的效果是一致的。

css 复制代码
```
div {
    display: inline-flex;
}
```

flex和inline-flex两者的区别在于:
前者 父元素的尺寸不跟随子元素尺寸动态调整,不设置时默认是100%;
后者会使父元素尺寸跟随子元素的尺寸动态调整;

左图的底部菜单导航、右图按钮的数字,能不能一瞬间get到用什么属性不?

  • fixed

    左图的菜单导航无论页面如何上下滚动都是居于底部的,也就是居于可视区窗口定位,不用想太多,直接用position:fixed;

    导航的5个菜单是不是也是并排的,当然也是"列表"的一种,使用display: flex就可以。

    css 复制代码
    div {
        display: flex;
        position: fixed;
    }
  • absolute

    按钮的数字是在元素上的,也就是居于父元素的定位而定位,直接使用position:absolute;

    css 复制代码
    div {
        position: absolute;
    }
  • align-items

    按钮的图标和文字是并排的,想到啥了?用display:flex就完了,再结合align-items:center使子元素达到水平居中;

    css 复制代码
    div {
        display: flex;
        align-items: center;
    }

是不是又知道了fixed、absolute、align-items: center的用法了,没有刻意去想去背吧!感觉有木有?

用了两个场景讲解,大家应该能够受到「场景学习法」的奇妙之处吧。当你知道了某个场景的应用,下次再遇到这种类型的,基本上不用思考太多,直接用就是了。经过「场景学习法」学习,已经不再需要刻意的去记Css属性的作用。

重要吗?这是肯定的,尤其是往中级、高级发展的伙伴,真的是一道坎。为什么这么说?

你想想,团队开发UI组件库,你负责一部分的组件效果渲染,如果不会Css,搞得出来吗?而且UI组件库可不能用普通写法,可能会涉及到OOPCss。

「场景学习法」仅是其中一种方式,a总聊前端总结了很多学习Css的技巧,如:颗粒度分析法、标签分析法、结构分析法、布局分析法等等;前面提到的两个场景学习法仅是冰山一角,也是最容易理解的,只有接触更多的应用场景才能了解更多的Css属性。a总聊前端为大家准备好了非常多的场景,如下图

送福利,免费获取资料加微信或关注公众号哦

a总聊前端会尽力为你解答任何有关CSS的问题

帮你成长,学习更多的经验

**要了解更多有关Css的内容,关注公众号:a总聊前端**

我是a总聊前端,团队技术负责人,自由撰稿人,善于交心,乐于分享。

专注分享

【技术知识 + 经验 + 个人成长】干货

欢迎关注

相关推荐
y先森10 分钟前
CSS3中的伸缩盒模型(弹性盒子、弹性布局)之伸缩容器、伸缩项目、主轴方向、主轴换行方式、复合属性flex-flow
前端·css·css3
前端Hardy10 分钟前
纯HTML&CSS实现3D旋转地球
前端·javascript·css·3d·html
susu108301891113 分钟前
vue3中父div设置display flex,2个子div重叠
前端·javascript·vue.js
IT女孩儿1 小时前
CSS查缺补漏(补充上一条)
前端·css
吃杠碰小鸡2 小时前
commitlint校验git提交信息
前端
虾球xz3 小时前
游戏引擎学习第20天
前端·学习·游戏引擎
我爱李星璇3 小时前
HTML常用表格与标签
前端·html
疯狂的沙粒3 小时前
如何在Vue项目中应用TypeScript?应该注意那些点?
前端·vue.js·typescript
小镇程序员3 小时前
vue2 src_Todolist全局总线事件版本
前端·javascript·vue.js
野槐3 小时前
前端图像处理(一)
前端