热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS3背景的最佳实践和对旧浏览器的支持?-BestpracticeforCSS3backgroundsandsupportforolderbrowsers?

MycolleagueandIarehavingatoughtimedecidingonabestpracticesapproachforie6,ie7suppor

My colleague and I are having a tough time deciding on a best practices approach for ie6, ie7 support for a site we're building. The site is for an older crowd, so not supporting these browsers is out of the question.

我和我的同事正在艰难地为我们正在构建的一个站点的ie6、ie7支持制定一个最佳实践方法。这个网站是针对老用户的,所以不支持这些浏览器是不可能的。

At the same time, we're trying to start incorporating modern coding practices into our work so we can get practice and fully understand capabilities. A specific area I want to touch on with you guys is handling fall backs for CSS3 backgrounds.

与此同时,我们正试图将现代编码实践融入到我们的工作中,以便我们能够得到实践并充分理解功能。我想和你们讨论的一个具体领域是处理CSS3背景的后退。

We have 2 choices here, if we're to use CSS3 backgrounds and not add extraneous wrapping tags for backgrounds:

如果我们使用CSS3背景而不为背景添加额外的包装标签,我们有两个选择:

  • Use :after, :before etc. pseudo elements for adding multiple backgrounds to elements. (this is the choice we've made for now)
  • 使用:after,:before等伪元素为元素添加多个背景。(这是我们现在做出的选择)
  • Use CSS3 multiple background specifications
  • 使用CSS3多重背景规范

This produces more elegant markup and is certainly a step in the right direction. But what about browsers that don't support these features?

这将产生更优雅的标记,而且无疑是朝着正确方向迈出的一步。但是那些不支持这些特性的浏览器呢?

Modernizr.js tells us to check for specific support and then write fallbacks:

Modernizr。js告诉我们检查具体的支持,然后写回:

Modernizr.load({
  test: Modernizr.geolocation,
  yep : 'geo.js',
  nope: 'geo-polyfill.js'
});

However, we're not given much guidance on the actual fallbacks for specific features. So, in the case of something like CSS3 backgrounds, what would be an effective fallback strategy?

但是,我们没有得到关于特定特性的实际回退的指导。那么,在CSS3这样的背景下,什么是有效的退步策略呢?

Would we (for example) use jQuery to wrap those extra tags we need (ie btn-container, nav-container, etc.) around nav items, buttons and containers in order to have extra elements to add style attributes to?

我们(例如)会不会使用jQuery将我们需要的额外标签(如btn-container、nav-container等)包装在nav项目、按钮和容器周围,以便有额外的元素添加样式属性?

3 个解决方案

#1


2  

About the CSS3 multiple backgounds and/or background gradients I think there is an approach better than those you proposed: CSS3 Pie.

关于CSS3多重背景和/或背景梯度,我认为有一种方法比你提出的更好:CSS3派。

This way you will be able to use all those nice effects also in IE6, 7 and 8 (including also border-radious) without any Javascript intervention.

通过这种方式,您将能够在IE6、7和8中使用所有这些良好的效果(包括边界辐射),而无需任何Javascript干预。

#2


2  

1. Fail gracefully. Certain complex elements can be hidden with CSS and revealed upon page-load with Javascript depending on the browser as one example.

1。优雅地失败。某些复杂的元素可以隐藏在CSS中,并在页面加载时显示出来,这取决于浏览器的一个例子。

2. Conditional style-sheets or Javascript fixes. Spend a lot of time fixing each problem in each browser and write a style-sheet just for it. Also, you could try various Javascripts that claim to bring older browsers into compliance. I've tried this Javascript but it seemed to conflict with jQuery. CSS Pie is another option to bring rounded corners to older browsers.

2。条件样式表或Javascript修复。花大量时间在每个浏览器中修复每个问题,并为其编写一个样式表。此外,您还可以尝试各种声称使旧浏览器符合要求的Javascript。我尝试过这种Javascript,但它似乎与jQuery发生了冲突。CSS Pie是为旧浏览器带来圆角的另一种选择。

3. Ignore older browsers. Do nothing special for older browsers. People on IE6/7 already see the world differently than everyone else. Alternatively, do nothing special for older browsers but actively avoid overly complex functions & features. Optionally, you can add a nifty "upgrade notification" message with little effort.

3所示。忽略老版本浏览器。对旧浏览器不做任何特殊处理。在IE6/7上,人们对世界的看法与其他人不同。另外,对于老版本的浏览器不做任何特别的事情,而是积极地避免过于复杂的功能和特性。您可以随意地添加一个漂亮的“升级通知”消息,而不需要花费多少力气。

#3


1  

Would we (for example) use jQuery to wrap those extra tags we need (ie btn-container, nav-container, etc.) around nav items, buttons and containers in order to have extra elements to add style attributes to?

我们(例如)会不会使用jQuery将我们需要的额外标签(如btn-container、nav-container等)包装在nav项目、按钮和容器周围,以便有额外的元素添加样式属性?

That is certainly one valid fallback approach. Depending on the design and the elements in question, though, you might find that simply supplying the primary background is enough to yield a decent-looking and perfectly functional, though not visually identical, component.

这当然是一种有效的退步方法。不过,根据设计和相关元素的不同,您可能会发现,仅仅提供主背景就足以生成外观得体、功能完美的组件(尽管在视觉上并不完全相同)。

"Supporting" older browsers shouldn't always mean "taking great pains/writing tons of extra code to insure a near visual match." It is difficult but not impossible to ramp up a QA team so that they understand the concept of Progressive Enhancement as it can be applied to aspects of pure visual presentation.

“支持”旧浏览器不应该总是意味着“付出巨大的努力/编写大量的额外代码以确保近乎视觉上的匹配”。提高QA团队是困难的,但也不是不可能的,这样他们就能理解渐进增强的概念,因为它可以应用到纯视觉呈现的各个方面。


推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 在JavaScript中,函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最后一个有效。如果调用函数时传入的参数个数与函数定义时的参数个数不符,会出现不同的情况。函数调用时,传入的参数个数少于函数定义时的参数个数,未传入的参数会被当做undefined处理,可能会导致错误。而传入的参数个数多于函数定义时的参数个数,多余的参数不会被使用,但不会报错。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • jQuery实现简单的动画效果及用法详解
    本文详细介绍了使用jQuery实现简单动画效果的方法,包括显示/隐藏、向上收缩/向下展开、淡入/淡出、自定义动画等。同时提供了具体的用法示例,并解释了参数的含义和使用技巧。通过本文的学习,读者可以掌握如何使用jQuery实现各种动画效果,为网页增添生动和互动性。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
author-avatar
笑竹舞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有