Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery位置与CSS_Jquery - Fatal编程技术网

jQuery位置与CSS

jQuery位置与CSS,jquery,Jquery,我是一名服务器人员,拥有有限但不断增长的客户端(javascript)能力 我有一个应用程序,它需要六个DIV标签,里面有背景图片和文本,所有这些都放在更大的图片上。考虑带有翻滚和文本的透明图像。所有这些都是动态的,具体取决于服务器端模板和配置 我发现使用核心jQuery position()方法以编程方式定位这些元素要比尝试纯CSS和基于标记的方法容易得多。使用CSS在DIV中垂直居中文本有很多方法,但是position()使这很容易 我的问题: 广泛使用position()的方法与使用更多纯

我是一名服务器人员,拥有有限但不断增长的客户端(javascript)能力

我有一个应用程序,它需要六个DIV标签,里面有背景图片和文本,所有这些都放在更大的图片上。考虑带有翻滚和文本的透明图像。所有这些都是动态的,具体取决于服务器端模板和配置

我发现使用核心jQuery position()方法以编程方式定位这些元素要比尝试纯CSS和基于标记的方法容易得多。使用CSS在DIV中垂直居中文本有很多方法,但是position()使这很容易

我的问题:


广泛使用position()的方法与使用更多纯标记(传统HTML和CSS)的方法相比,有效性如何?我意识到,最终,大多数jQuery方法都会转换成样式和CSS。

jQuery的position方法只是转换成一些CSS样式,即
position:absolute;顶部:Ypx;左:Xpx。听起来,在您的案例中定位文本的唯一正确方法是使用那些CSS样式,但请记住那些关闭了javascript的人

或者,您可以动态修改每个div标记:


。。。。这里的文字

按语法这样做的最坏后果是,当代码执行并更新样式时,用户可能会看到闪烁

另一个结果是,对于需要更新代码的其他人来说,使用Javascript可能更难理解


我建议尽可能多地使用CSS,然后对不值得花时间去弄清楚的事情使用position,比如垂直居中

我想把你的网站分成至少3个不同的层次,即标记、行为和样式/定位。这意味着将3种语言/脚本放在单独的文件中:

* Markup: HTML
* Behaviour: Javascript or/and jQuery or other script
* Styling/postioning: CSS
jquery在设计样式时所做的是将样式放在HTML标记中,这在web开发中并不是一个好的实践。虽然你不能真正逃避它,尤其是在做动画或一些特效的时候


但是仍然不要尝试通过jquery添加css,除非在执行特殊效果、动画等时。在css文件中使用大部分样式。

尝试使用每种技术。使用CSS定义样式类,然后使用jQuery操作object.Class以实现所需的样式。通过这样做,您已经使用CSS创建了样式,并使用jQuery/JavaScript进行了操作,并且没有将函数与样式混合使用。

您问题的核心是

功能分离 “行为层”)从网页的 结构/内容和介绍

特别是

渐进增强使用web 以分层方式使用的技术 允许每个人访问基本的 网站的内容和功能 页面,使用任何浏览器或Internet 连接,同时还提供 具有更好的带宽或更高级 浏览器软件—增强版 这是本页的最后一页


你要问自己的是,要达到js开发的这一理想顶峰,你要走多远。有时候用这种方式编写代码是很愚蠢的(是的,我说了)。在一个完美的世界里,无限的截止日期,闪电般的手指,不断扩展的思维,你可以而且应该在每一种可能的情况下完全不引人注目地编写代码

让我再次强调,一个人应该尽可能努力实现这一目标。但我个人也有例外

  • 内部应用程序:当我完全控制部署平台时,我会非常自如地使用position属性或任何轻微违反不引人注目理想的行为。特别是如果一个项目的预算很低。这里的关键是确保您或您为之编码的人知道这里的后备方案。(是的,您需要JavaScript/Browser X来运行此应用程序)
  • 预算/时间:如果我遇到重大困难,并且在ie6中遇到一些琐碎的CSS错误,有时这是一个正确的决定

是的,可以使用position属性,但要尽量少用。最重要的部分是你的代码,或者你认为合适的优雅。如果站点/应用程序是可以忍受的,不需要javascript(),那么就使用它


jQuery/Javascript不足以取代CSS。如果你要在前端编码,你需要学习它。这是没有办法的。

我不确定我是否同意你的前两个断言。1) 预加载修复了这一问题。2) 乱码就是乱码。是的,CSS用户比JS用户多。。。但是jQueryPositionAPI比乱七八糟的CSS更容易理解,但你在最后一个问题上肯定是对的。尽可能多地使用CSS,如果太混乱,就退后一步。我最初的感觉是,与CSS方法相比,jQuery方法更容易理解,但这是程序员与标记人之间的对话。@Derek我所说的是什么,这取决于实际情况。如果你有时间,最好花点时间学习如何正确使用css。如果这对你没用,或者你因为浪费时间而赔钱,那就采取措施完成这项工作。这是一个基于你资源的判断。我认为网站本身大量使用javascript来影响服务器端和客户端的图像处理,这是一个很好的理由。对于大量使用javascript,我们能找到的唯一替代方法是开发一个广泛使用Flash的网站,我认为这是两个祸害中最糟糕的一个。优雅的降级和大量使用javascript并不是不兼容的。实际上,
优雅降级
是大量使用javascript的一种方式。我们的想法是尽可能多地使用javascript,但是在这样的情况下