CSS3新特性应用之用户体验
目录
一、光标
- 新增加not-allowed光标,不允许访问
- 隐藏光标,在触模应用上很有用,css2.1需要一个透明的图片来实现,而css3直接用
cursor:none即可。 - 完整代码:
curosr: url(transparent.gif');
cursor: none;
二、扩大热区
- 应用在小按钮的情况下,不好被鼠标点击到
- 代码如下:
.btn{
position: relative;
cursor: pointer;
}
.btn:after{
position: absolute;
content: '';
top:-10px;
right: -10px;
bottom: -10px;
left: -10px;
}
三、自定义复选框
- 系统自带复选框美化
- 利用css3提供的:checked伪类选择器实现
- 宽、高、对齐等设置单位最好用em,让按钮变得更为灵活
- 示例代码:
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
input[type="checkbox"]{
display: none;
}
input[type="checkbox"] + label::before{
content: '\a0'; /*不换行空格*/
display: inline-block;
background: silver;
border-radius: .2em;
margin-right: .2em;
width: .8em;
height: .8em;
line-height: .65em;
text-indent: .15em;
}
input[type="checkbox"]:checked + label::before{
content: '\2713';
background: yellowgreen;
}
</style>
</head>
<body>
<input type="checkbox" id="anesome"/>
<label for="anesome">anesome</label>
</body>
- 开关按钮的实现
- 伪类选择器 + 修饰label元素实现
- 示例代码:
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
input[type="checkbox"]{
display: none;
}
input[type="checkbox"] + label{
display: inline-block;
padding: .3em .5em;
background: #ccc;
border: 1px solid rgba(0, 0, 0, .2);
background-image: linear-gradient(#ddd,#bbb);
text-align: center;
border-radius: .3em;
box-shadow: 0 1px white inset;
text-shadow: 0 1px 1px white;
}
input[type="checkbox"]:checked + label{
box-shadow: .05em .1em .2em rgba(0, 0, 0, .6) inset;
border-color: rgba(0, 0, 0, .3);
background: #bbb;
}
</style>
</head>
<body>
<input type="checkbox" id="anesome"/>
<label for="anesome">anesome</label>
</body>
四、通过阴影来弱化背景
- 传统方式,增加一个背景元素和一个内容元素实现,背景遮罩挡住所有,内容元素展示一切,简单不做示例。
- body上增加一个伪元素,与传统方式一样,只是减少背景元素而已
- 重点介绍box-shadow实现
- 实现方式让内容元素产生一个巨大的阴影,不偏移也不模糊
- H5单位介绍(利用单位解决大屏遮罩层显示不全的问题)
- em:相对父级的font-size,1em=16px;
- rem:相对根元素的font-size
- vh和vw:IE10 + 和现代浏览器 1vh = viewport的高的1%,vw相同;
- vmax和vmin
- ie10 + 和现代浏览器都支持vmin,ie全部都不支持vmax
- vmin表示vh和vw中比较小的值
- vmax表示vh和vw中比较大的值
- 1vmax表示1vh和1vm之间较大的值
- ch和ex
- ie9+和现代浏览器都支持,依据当前font-family的相对单位
- ch:字符0的宽度
- ex:小写字符x的高度
- 当页面有滚动条时,遮罩层的边缘会露出来,除非用position:fixed定位,但又防止页面本身就有滚动条
- box-shadow不能产生交互事件(独立元素的遮罩层),只能在视觉上带来引导
- box-shadow只限于没有滚动条 + 只做引导层的场景。
- 示例代码:
.wrap{
margin: 0 auto;
width: 200px;
height: 100px;
box-shadow: 0 0 0 50vmax rgba(0, 0, 0, .8);
}
五、通过模糊来弱化背景
- 主要利用blur来模糊背景
- 由于blur应用的元素,相对所有的子元素都会被模糊,所以除高亮元素之外其他元素都包含在一个main元素下面。
- 示例代码:
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
main{
transition: .6s;
}
main.de-emphasized{
filter: blur(2px);
}
main.de-emphasized + dialog{
display: block;
}
</style>
</head>
<body>
<main class="de-emphasized" >在图6-16 中可以看到,这已经是一个巨大的进步了。不过,现在这个
模糊效果是突然出现的,看起来不是那么自然,反而给人一种突兀的感觉。
由于CSS 滤镜是可以设置动画的,我们可以让页面背景的模糊过程以过渡
动画的形式来呈现。</main>
<dialog>dialog in html</dialog>
</body>
六、滚动提示
- 利用radial-gradient做圆形径向渐变
- radial-gradient(center,shape,size,start-color,...,stop-color);
- center:是一个坐标值,表示原点位置,默认为50% 50%
- shape:默认为ellipse(椭圆),可以设置为circle(正圆)
- size:四个值,closest-side(最近边),farthest-side(最远边),closest-corner(最近角),farthest-corner(最远角)
- 角度都是离圆心最近与最远的角,四个角度
- 示例代码:
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.wrap{
overflow: auto;
width: 10em;
height: 8em;
padding: .3em .5em;
border: 1px solid silver; background: linear-gradient(white 30%, transparent), radial-gradient(at 50% 0, rgba(0, 0, 0, .2),transparent 70%);
background-repeat: no-repeat;
background-size: 100% 50px, 100% 15px;
background-attachment: local, scroll;
}
.radi{
background: -webkit-radial-gradient(40% 37%, closest-corner, red, grey);
width: 200px;
height: 100px;
}
.radi02{
margin-top: 10px;
background: -webkit-radial-gradient(40% 37%, farthest-corner, red, grey);
width: 200px;
height: 100px;
}
</style>
</head>
<body>
<ul class="wrap" >
<li>Ada Catlace</li>
<li>Alan Purring</li>
<li>Schrödingcat</li>
<li>Tim Purrners-Lee</li>
<li>WebKitty</li>
<li>Json</li>
<li>Void</li>
<li>Neko</li>
<li>NaN</li>
<li>Cat5</li>
<li>Vector</li>
</ul>
<div class="radi"></div>
<div class="radi02"></div>
</body>
七、图片对比控件
- 利用resize这个css3属性,可以设置none(不可改变)、horizontal(水平)、vertical(垂直)、both(所有)三个值。
- both时,会在右下角有一个可改提示,其他没有。
- 示例代码:
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.wrap{
position: relative;
display: inline-block;
}
.wrap > div{
position: absolute;
top: 0; bottom: 0; left: 0;
width: 50%;
resize: horizontal;
overflow: hidden;
}
.wrap > div::after{
position: absolute;
content: '';
bottom: 0; right: 0;
width: 12px;
height: 12px;
cursor: ew-resize;
padding: 5px;
background: linear-gradient(-45deg,white 50%, transparent 0);
background-clip: content-box;
}
.wrap img{
display: block;
user-select: none;
}
</style>
</head>
<body>
<div class="wrap">
<div>
<img src="../img/cat-alpha.png" alt="">
</div>
<img src="../img/cat.png" alt="">
</div>
</body>
- 利用h5的range标签实现,需要Js的配合,使用其oninput事件监听range组件改变的值。
- 示例代码:
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.wrap{
position: relative;
display: inline-block;
}
.wrap > div{
position: absolute;
top: 0; bottom: 0; left: 0;
width: 50%;
overflow: hidden;
}
.wrap img{
display: block;
user-select: none;
}
input[type="range"]{
position: absolute;
bottom: 10px;
width: 100%;
user-select: none;
}
</style>
</head>
<body>
<div class="wrap">
<div class ="img">
<img src="../img/cat-alpha.png" alt="">
</div>
<img id="destImg" src="../img/cat.png" alt="">
</div>
<script>
window.onload = function(){
var rang = document.createElement('input');
rang.type='range';
rang.min="0";
rang.max="100";
var div = document.getElementsByClassName('img')[0];
var wrap = document.getElementsByClassName('wrap')[0];
rang.oninput = function(e){
div.style.width = this.value + '%';
}
debugger;
wrap.appendChild(rang);
};
</script>
</body>
CSS3新特性应用之用户体验的更多相关文章
- [转]深入了解 CSS3 新特性
简介 CSS 即层叠样式表(Cascading Stylesheet).Web 开发中采用 CSS 技术,可以有效地控制页面的布局.字体.颜色.背景和其它效果.只需要一些简单的修改,就可以改变网页的外 ...
- H5 和 CSS3 新特性
博客地址:https://ainyi.com/52 H5 新特性 语义化标签:header.footer.section.nav.aside.article 增强型表单:input 的多个 type ...
- css3新特性总结
一.什么是css3 css用于控制网页的样式和布局,css3是css的升级版本,受浏览器限制,跨浏览器开发有点复杂.css3完全向后兼容 二.css3新特性 1.边框 css3的边框有如下属性: (1 ...
- 新特性AAtitti css3 新特性attilax总结titti css
Atitti css3 新特性attilax总结 图片发光效果2 透明渐变效果2 文字描边2 背景拉伸2 CSS3 选择器(Selector)4 @Font-face 特性7 Word-wrap &a ...
- Atitti css3 新特性attilax总结
Atitti css3 新特性attilax总结 图片发光效果2 透明渐变效果2 文字描边2 背景拉伸2 CSS3 选择器(Selector)4 @Font-face 特性7 Word-wrap &a ...
- CSS3新特性(阴影、动画、渐变、变形、伪元素等)
CSS3与页面布局学习总结(六)--CSS3新特性(阴影.动画.渐变.变形.伪元素等) 目录 一.阴影 1.1.文字阴影 1.2.盒子阴影 二.背景 2.1.背景图像尺寸 2.2.背景图像显示的原 ...
- 深入了解css3新特性
深入了解css3新特性:http://www.ibm.com/developerworks/cn/web/1202_zhouxiang_css3/
- 01-移动端开发教程-CSS3新特性
1. 移动端开发课程概述 移动互联网的兴起,让移动端的开发迅速蹿红.对于前端开发者来说,移动端的开发已经占据了他们大部分工作时间.接下来老马带大家一起学习移动端开发的相关前端开发技术. 这边课程内容包 ...
- css css3新特性
css css3新特性 一.css3是什么? 我不喜欢把已有的概念从一个地方抄到另一个地方,还是喜欢如下方式. 参考百度百科: http://baike.baidu.com/link?url=z2V ...
随机推荐
- SSH免手动输入密码和设置代理
通过使用sshpass将密码写入命令里,直接执行,免去手动密码输入的步骤命令如下: sshpass -p password_abc ssh user_abc@ssh_host -p ssh_port ...
- Spark-shell和Spark-Submit的使用
Spark-shell有两种使用方式: 1:直接Spark-shell 会启动一个SparkSubmit进程来模拟Spark运行环境,是一个单机版的. 2:Spark-shell --master S ...
- Mysql - 性能优化之子查询
记得在做项目的时候, 听到过一句话, 尽量不要使用子查询, 那么这一篇就来看一下, 这句话是否是正确的. 那在这之前, 需要介绍一些概念性东西和mysql对语句的大致处理. 当Mysql Server ...
- Vim使用
模式 ESC\Ctrl+c:退出编辑模式 ZZ\wq:命令模式下保存退出 编辑 i:进入编辑模式 I:转到行首非空字符开始编辑 s:删除当前字符进入编辑模式 a:从当前字符后开始编辑 A:从当前行末非 ...
- 搭建个人wordpress博客(小白教程)
新浪sae平台现在是有个免费个人空间使用,现在,教您如何使用该平台搭建属于自己的个人网站,本教程以wordpress程序安装包搭建个人网站. 申请新浪云账号 如果我们使用SAE新浪云计算平台作为服务器 ...
- Jquery EasyUI 开发实录
有好几年没有用过EasyUI了,最近在外包做的一个项目中新增功能时,又用到了,本以为和按照以前那样用就可以了,可当我真正用的时候,发现许多地方不一样了,就连官网的文档都更新了,最突出的就是不知道什么时 ...
- 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
在Redhat enterprise 6.5 的服务器上,为在gutub 上的 .net 项目构建一个持续集成环境,用到了Jenkins和mono.因公司的服务器在内网,访问外网时要通过代理,所以在很 ...
- 《徐徐道来话Java》(1):泛型的基本概念
泛型是一种编程范式(Programming Paradigm),是为了效率和重用性产生的.由Alexander Stepanov(C++标准库主要设计师)和David Musser(伦斯勒理工学院CS ...
- 探索C#之系列目录导航
1. 探索c#之函数创建和闭包 2. 探索c#之尾递归编译器优化 3. 探索c#之不可变数据类型 4. 探索c#之递归APS和CPS 5. 探索c#之一致性Hash详解 6. 探索c#之微型MapRe ...
- ASP.NET MVC Bundle使用 合并压缩
2017-01-06 更新 在 BundleCollection 的构造函数中添加了 3种默认规则 public BundleCollection() { BundleCollection.AddDe ...