`
vulned
  • 浏览: 16786 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用Javascript修正12个常见的浏览器问题

阅读更多
建议参照原文:
http://www.noupe.com/css/using-javascript-to-fix-12-common-browser-headaches.html
本文引自:
http://blog.bandao.cn/archive/19/blogs-348676.aspx含链接

我们提倡尽可能使用CSS,而且我们常常能做到这一点。现代浏览器有很好的CSS支持-这无疑足够好让你使用CSS来控制布局和版面设计。但是有时候,某些网页元素在不同的浏览器会出现不同。

如果你不知道原因,不要过于担心,请研究CSS规则并查看这篇文章:使用CSS来修正一切: 20 常见错误和修复。

如果这些也无效,您可以通过下面列出的12个javascript解决方案修复它,这样您的网页看起来就能跨越所有浏览器了!

在本文中,我们会揭开你在开发web应用是可能会遇到的12个最常见的CSS问题的javascript解决方案。

1. 自动匹配高度



--------------------------------------------------------------------------------
自从我们抛弃了基于Table的页面布局后,创建同等高度栏目或内容盒子的视觉效果已然是一个挑战。


1.1 用jQuery设置匹配高度
这个jQuery插件在同一个容器里“平衡”盒子的高度并创造一个简介的网格——几乎从可用性和性能的角度使用简单的javascript替代: equalHeights()函数测定一个容器里的所有同级元素同容器的高度,然后设置每个元素的最低高度为最高的元素的高度。

如何工作
equalHeights()通过循环测定指定元素的最高级别的子节点,然后设置他们的最小高度值为最高的元素的高度。

Demohere.
1.2 用jQuery匹配栏目高度
jQuery的另一个可以使盒子的高度相等的插件

$(“#col1, #col2″).equalizeCols();
将如你所想的那样匹配高度

$(“#col1, #col2″).equalizeCols(“p,p”);
匹配这两卷,并在#col1或#col2(短的那个)里的P标签后面添加空白.2. IE6 PNG透明支持
IE6以下的版本不支持png透明。使用hack,IE 5.5和6也已经可以支持,但hack并不理想的且难以使用。让我们来看看我们能做些什么来支持IE6用户 ,同时为网站的大多数访客带来最佳的透明效果。

2.1 强制IE6支持透明
IE7的是一个Dean Edwards建立的javascript库,以强迫MSIE(IE6,IE5)表现的像一个兼容标准的浏览器。它修复许多CSS问题并使透明PNG在IE6和IE5下正常工作,它还允许高级的CSS选择器。

Demohere.
下载源文件here
2.2. 改良iFixPng



--------------------------------------------------------------------------------
修正IE6及以下的PNG图片的问题,IMG标签和CSS背景图片都可以。这个插件是对原始iFixPng插件的一种改进。特点包括:图像或有背景图片的标签,现在支持background-position,其中包括IE浏览器的绝对定位的修正。(bottom: -1px || bottom: 0px)


Demohere.
下载源文件here
3. 用javascript改变class



--------------------------------------------------------------------------------
这是一个方便的javascript函数,可以在当前的文件的任何元素的class由oldClass改为newClass。这是特别有用的快速的利用CSS而不是用编码改变风格。


function changeClass(oldClass, newClass) {
var elements = document.getElementsByTagName(“*”);
for( i = 0; i < elements.length; i ) {
if( elements[i].className == oldClass ) elements[i].className = newClass;
}
}
Demohere.
下载源文件here
4. CSS浏览器选择器
如果您可以只需键入一个特殊选择器,在这里您可以写一些javascript ,设置一个Class在基于当前的浏览器的名字的标签会怎么样?




--------------------------------------------------------------------------------

4.1 CSS Browser
这是一个非常小的javascript只有一行,而且不到1kb,它允许CSS选择器。它让您可以为每个操作系统和每个浏览器写具体的CSS代码。你可以写一些javascript ,设置Class的名字,也就是说,内容根据当前的浏览器。

Demohere.
下载源文件here
jQuery 浏览器选择器
这里有另外一个基于jQuery的非常简单的处理浏览器选择器的方法,你需要做的只是加载jQuery库文件,并添加下面的一块儿代码。

$(document..ready(function(){
$(‘html’).addClass($.browser);
});
现在你可以准备你的样式,如.msie,.mozilla, .opera, .safari 或其它目标浏览器。

Demohere.
5. 最小/最大 高度/宽度支持
针对CSS min-width, min-height, max-width, max-height, border-*-width, margin, 和padding 属性,这里有一些很好的jQuery修正。

5.1 jQMinMax
这是一个为没有原声的支持min-width, max-width,min-height和max-height的地方添加支持的jQuery插件。

Demohere.
下载源文件here
5.2 JSizes
这个小jQuery插件为CSS min-width, min-height, max-width, max-height, border-*-width, margin, 和padding 属性添加支持。特别是他提供一种方法来确定一个元素在那里可见。由于所有的型号的方法返回数值,所以这些也可以安全的使用在严格的DOM元素方面

jQuery(function($) {
var myDiv = $(‘#myDiv’);
 
// set margin-top to 100px and margin-bottom to 10em
myDiv.margin({top: 100, bottom: ‘10em’});
 
// displays the size of the top border in pixels
alert(myDiv.border().top);
 
// displays true if the element is visible, false otherwise
alert(myDiv.isVisible());
 
// set padding-right to 10px and margin-left to 15px using chaining
myDiv.padding({right: 10}).margin({left: 15});
});
Demohere.
下载源文件here
6. 元素垂直/水平居中
你可能之前遇到过这个问题:水平或垂直居中某个元素。垂直居中在CSS里面相当麻烦,特别是你想支持所有主流浏览器。




--------------------------------------------------------------------------------

6.1 Center element plugin
这个插件可以使页面中的所有元素居中,垂直和水平居中采用css负margin的方法。

$(“element”).center(); //vertical and horizontal
$(“element”).center({
horizontal: false // only vertical
});
Demohere.
下载源文件here
6.2 我是怎么把一个元素垂直居中的?
在这个视频教程里, Jeffrey Jordan Way将为你展示如何使用jQuery的力量结合CSS在你的浏览器里面使一个图片垂直居中.

7. 在IE里使用Q标签
人们期望使用的Q标签而不是blockquote标签来显示引号。然而IE/Win不支持Q标签,因为这一点,大部分网站的作者选择不使用Q标签。

7.1 QinIE
当你在你的文件的头部添加这个脚本在IE浏览器里自动扫描的网页Q的标记,并正确的显示它们(包括嵌套引用) 。当(如果)IE浏览器将来支持Q标签,这个插件将会添加浏览器版本检查。

下载源文件here
8. 增加点击目标的大小和获得更多的响应转换



--------------------------------------------------------------------------------
通过把你的所有内容放到一个可点击的标签来和单调的“read more…”链接说拜拜吧。


下载源文件here
9. Lazy loader
Lazy loader 是一个jQuery。它可以延迟加载页面里面的图片. 在用户浏览视界(页面中可见部分)以外的图片之前,它将不会被加载。这和image preloading的作用正好相反.

Demohere.
下载源文件here
10. bgiframe
轻松的解决IE下的z-index的问题。




--------------------------------------------------------------------------------

Demohere.
下载源文件here
11. ieFixButtons
ieFixButtons 是一个修正IE6和7的<button>标签的bug的jquery插件。

Demo here.
下载源文件here
12. 溢出(overflow)修正
修正ie下的水平溢出。IE在溢出的元素里面显示一个滚动条,特别是如果元素里面只有一行,滚动条就会遮住这行内容。这个插件通过修改padding来修正这个问题。




--------------------------------------------------------------------------------

Demo here.
下载源文件here
分享到:
评论

相关推荐

    用JAVASCRIPT修正12个常见的浏览器问题

    标题中的“用JAVASCRIPT修正12个常见的浏览器问题”指的是通过JavaScript来解决不同浏览器对CSS解析不一致导致的显示问题。描述中提到,尽管现代浏览器对CSS的支持已经很好,但仍然存在某些元素在不同浏览器中显示不...

    Javascript解决常见浏览器兼容问题的12种方法

    以下是12种使用JavaScript解决浏览器兼容问题的方法: 1. **自动匹配高度**:当需要在不同浏览器中保持相同高度的元素时,可以使用jQuery的`equalHeights()`函数。此插件会检测同一容器内的所有元素,并设置它们的...

    Javascript定时器 一 单线程 修正

    在修正JavaScript定时器的问题时,我们需要考虑以下几点: 1. 避免长时间运行的回调函数,以防止阻塞主线程。 2. 使用`setTimeout`代替`setInterval`来实现精确的周期性任务。 3. 对于`setInterval`,确保清除不再...

    可设置主页的Android浏览器(修正版)

    在Android平台上,开发一款能够自定义主页的浏览器应用是一项常见的任务。这个名为“可设置主页的Android浏览器(修正版)”的项目,就是这样一个基于Kotlin编程语言和Android原生组件WebView构建的应用。在这个项目中...

    用于跨浏览器网页编程

    本文将从一个具体的示例出发,深入探讨如何通过JavaScript来检测用户所使用的浏览器类型及其版本,并进一步讲解实现跨浏览器兼容性的技巧。 #### 二、代码解析与优化 在给定的代码片段中,开发者尝试通过...

    最全透明图片浏览器不兼容问题解决方案

    标题 "最全透明图片浏览器不兼容问题解决方案" 针对的是一个常见的前端开发问题,即 Internet Explorer 6 (IE6) 对于PNG格式透明图片的不兼容性。PNG(Portable Network Graphics)是一种广泛使用的位图格式,尤其...

    js 周控件修正版 javascript

    这个“修正版”的周控件是针对原版可能存在的问题或功能不足进行优化和改进的版本,以提供更好的用户体验和更稳定的性能。在这个组件中,用户可以看到一个清晰的日期区间,例如“XX周(2009-10-10 至 2009-10-17)”...

    多浏览器日历控件

    例如,对于老版本的IE(如IE6、7、8),可能需要额外的CSS和JavaScript代码来修正样式和功能问题,而对现代浏览器,可以直接利用更先进的API。 3. **日历控件实现**: - **HTML结构**:日历控件的基础通常由HTML...

    10个基于浏览器的JavaScript调试工具分享

    在Web开发的过程中,JavaScript调试是一个不可或缺的环节,它可以帮助开发者快速定位和修正代码中的错误。随着浏览器技术的发展,基于浏览器的JavaScript调试工具变得越来越丰富和强大。本文将介绍10款基于浏览器的...

    最全前端面试题-2.2(浏览器兼容问题篇-上百篇题集整理1个月).doc

    以下是一些常见的浏览器兼容性问题及其解决方案: 1. **CSS兼容性问题**: - **IE6-8的浮动布局margin偏差**:当块级元素使用`float`后,IE6-8的`margin`会出现比设置值大的现象。可以通过添加`display:inline`或`...

    使用javascript实现判断当前浏览器

    JavaScript 判断当前浏览器的知识点主要包括以下几个方面: 1. 了解用户代理(UserAgent)字符串 用户代理(UserAgent)是浏览器提供给服务器的一个字符串,它包含了浏览器的名称和版本信息,以及其他诸如操作系统...

    js日期控件支持多语言多浏览器-修正版内含帮助说明与实例

    考虑到不同浏览器对JavaScript和CSS的解析存在差异,实现良好的跨浏览器兼容性往往需要对代码进行优化,比如使用特征检测而非浏览器检测,以及遵循各种浏览器的样式兼容性标准。 关于修正的CSS兼容性问题,这可能...

    JavaScript笔记第一章—课程准备.pdf

    `prompt()`函数用于显示一个对话框,提示用户进行输入,可以有两个参数,第一个是对话框中显示的纯文本,第二个是默认的输入文本。`alert()`函数用于弹出一个警告框,显示一条指定消息。`document.write()`函数用于...

    浏览器兼容与解析的问题

    浏览器兼容性问题一直是网页开发中的一个关键挑战,尤其是在CSS样式设计方面。为了确保网页在不同的浏览器上呈现一致的效果,开发者需要掌握一些特定的技巧和策略,即CSS Hack技术。 1. **CSS Hack**:CSS Hack是指...

    最全的CSS浏览器兼容问题

    - **解决方案**:可以通过为浮动对象添加负边距来修正这个问题。例如,添加`*html #left { margin-right: -3px; }`来调整右边对象的文本位置。 ##### 7. **IE“捉迷藏”的问题** - **问题描述**:当页面结构复杂...

    div+css浏览器兼容问题

    - **使用IE条件注释**:允许在IE6中加载特殊的CSS样式表,以修正特定于该浏览器的布局问题。 - **使用第三方JavaScript库**:如DD_belatedPNG,它可以解决PNG透明度问题,但同样会增加页面加载时间。 ### 2. Flash...

    javascript实验.pdf

    3. 学习如何通过浏览器的调试工具识别并修正JavaScript代码错误。 实验步骤中,学生首先在指定目录下创建文件夹并编写HTML文件,接着在浏览器中运行和调试代码。例如,将JavaScript代码内联写入HTML文件,或者将...

    浏览器兼容问题解决方案

    浏览器兼容性问题一直是Web开发中的一个棘手挑战,尤其是在CSS样式方面。以下是一些针对不同浏览器,特别是IE7、6和Firefox的兼容性处理方法: 1. **CSS垂直居中问题**: 当需要使一个div内的内容垂直居中时,可以...

Global site tag (gtag.js) - Google Analytics