使用纯css制作一个简单的幻灯片效果

思路:使用css的帧动画来实现

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>纯css幻灯片</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>
        * {
            margin: auto;
            padding: 0;
        }

        div {
            margin-top: 100px;
            width: 100px;
            border: solid 1px #ccc;
            overflow: hidden;
        }

        ul {
            float: left;
            display: flex;
        }

        ul li {
            width: 100px;
            height: 100px;
            text-align: center;
            line-height: 100px;
            list-style: none;
            animation: slide 5s ease 0s infinite normal both;
        }

        /*停顿(开始)>左移>停顿>左移>归零(结束)  此为三张图片  多一张图片加一个停顿+左移*/
        @keyframes slide {
            0% {
                transform: translateX(0%);
            }

            16.7% {
                transform: translateX(0%);
            }

            33.3% {
                transform: translateX(-100%);
            }

            50% {
                transform: translateX(-100%);
            }

            66.7% {
                transform: translateX(-200%);
            }

            83.3% {
                transform: translateX(-200%);
            }

            100% {
                transform: translateX(0%);
            }
        }
    </style>
</head>

<body>
    <div>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </div>
</body>

</html>

网页标准和标准制定机构重要性

其实任何行业都应该由一个机构来制定行业标准,例如汽车行业,手机行业等…
比如汽车有各种车型,长宽高都在一个标准的范围内,这样停车位就比较好设计,还有轮胎标准,座椅标准等等。
手机的屏幕分辨率,按键,系统都有一定的标准。如果手机尺寸固定为3种的话,是不是手机壳和手机膜的厂商最高兴了,这样就更容易设计产品,也节省了成本。

网页标准是由w3c组织制定的,最主要的工作就是统一浏览器规范,最小各个浏览器之间的差距。
在浏览器兼容性最差的年代 ie6和firefox和chrome的差别真的是让我们这些早期的前端工程师伤透了脑筋。80%的工作时间都浪费在调试兼容性上面了。
所以标准制定的越好,对于开发人员来说受益是最大的,开发时间变快了,bug变少了。对于使用者来说用户体验也更一致了。

渐进式增强和优雅降级区别

这两个概念的结果是一样的,区别就是一开始你从完整版入手还是基础版入手。
举个例子,玩pc游戏的时候经常会在游戏图像设置里面选择特效级别,高中低。
渐进增强(progressive enhancement)- 就是开发页面的时候先从一个低特效开始,然后根据更高版本的浏览器逐渐添加更高级别的效果。
优雅降级(graceful degradation)- 先从最高的特效开始开发,然后针对低版本浏览器做优化
应用场景:
例如ie6不支持阴影,火狐支持。
渐进增强就是先不保证ie6正常显示,然后再判断,如果当前浏览器支持阴影则显示。
优雅降级反之。

Firefox(火狐) 下 text-overflow:ellipsis 的省略号会浮动在上面

text-overflow:ellipsis 属性通常用于隐藏超出长度的文本,并在文本最后面增加省略号。
如果在网页的交互等过程中,出现一个新层(例如鼠标移动到下拉菜单,弹出下拉菜单内容),在 Firefox 下,文本内容当然会被新弹出内容遮住,但是省略号并不会。它会出现在新层的上面。

如果你也遇到了这个问题,解决方法很简单,只需要为新弹出的覆盖层的 z-index 属性赋值为 >1 的数值即可,这样就可以解决了。你可以在上面的 Demo 中,使用 Firebug 增加一下。

cursor — 定义鼠标样式

取值: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help | progress ] ] | inherit

  • [<uri> ,]*: 根据用户定义的资源显示
  • auto: 正常鼠标
  • crosshair: 十字鼠标
  • default: 默认鼠标
  • pointer: 点状鼠标
  • move: 移动鼠标
  • e-resize,ne-resize,nw-resize,n-resize,se-resize,sw-resize,s-resize,w-resize: 改变大小鼠标
  • text: 文字鼠标
  • wait: 等待鼠标
  • help: 求助鼠标
  • progress: 过程鼠标
  • inherit: 继承

CSS3的响应式布局

做手机端网页需要用到响应式布局,首先需要再HTML文件头声明一下:

&lt;meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /&gt;

主要目的是宽度控制和禁止用户缩放,具体参数自己GOOGLE一下。

下面是CSS判断是PC端还是移动端
其实很简单,用CSS3的媒体查询就可以非常方便去实现,不需要用userAgent神马的那么麻烦。

/*最小宽度800就是PC端*/
@media all and (min-width: 800px) {
  #nav {
    width: 300px;
    float: left;
    margin-right: 20px;
  }
  #grid {
    width: 450px;
    float: left;
  }
}
/*最大宽度799就是移动端*/
@media all and (max-width: 799px) {
  #nav {
    width: 100%;
  }
  #grid {
    width: 100%;
  }
}

知道了上面2点就可以实现响应式布局了,是不是非常简单?
移动端还有一些特殊的事件(手指滑动)神马的,后续我再专门写篇移动端的JS文章好了。

chorme的input兼容方式

/** 
 * 兼容chorme
 * 输入框光标位置和黄色边框
 * 这段放到最后面
 * Class名称要保持一致才会重置到样式 
 **/
@media screen and (-webkit-min-device-pixel-ratio:0) {
    .exmails-form .form-input-text {
        line-height: 15px;
        outline: none;
    }
}