Page 201 - css揭秘
P. 201

怪:这个范围输入控件只是随便放在图片下面而已(参见图 6-30)。我们需
                                              要用一点 CSS 来把它定位到图片之上,并让它与图片一样宽:

                                                  .image-slider input {
                                                      position: absolute;
                                                      left: 0;
                                                      bottom: 10px;
                                                      width: 100%;
                                                      margin: 0;
                                                  }

                                                  在图 6-31 中可以看到,它现在看起来已经相当不错了。一些私有的伪
                                              元素可以为这个滑块控件进一步设置样式,比如 ::-moz-range-track、::-
                                              ms-track、::-webkit-slider-thumb、::-moz-range-thumb 和 ::-ms-
                                              thumb 等。与大多数私有特性一样,它们的渲染结果往往不一致、不健壮、
                                              不可预测,因此我并不推荐使用它们,除非你真的别无他法。我是认真的。
                                                  不过,如果我们只是想让这个范围输入控件在视觉上与整个控件更加统
                                              一,可以用混合模式和 / 或滤镜来实现。multiply、screen 和 luminosity
                                              这几种混合模式似乎都可以得到不错的效果。此外,filter:  contrast(4)
                    图 6-31                    会让这个滑块变得黑白分明,而低于 1 的对比度值会让它显示出更多的灰色
                    我们已经通过 CSS 把这个范围输         调。这其中的可能性是无穷无尽的,并不存在通用的最佳选择。你甚至可以
                    入控件覆盖到图片之上了
                                              把混合模式和滤镜组合起来,就像这样:

                                                  filter: contrast(.5);
                                                  mix-blend-mode: luminosity;

                                                  我们还可以增加用户的可操作区域,从而提升使用体验(源于 Fitts 法
                                              则)。具体做法是先减少它的宽度,再用 CSS 变形将其放大:


                                                  width: 50%;
                                                  transform: scale(2);
                                                  transform-origin: left bottom;
                    图 6-32
                    同时使用混合模式和滤镜来让范                在图 6-32 中,你可以看到完成这两步优化之后的效果。这个解决方案
                    围输入控件在视觉上融入整个控            的另一个好处在于(尽管只是暂时性的),范围输入控件当前的浏览器支持
                    件,并用 CSS 变形来让它变得更
                    大一些                       度比 resize 属性要好一些。


                                                    向 Dudley Storey(http://demosthenes.info)脱帽致敬,感谢他提出这
                                                个解决方案的第一个版本(http://demosthenes.info/blog/819/A-Before-And-

                                                After-Image-Comparison-Slide-Control-in-HTML5)。
                                  致 敬










                  170   第 6 章 用户体验







          ඀ࠡ  JOEC
   196   197   198   199   200   201   202   203   204   205   206