关于Google 圆角 高光 高宽 自适应 按钮
最近看了张鑫旭老师关于Google搜索按钮的博客,感觉启示颇多。下面我就详说一下这个按钮的代码,由于W3C新版本的更新,之前的代码会有部分累赘,
在此,我做了些修改。当然,想观摩原版的可以,狠狠的戳链接啦!http://www.zhangxinxu.com/wordpress/?p=292
好了,那现在,我们先看一下这个按钮的代码
CSS代码:
以下是HTML代码:
以下是显示结果:
下面,我们来解析一下代码
首先,我们最外层的p标签,只是为了演示 本按钮 可以进行图文混编,这个不是必要的,大家要清楚
其次,内层的超链接 .g_a ,将其定义为内联块级元素,这样是赋予行级标签a宽高等属性。然后,设置他的边框及圆
角,附上背景色,并消除超链接的默认样式。接着,让其超出部分隐藏,因为内部的的span标签都设置为块级属性了,所
以隐藏掉超出部分。这里vertical-align: middle;的作用是演示图文混编,让其与文字居中显示的,非必须代码。
最后,对于第一个span标签.g_b ,他的作用就是产生高亮效果,大家可以给他加一个背景色,看看他的所属位置,
也可以,放大按钮观察,竖直方向按钮的颜色变化是.g_b的背景色,.g_b的边框,然后是a标签的背景色
而,第二个span标签.g_c ,他是为按钮添加文字的,而且padding: 0.1em 0.6em; margin-top: -0.6em;的目的
是使文字近乎于居中显示,此时.g_c的大小使几乎充满整个a标签的,通过.g_c的行高和宽度撑起整个a标签的空间,而且
所有span标签均使用 em (他是相对大小单位,默认为浏览器的字体大小)的倍数,可以实现按钮宽高的自适用。
cursor: pointer;仅仅是让鼠标显示小手形状,不加也行,超链接默认就是此图形。
此按钮的优点:
1.可以与文字混排,对vertical-align属性敏感
2.宽度自适应于内部文字的个数,高度自适应于内部文字的大小
3.支持用css实现鼠标经过样式改变
4.页面性能提成,开发维护成本降低
好啦,以上就是我修改之后的按钮代码,我自认道行还浅,若有什么错误,还请指出,我们共同交流
关于Google 圆角 高光 高宽 自适应 按钮的更多相关文章
- 关于Google圆角高光高宽自适应按钮及其拓展
关于Google圆角高光高宽自适应按钮及其拓展————源自张鑫旭css讲解 这篇文章发布于 2009年10月24日,星期六,18:08,归类于 css相关. 阅读 48770 次, 今日 1 次 by ...
- jQuery实现布局高宽自适应
在页面布局(layout)时经常是上左右的框架布局并且需要宽.高度的自适应,div+css是无法实现(*hegz:div+css其实是可以实现的,利用jQuery比较容易实现浏览器的兼容性),所以需要 ...
- LayIM聊天框全屏根据浏览器高宽自适应
个人博客 地址:http://www.wenhaofan.com/article/20190410190628 问题 由于LayIM没有处理聊天框在全屏状态下根据浏览器缩放处理高宽,所以会导致在浏览器 ...
- 纯CSS写九宫格样式,高宽自适应正方形
<!DOCTYPE html><html> <head> <meta charset="utf-8"> ...
- CSS实现圆角六色渐变自适应按钮
Css代码 .g_a{display:-moz-inline-stack; display:inline-block; border-bottom:1px solid #cccccc; border- ...
- UILabel实现自适应高宽
UILabel是iOS开发常用的控件.UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握.UILabel自适应高宽度是很多初学者遇到的技术性难题.比如段文字,要让他完全地分行显示 ...
- iOS开发 UILabel实现自适应高宽
UILabel是iOS开发常用的控件.UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握.UILabel自适应高宽度是很多初学者遇到的技术性难题.比如段文字,要让他完全地分行显示 ...
- JS获取IMG图片高宽
前段时间在LJW写的touchslider.js轮播代码里添加自适应屏幕大小的功能时,遇到一个问题.不管用什么样的方法都无法获取到IMG标签的高宽,最后只有给图片定一个高宽的比例值:趁今天有空我就写了 ...
- javascript获取网页各种高宽及位置总结
screen对象 获取屏幕的高宽(分辨率) screen.width //屏幕的宽 screen.height //屏幕的高 screen.availWidth //屏幕可用宽度 屏幕的像素高度减去系 ...
随机推荐
- HBase开启LZO
hbase只支持对gzip的压缩,对lzo压缩支持不好.在io成为系统瓶颈的情况下,一般开启lzo压缩会提高系统的吞吐量.但这需要参考具体的应用场景,即是否值得进行压缩.压缩率是否足够等等. 想要hb ...
- SharePoint WebPart 简单的读取列表内容的web部件
最近,自己也在学习写一些SharePoint的部件,也就是使用对象模型,下面,介绍一下自己刚刚写的小测试程序,不足之处,还请指正. 1. 新建项目 Vs2008 – 新建 – 项目 – 类库 – 输 ...
- git push 小结
$ git push ssh://git@dev.lemote.com/rt4ls.git master // 把本地仓库提交到远程仓库的master分支中 $ git remote add orig ...
- ruby读取源代码自身的一种方法
我们知道ruby中如果源代码中一行开头(必须在行的开头)有__END__标示,则表示下面的都是数据行,可以用IO对象DATA来访问这些行.但是如果我们用DATA.rewind一下的话,就可以将文件流指 ...
- 访问PHP文件时出现An error occurred.
服务器配置ubuntu16,nginx,php5.6-fpm 我的问题是用户组没有权限导致出现访问PHP文件时An error occurred.,访问Html页面正常. 查看Nginx日志报错(路径 ...
- C# 中的线程安全集合类
C# 的集合类型中, 都有Synchronized静态方法, 和SyncRoot实例方法 对于ArrayList以及Hashtable 集合类来讲,当需要做到线程安全的时候,最好利用其自带的属性Syn ...
- 有关Java 锁原理
锁 锁是用来锁东西的,让别人打不开也看不到!在线程中,用这个“锁”隐喻来说明一个线程在“操作”一个目标(如一个变量)的时候,如果变量是被锁住的,那么其他线程就对这个目标既“操作”不了(挂起)也无法看到 ...
- ecshop 修改记录20150710
ecshop 修改记录20150710 1:去掉头部TITLE部分的ECSHOP演示站 Powered by ecshop 前台部分:在后台商店设置 - 商店标题修改 后者打开includes/lib ...
- ScalaPB(2): 在scala中用gRPC实现微服务
gRPC是google开源提供的一个RPC软件框架,它的特点是极大简化了传统RPC的开发流程和代码量,使用户可以免除许多陷阱并聚焦于实际应用逻辑中.作为一种google的最新RPC解决方案,gRPC具 ...
- 分布式服务通讯框架XXL-RPC
<分布式服务通讯框架XXL-RPC> 一.简介 1.1 概述 XXL-RPC 是一个分布式服务通讯框架,提供稳定高性能的RPC远程服务调用功能.现已开放源代码,开箱即用. 1.2 特 ...