IE和FireFox在显示按钮时,具有不同的行为。这个行为在单独使用按钮时表现不太明显,但是当把一个很大的按钮放置到另外一个更小的包容元素时候,就表现的特别明显。比如放置到一个div元素当中,如下所示:
<html> <head> <style> .buttonContainer { position:absolute; overflow:visible; } .backbutton { font-size: 20px; font-family: Arial; font-weight: bold; font-style: normal; font-variant: normal; } </style> </head> <body> <div id="widget1" class="buttonContainer" style="left: 4px; top: 48px; width: 31px; height: 11px; z-index: 1; cursor: pointer; border: 1px solid red;"> <div style="height: 100%; width: 100%; border: 1px solid green;"> <button style="height: 100%; width: 100%;" class="backbutton">Back</button> </div> </div> <div id="widget2" class="buttonContainer" style="left: 4px; top: 100px; width: 31px; height: 11px; z-index: 1; cursor: pointer; border: 1px solid red;"> <div style="height: 100%; width: 100%; border: 1px solid green;"> <input type="button" value="Back" style="height: 100%; width: 100%;" class="backbutton"/> </div> </div> </body> </html>
在FireFox和IE上分别执行上述代码后的结果如下:
IE FireFox
可以看到,虽然按钮的高度都设置为相对于包容元素的100%,但是在IE中按钮自动撑高了包容元素,而在Firefox中,按钮超出包容元素的部分被截断了。
为了解决上述问题,可以将按钮的高度设置为auto,如下所示:
<button style="height: auto; width: 100%;" class="backbutton">Back</button> <input type="button" value="Back" style="height: auto; width: 100%;" class="backbutton"/>
在FireFox和IE上分别执行上述代码后的结果如下:
IE FireFox
此时,当包容元素没有设置边框时候,IE和FireFox的显示效果就比较类似了。
另外,FireFox中的按钮看起来总是比用其他方式模拟的按钮大(比如A标签),也比IE中的按钮大,原因是FireFox的按钮中有一个伪元素(Pseudo-elements),可能用来当按钮获得焦点时候,显示按钮的虚边框。而这个伪元素会占据额外的高度和宽度。如Fix Firefox Button Padding中描述的,我们可以通过设置特定于Firefox的css来解决这个问题。
/* Used within FF chrome to target CSS to specific URLs: being FF-specific, it is also useful for targeting FF-only code */ @-moz-document url-prefix(http://) { button::-moz-focus-inner, input[type="button"]::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="reset"]::-moz-focus-inner { padding: 0 !important; border: 0 none !important; } }
有时候,上述设置过后,仍然会发现按钮比其他模拟元素大,此时可以像Firefox Button Height Fix中描述的一样,根据页面具体情况,设置按钮的margin属性如下:
input::-moz-focus-inner { border: 0; padding: 0; margin-top:-2px; margin-bottom: -2px; }
另外为了使各个浏览器中的按钮显示尽量一致,我们可以设置按钮的overflow属性为visible,width属性为auto,如Styling HTML Submit Buttons中描述的:
.submit { cursor:pointer; overflow:visible; /* ie6/7 width fix */ width:auto; /* ie6/7 width fix */ padding:1px 5px; background:#ddd; color:#333; font:10pt arial, sans-serif; border:1px solid #aaa; }
我们也可以全部使用图片按钮来代替普通按钮,如-moz-focus-inner中描述的。但是当需要国际化时候,则需要很多的图片来支持不同的语言,这个显然不太合适。
其他比较有意思的关于按钮和CSS的文章:
15 css tricks that must be learned
相关推荐
微信内置浏览器在返回上一页面,且上一页面包含AJAX代码时,页面就会被强制刷新,极度影响用户体验。而我们想要的效果是:返回上一页面时,页面还停留在原来的状态,AJAX获取到的数据还在,滚动条也在原来的位置。 ...
请在各浏览器里查看以下input的显示效果! 解决后显示效果! 具体代码 .button{ margin:0; padding:0 0.25em; width:auto; *width:1;/*宽度不带单位我是第一次见,不知道其作用!- -!*/ overflow:visible; } 还有一...
它基于 Internet Explorer 内核(可能正是您当前使用的默认浏览器), 这意味着它的效果和您在 IE 中看到的效果完全相同, 同时它还给您提供如下的额外功能... 多页面浏览界面 鼠标手势 超级托拽 隐私保护...
因为目前浏览器不支持flash,导致phpcms后台上传图片按钮无法点击,试了很多浏览器都不行。这个方法操作简单,亲测快速有效,原理是将原来的上传图片插件更改为h5图片上传插件。
ReportViewer在IE11后打印按钮就存在兼容问题,火狐,谷歌也存在打印按钮显示的兼容性问题,本资料就是解决ReportViewer打印按钮显示的问题, 通过自己写脚本添加到DOM里面让所有浏览器都能显示打印和自定义的按钮出来! ...
Viewport 移动设备上的Viewport就是设备的屏幕上能用来显示网页的一块区域,即浏览器上用来显示网页的那部分区域。Viewport不局限于浏览器可视区域的大小,可能比浏览器的可视区域要大,也可能比浏览器的可视区域要...
经常看到新浪微博里有图片放大缩小旋转效果,感觉效果还不错,所以就想试着做一个类似的demo出来,至于旋转对于IE可以用滤镜来解决,标准的浏览器可以用html5中的canvas画布来解决。 思路:1.点击小图后,小图...
傲游基于IE内核开发, 这意味着您可以在傲游浏览器中看到和 IE 一致的效果, 并能正常使用网银等支付手段. 同时, 傲游浏览器还能有效防止恶意插件, 阻止弹窗和浮动广告, 加强网上浏览的安全. 傲游浏览器支持各种外挂...
当商品图片的大小和模板演示效果中不同时,有可能导致分享挂件错位,此时只需简单一步即可解决,进入后台--页面管理--模板列表--当前使用模板--编辑模板,找到商品详细页(product.html),点击可视化编辑按钮,就...
47 3.9 查明元素何时获得和失去焦点 49 3.10 在按钮上应用悬停效果 50 3.11 切换应用一个CSS类 52 3.12 创建基于图像的变换 54 3.13 为响应事件而添加和删除文本 57 3.14 应用样式作为对事件的响应 58 3.15 显示文字...
本质上,要实现这个效果得解决两个问题: 判断文本是否过长 文本过长时,页面样式如何折叠 如何判断文本是否过长? 所谓「文本过长」,就是文本占据屏幕的高度太大。之所以要判断这个,是为了能告知逻辑层控制「全文...
10.3 创建对话框显示效果 10.4 从外部文件中加载页面内容 10.5 为页面添加转场效果 10.6 设置全局默认的转场效果 10.7 定制显示回退按钮 10.8 在标题栏中添加导航栏 10.9 在页脚区域添加导航栏 10.10 添加可折叠的...
6.2.htm 如何使用构造函数为对象实例增加属性和方法 6.3.htm 在网页上显示中文形式的日期 6.4.htm 将一个小数四舍五入到指定位数 6.5.htm 以从大到小冒泡排序法为例 6.6....
Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义分页导航的Url...
ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有ViewState,没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox...
另外,主题在安装微软雅黑系统中IE8以上或其它核心浏览器显示效果最佳。 ■ 主题设置面板 启用主题后,首先需进入主题设置面板,熟习各项功能控制,设置相关选项(如图)。不论是否设置了相关选项,必须点一次保存...
当商品图片的大小和模板演示效果中不同时,有可能导致分享挂件错位,此时只需简单一步即可解决,进入后台--页面管理--模板列表--当前使用模板--编辑模板,找到商品详细页(product.html),点击可视化编辑按钮,就...