《CSS 揭秘》- 用户体验 - 第五章

选用合适的鼠标光标

image.png
image.png

扩大可点击区域

border: 10px solid transparent;
background-clip: padding-box;

这个方法很管用。不过好景不长,当你需要给
按钮加上真正的边框效果时,会发现按钮仅有的那道边框已经被我们挪作他用了。怎么办?很简单,可以用内嵌投影来模拟出一道(实色)边框。

border: 10px solid transparent;
box-shadow: 0 0 0 1px rgba(0,0,0,.3) inset;
background-clip: padding-box;

自定义复选框

http://dabblet.com/gist/e269f10328615254e29e

image.png

遮罩层

1.最常见的实现方法就是增加一个额外的 HTML 元素用于遮挡背景,然后为它添加如下样式
.overlay { /* 用于遮挡背景 */
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,.8);
}
.lightbox { /* 需要吸引用户注意的元素 */
2.伪元素方案(不好)

伪元素无法绑定独立的 JavaScript 事件处理函数。当遮罩层是由一个独立的元素来实现时,我们可以给它绑定事件处理函数,比如当用户点击遮罩层时自动关闭弹出层。当使用弹出层自己的伪元素来实现遮罩层时,就需要判断用户到底是点了弹出层还是遮罩层,这就变得相当棘手了

body.dimmed::before {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
background: rgba(0,0,0,.8);
}
3.box-shadow 方案

http://dabblet.com/gist/91538b2131d3545035ca

box-shadow: 0 0 0 999px rgba(0,0,0,.8);

这个初步的解决方案有一个明显的问题,就是它无法在较大的屏幕分
辨率(>2000px)下正常工作。此处最合适的视口单位是 vmax
1vmax 相当于 1vw 和 1vh 两者中的较大值。 100vw 等于整个视口的宽度, 100vh 就是视口的高度。因此,满足我们需求的最小值就是50vmax 。由于投影是同时向四个方向扩展的,这个遮罩层的最终尺寸将是100vmax 加上元素本身的尺寸。

box-shadow: 0 0 0 50vmax rgba(0,0,0,.8);

通过模糊来弱化背景

http://dabblet.com/gist/1326eb460b0dff91d638

背景知识
过渡动画,“毛玻璃效果”,“通过阴影来弱化背景”


image.png

滚动提示

http://dabblet.com/gist/20205b5fcdd834461e80

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,216评论 25 709
  • 哈哈,胖兔今天休息,画了个吴昕。 一直以来都喜欢看大本营,最初是喜欢搞笑的谢娜,后来觉得吴昕也很棒,最近才通过相爱...
    柠小朵阅读 1,729评论 0 1
  • 欧山之阳 无疆之后 夏禹血脉 中国女娃 卓然独立
    欧阳素书阅读 2,713评论 0 0
  • 神仙姐姐卢冰冰老师讲完了一段课文叫我们用自己的话复述。为了给神仙姐姐留下一个好印象,来自鱼米之乡的湖南,操着一口湖...
    若水Dewlight阅读 3,134评论 0 0