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
相关推荐
5. **兼容性处理**:虽然大部分现代手机都支持这些特性,但为确保更广泛的设备兼容性,需要测试不同设备和浏览器的显示效果,并根据需要进行调整。 6. **Demo**:在提供的"Demo"文件中,应该包含了实现上述功能的...
"流行按钮兼容各浏览器"的主题着重于创建一种设计风格的按钮,它不仅美观,而且能在不同的浏览器之间保持一致的显示效果。这通常涉及到CSS(层叠样式表)技术的深入理解和跨浏览器兼容性问题的解决。 首先,CSS源码...
在微信中访问Web页面时...综上所述,"web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开"是解决微信内置浏览器限制的一种常见策略,它通过遮罩层和提示按钮,引导用户在更适合的环境下浏览Web页面,提升用户体验。
在使用Internet Explorer(IE)浏览器访问某些管理系统时,可能会遇到一个问题:页面上的部分按钮和组件显示不完整。这种情况通常是由于浏览器兼容性问题、浏览器设置不当或系统插件冲突导致的。以下是一些解决此类...
Internet Explorer 8(简称IE8)作为一款较老版本的浏览器,其对CSS的支持并不完善,经常会出现按钮和文字显示异常的问题,比如字体过小等。本文将详细介绍如何解决IE8环境下按钮和文字变小的问题,并提供相应的解决...
尽管这些标签在理论上应该阻止页面被缓存,但实际效果因浏览器而异,有些浏览器可能会忽略这些设置。 其次,针对服务器端的技术,例如在JSP中,我们可以设置响应头来禁止缓存。以下是一个JSP示例,它使用了`...
这些方法旨在帮助开发者在不牺牲设计质量的情况下,确保网站在IE6上的正常显示。 首先,一种简单但可能不完美的解决方案是为IE6单独提供GIF格式的图片,其他现代浏览器则使用PNG。通过CSS私有属性(例如`_...
当标签数量过多,无法在主窗口内全部显示时,我们可以将多余的标签移至下拉菜单中,通过QToolBar的按钮触发下拉菜单的显示,从而提供一个优雅的解决方案。 在代码实现中,`tabworkspace.cpp`和`tabworkspace.h`可能...
而“jQuery 调用浏览器打印功能”是利用 jQuery 实现的一种方法,允许用户通过点击按钮或执行特定操作来触发浏览器的打印功能,从而打印网页内容。在描述中提到了 jqPrint 插件,这是一个专门用于打印 jQuery 对象...
这包括选择合适的颜色、大小、位置,以及响应式设计,确保按钮在不同设备和屏幕尺寸上都能正常显示。 6. **异步编程**:考虑到可能的延迟加载或动态生成的代码块,CodeCopy可能使用`MutationObserver`来监听DOM的...
8. **兼容性测试**:在实际应用中,需要确保这个解决方案在各种设备和浏览器上都能正常工作。这就需要进行跨平台和跨浏览器的兼容性测试。 总的来说,这个压缩包提供的代码是一个解决微信内打开网页时自动弹出遮罩...
8. **响应式设计**: 针对不同设备和屏幕尺寸设计网页,确保在手机、平板和桌面电脑上都能良好显示。 9. **安全与隐私**: 学习如何保护用户数据,避免跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等网络安全问题。 ...
在本文中,我们将深入探讨如何使用jQuery实现两个按钮来控制两个不同对象的隐藏与显示,这一功能具有良好的浏览器兼容性,包括IE8及以上版本以及360等主流浏览器。这个功能由jmjjp制作整理,旨在提供一种简洁、高效...
在前端开发中,创建用户友好的交互体验是至关重要的,而"js简洁客服和返回顶部右侧漂浮代码,有动画效果,兼容主流浏览器"正是针对这一需求的解决方案。这个项目结合了JavaScript(js)、ECMAScript(ECMAScript是...
4. **兼容性处理**:考虑到不同的浏览器可能对CSS3、JavaScript等支持程度不同,项目中可能包含了特定的浏览器检测和polyfill,以确保在IE、Firefox、Chrome、Safari等主流浏览器上的正常运行。 在实际应用这个代码...
在提供的压缩包文件中,"帮助说明.txt"可能是开发者为用户编写的使用指南,详细解释了软件的安装、配置和常见问题的解决方法。而"豹子浏览器"可能是实际的程序可执行文件,用户可以通过运行这个文件来启动和使用这款...
1. **JavaScript**:作为基础脚本语言,JavaScript负责处理用户的交互,如点击按钮显示或隐藏日历,以及选择日期后的逻辑处理。 2. **jQuery**:一个流行的JavaScript库,简化了DOM操作、事件处理和动画效果,使得...
10. **Responsive Design(响应式设计)**:为了适应不同屏幕尺寸的设备,开发者可能还考虑了响应式设计,使图片浏览器在手机、平板电脑和桌面端都有良好的显示效果。 总之,ExtJS4图片浏览器是利用ExtJS4的组件、...
### IE9浏览器小图标变大图标的解决办法 在日常使用IE9浏览器的过程中,部分用户可能会遇到这样一个问题:浏览器中的小图标(例如地址栏、标签页等处的图标)突然变大,这不仅影响美观,也可能导致操作不便。本文将...