• 前端(三)


    CSS续

    一、CSS3新特性:

    注意:在使用CSS3新属性时,可以给CSS3样式加上各大厂商的前缀,来兼容不同浏览器(“浏览器内核”负责对网页语法的解析,内核分为渲染引擎和Js引擎)

               浏览器内核                             前缀                        浏览器

         a、Gecko                             -moz-                        火狐

           b、Webkit(谷歌目前已经弃用)                 -webkit-                        谷歌、苹果

         c、Trident                                                 -ms-                                IE                        

         d、Presto(欧朋目前已经弃用)                    -o-                              opera(欧朋)

         e、blink                                                                                       目前谷歌和欧朋)   

      

      1、CSS3选择器(属性选择器、兄弟选择器、伪对象选择器);(详见上一篇)

      2、弹性盒 display:flex;(详见上一篇)

        3、圆角 border-radius:;

        1) border-radius : value ; 四个角(value中填像素或百分比,当盒子为正方形时如果填50%,则变成圆,当盒子为矩形时填50%,为椭圆)

        2)border-radius : value  value ; 左上角  右下角

          3)border-radius : value  value  value  value ; 左上角  右上角  右下角  左下角

    注意:如果只要两边变圆,则value取高的一般像素 

             

      

       4、阴影  

          盒阴影:

            box-shadow :     水平方向的位置              垂直方向的位置            模糊度                         扩展值                  颜色                 阴影位置;

                                                     (正右偏,负左偏)                 (正下,负上)                 (正值,值越大越模糊)     (正变大,负变小)                                   (默认值是外阴影outset ,也可以设置为内阴影);

           字阴影:

            text-shadow :     水平方向的位置             垂直方向的位置            模糊度                         颜色;  

                     (正右偏,负左偏)                 (正下,负上)                (正值,值越大越模糊)  

     注意:a、如果要左右和下边有阴影,则,如:box-shadow:0  15px  30px ;(下边有阴影,左右淡色阴影通过模糊度撑开)

                      

        

          b、如果box-shadow:0 0 30px rgba(0,0,0,.2); ,则水平和垂直都没有,四周淡色阴影由模糊度撑开

                                                          

           5、2D转换(transform):使元素在形状上或者位置上发生一定的改变

        (有时如果需要动画的元素需要进行变换,建议把该元素进行脱离文档流)

        

        位移

        (1)Transform:translate(x,y)         x取正值朝右边移动,y取正值朝下移动(translate中只取一个值,代表水平方向,正右,负左

                (2)Transform:translateX(30px)   向右移动30px

                (3)Transform:translateY(30px)   向下移动30px

        旋转

       (1)transform:rotate(60deg);里面填度数,单位是deg,取正值顺时针旋转,取负值逆时针旋转

        (注意:旋转会旋转整个坐标轴,默认旋转的中心点是整个形状的中心,即宽高的一半。可以修改默认的旋转中心点,通过transform-origin:left top;修改中心点)

        (2)transform:translate(20px,20px)   rotate(60deg); 先位移再旋转

            

          transform:translate(20px,20px)  rotate(60deg); 先旋转在位移

            

          上述区别总结:旋转会旋转整个坐标轴一般情况,如果要旋转,把旋转写在位移的后面

            

        

        (3)transform:rotateX(60deg) 指绕着水平X轴旋转

        (4)transform:rotateY(60deg) 指绕着垂直Y轴旋转

        缩放   

        (1)transform : scale(x,y) ;             取值0~1缩小,>1放大,当其中放一个值时等比例缩放

                (2)transform : scaleX() ;              水平方向上的缩放

                (3)transform : scaleY() ;              垂直方向上的缩放

         倾斜

        (1)transform : skewX(30deg) ;

        (2)transform : skewY(30deg) ;

        (3)transform : skew(xdeg,ydeg) ;      取一个值代表水平方向,两个值代表水平盒垂直

        6、背景渐变

        (1)线性渐变

          background: linear-gradient(to top,red,yellow);

              如:

         background:linear-gradient(red , pink , palegreen , paleturquoise);  默认由上向下

                   background:linear-gradient(to right , red , pink , palegreen , paleturquoise ); 朝右

                   background:linear-gradient(to right bottom , red , pink , palegreen , paleturquoise); 朝右下

          

         (2)径向渐变

          background: radial-gradient(top,circle,red,yellow);

       如:

          background: radial-gradient(red,pink,palegreen,paleturquoise);  默认由中心向周围

                background:-webkit-radial-gradient(top,red,pink,palegreen,paleturquoise);由上向周围

          

        background:-webkit-radial-gradient(top left,red,pink,palegreen,paleturquoise);由左上向周围

          

        background:-webkit-radial-gradient(top left, circle,red,pink,palegreen,paleturquoise); 由左上向周围,渐变形状为圆

         7、过渡

              特点:1、指通过触发事件从一种样式平滑的过渡到另外一种样式(触发事件,如:点击,悬浮等)

           2、只能做点到点的简单动画

       

        语法:

          简写:transition : 过渡的属性   过渡的持续时间   过渡的速度变换类型   过渡延迟 ;

                                              颜色                     ms/s                     linear (匀速)                             ms/s

                    数值(宽高....)                                  ease(默认值,先加速后减速)

                    阴影                                                 ease-in(加速效果)

                                              转换(transform)                              ease-out(减速效果)

                                              背景渐变                                            ease-in-out(先加速后减速)

      

                    如:transition : all 1s   (这里的all指所有需要变换后的属性)                 这句写在需要调用过渡的CSS样式中

          属性单写:

              transition-property:;

              transition-duration:;

                transition-timing-function:;

              transition-delay:;

        8、animation动画:通过控制每一帧,可以制作复杂动画

        (1)设置动画

        语法:

                  @keyframes name(自定义){

                                        from/ 0%{

                           Css样式

                 }

      

                 percent{

                                              Css样式

                  }

                 to/100%{

                           Css样式

                  }

            }

          (2)调用动画           (在想调用动画的样式中添加)

          语法:

           简写:animation  : 动画名字          动画持续时间        速度变化类型            播放次数           播放方向        forward ;

                    name              s/m                    linear                       number                alternate        动画停在最后一帧,不然默认值停回初始状态

                                                                                                 ease                        infinite(无限)

                                     ease-in

                                     ease-out

                                     ease-in-out

          属性单写:

              

    二、CSS Hack(主要针对IE版本浏览器)

      优点:解决CSS样式兼容IE低版本问题,低版本的IE浏览器,如IE6、IE7、IE8

      缺点:大规模使用CSS Hack会带来维护成本的提高以及浏览器版本变化而带来类似Hack失效等系列问题,即对当前版本起作用的hack,也许升级一下,界面又乱了

        (即尽量找通用方法,减少使用CSS Hack)

      1、条件注释:

    (1)<!--[if IE 9]>

        <style>

          div{ color : blue }               //在IE9下,字体颜色为蓝色

        </style>        

      <![endif]-->

    (2)<!--[if IE]>

        <p>只能在IE浏览器上看见这段文字</p>           //只能在IE浏览器上看见这段文字

       <![endif]-->

    (3)<!--[if gt IE 6]>

        <style>

          <span>这段文字只能在大于IE6版本上出现</span>         //<span>这段文字只能在大于IE6版本上出现</span>

        </style>

      <![endif]-->

    总结上述:

      条件注释的语法:<!--[if  条件]>               

                  代码块;

              <![endif]-->  

    其中“条件符号”有:

    大于    gt  

    大于等于    gte

    小于    lt

    小于等于    lte

    非指定版本    !

      2、属性前后缀:

    (1)”_”减号是IE6专有的hack

    (2)”9”IE6/IE7/IE8/IE9/IE10都生效

    (3)””IE8/IE9/IE10都生效,是IE8/9/10的hack

    (4)”9”只对IE9/IE10生效,IE9/10的hack

    设定优先级最高 , 在后面加上!important:如background-color:red !important;

    三、媒体查询(以原生代码写响应式布局,编写一次代码适应于多屏幕尺寸终端

        

          其中:max-width => 包括等于

        实例:

          注意:在头部加入<meta name=”viewport” content=”device-width , initial-scale=1”>

            (为了使电脑上的Chrome或者其他浏览器能够支持手机模式,不然只支持pad端)

        <head>

          <style>

                   /*PC端开始*/

                   @media screen and (min-992px){

                           body{

                  background-color:pink;                                              

                }

               }

                   /*PC端结束*/

                   /*iPad端开始*/

                   @media screen and (min-769px) and (max-992px){

                           body{

                                          background-color:purple;      

                }

               }

                   /*iPad端结束*/

                   /*移动端开始*/

                   @media screen and (max-768px){

                           body{

                                      background-color:blue;                  

                 }

              }

                   /*移动端结束*/

          </style>

        </head>

    书写规则:

        在书写响应式布局中,宽度尽量用百分比表示(以方便各种屏幕大小的比例),高度视情况而定。在开始书写响应式布局时,首先按照PC页面的比例开始编写,书写完PC端布局之后,将移动端,pad端和PC端显示中有区别部分的代码段,分别放入各自的@media中,经过各自需求的更改,就完成了。

        

    四、其他

    1、悬浮图标显示

      cursor : pointer ;      鼠标箭头图标显示转换成小手图标显示

      cursor : wait ;          鼠标箭头图标显示转换成等待的圆圈图标显示

    2、字体图标

    (1)借助阿里巴巴矢量图库

               第一步:将需要的图标加入购物车;

               第二步:对购物车中的图标点击“下载代码”,获得压缩包;

               第三步:打开压缩包之后,选取“iconfont.css , iconfont.eot , iconfont.svg , iconfont.ttf

    iconfont.woff , demo_unicode.html”放入项目的css文件夹(其中以.woff .ttf .svg . eot为后缀的文件,是为了兼容各个浏览器的)

               第四步:引入时在head中加入<link rel=”stylesheet” href=”url”>

               如:<i class=”iconfont”>十六进制</i>

       

     

  • 相关阅读:
    【bzoj2079】[Poi2010]Guilds 构造结论题
    【bzoj1899】[Zjoi2004]Lunch 午餐 dp
    【bzoj1345】[Baltic2007]序列问题Sequence 单调栈
    【bzoj1047】[HAOI2007]理想的正方形 二维RMQ
    【bzoj1044】[HAOI2008]木棍分割 二分+dp
    【bzoj5037】[Jsoi2014]电信网络 最大权闭合图
    【bzoj5018】[Snoi2017]英雄联盟 背包dp
    【bzoj5020】[THUWC 2017]在美妙的数学王国中畅游 泰勒展开+LCT
    【bzoj2213】[Poi2011]Difference dp
    【bzoj2161】布娃娃 权值线段树
  • 原文地址:https://www.cnblogs.com/qianbin/p/9431305.html
Copyright © 2020-2023  润新知