关于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 //屏幕可用宽度 屏幕的像素高度减去系 ...
随机推荐
- linux下32位汇编调用规则
传递给系统调用的参数必须安装参数顺序一次放到寄存器中,当系统调用完成后,返回值放在eax中: 当系统调用参数<=5个时: eax中存放系统调用的功能号,传递给系统调用的参数顺序依次放到寄存器:e ...
- 为何我会喜欢封闭的apple?
原来本猫喜欢的手机是简单的塞班系统,nokia的E72i,超经典吧!就是最近都有把它充满电重新拿出来用的冲动呀.可惜无奈的是上面的应用太少呀!原来PC和笔记本装的是各种清一色的windows系统,从3 ...
- JavaScript对象添加、删除、修改对象的属性
https://www.cnblogs.com/goweb/p/5357640.html 利用动态特性 function Person(){}; var person = new Person(); ...
- Factory Method (工厂模式)
什么是工厂设计模式 根据名字即可了解,工厂肯定是用来生产产品的,在我们的程序开发中,需要用到不同的类,对于熟悉SSH.SSM开发的可以知道,在初期学习的时候,总是有一个框架提供好的的factory供我 ...
- DUEditor的诞生
书接上回线上项目py2升级py3的事,除了上篇blog说到的snspy,主要升级的一个包就是DjangoUeditor,由于这个项目的维护人也不维护了,最后所幸自己开了支持Py3且加了一定优化的新版本 ...
- ImageMagick 使用经验
from:http://community.itbbs.cn/thread/20402/ 1.如何用ImageMagic水平或垂直拼接图片 因为是分片下载的,现在只能用montage拼接图片列阵,但如 ...
- .net core使用orm操作mysql数据库
Mysql数据库由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.MySQL是一个多用户.多线程的关系型数据库管理系 ...
- python flask中的代码约定
在Python社区中有许多关于代码风格的约定.如果你写过一段时间Python了,那么也许对此已经有些了解. 我会简单介绍一下,同时给你一些URL链接,从中你可以找到关于这个话题的详细信息. 让我们提出 ...
- string to int
problem describe: given a string , first find the first word which is not white space;then there wil ...
- SOFA 源码分析 — 扩展机制
前言 我们在之前的文章中已经稍微了解过 SOFA 的扩展机制,我们也说过,一个好的框架,必然是易于扩展的.那么 SOFA 具体是怎么实现的呢? 一起来看看. 如何使用? 看官方的 demo: 1.定义 ...