css的简单使用思想

153 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第8天,点击查看活动详情

设计模式

设计模式OOCSS(面向对象CSS思想)

一个对象,具有很多方法,想要扩展这个对象的方法,并且不修改,那就是用继承方式,扩展,用到CSS上面就可以,menu为父类,然后不修改父类的情况扩展第一个menu的样式。

  

<div class="App">
        <div class="menu fix"></div>
        <div class="menu"></div>
        <div class="menu"></div>
</div>

容器与内容分离,content样式和container1,contianer2分开写,因为content里面的内容很可能是一致的

    <div class="container1">
      <div class="content"></div>
          
    </div>
        
    <div class="container2">
            
      <div class="content"></div>
          
    </div>

结构(基础对象)与皮肤(另一个对象)分离,menu是结构,fix是皮肤

    <div class="App">
          
      <div class="menu fix"></div>
          
      <div class="menu"></div>
          
      <div class="menu"></div>
        
    </div>

BEM

B(Block块) E(element)M(modified)

        <div class="menu">
        <div class="menu-tab menu-tab--style1"></div>       
        <div class="menu-tab menu-tab--style1"></div>       
        <div class="menu-tab menu-tab--style2"></div>       
        <div class="menu-tab menu-tab--style2"></div>     
    </div>

SMACSS

分类:Base(基本类型),Layout,Modules(公共复用的模块),State(模块的不同状态效果),Theme

好处:一

动画

transition

transition: property duration timing-function delay;

transition-property(默认为all)

transition-property: none|all|property;

transition-duration(过渡效果所需时间)

transition-duration: time;

transition-timing-function(过渡的速度,默认为ease慢慢加快)

描述
linear规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。
ease规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
ease-in规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
cubic-bezier(n,n,n,n)在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数

transition-delay(延迟所需要的时间)

transition-delay: time;

transition的优点在于简单易用,但是它有几个很大的局限。

(1)transition需要事件触发,所以没法在网页加载时自动发生。

(2)transition是一次性的,不能重复发生,除非一再触发。

(3)transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。

(4)一条transition规则,只能定义一个属性的变化,不能涉及多个属性。

Animation

animation: name duration timing-function delay iteration-count direction;

animation-name

animation-name: keyframename|none;

animation-duration

animation-duration: time;

animation-timing-function

同transition一致。

animation-iteration-count(播放的次数)

animation-iteration-count: n|infinite(无限播放);

animation-direction,如果把动画设置为只播放一次,则该属性没有效果。

animation-direction: normal|alternate(反向轮流播放);