当前位置: 首页 > 面试题库 >

使用绝对定位是否被认为是不好的做法?

阎自怡
2023-03-14
问题内容

我正在开发一个网页,在那里我为类似国际象棋的游戏布置一块面板,以及几个棋盘托盘。所有操作都使用HTML(使用jQuery在游戏进行时进行动态更新)完成。在某个地方,我想到在页面中使用元素的绝对定位被认为是不好的做法,并且最好使用相对定位。

经过相对定位的困扰了很长时间之后,我意识到板元件的绝对定位要容易得多,而且要正确得多。

有谁知道相对定位优于绝对定位的原因吗?在决定采用哪种方法时,您是否适用任何准则或经验法则?


问题答案:

对于像您正在开发的象棋这样的国际象棋,使用绝对定位本质上没有错。如您所说,相对定位和法向流布局使此类任务变得非常困难。

当然,如果您要开发更标准的网站,例如提供某些公共服务的网站,则绝对定位将覆盖浏览器的默认流布局,因此将降低许多用户的可访问性。在这种情况下,我会避免这种情况。

话虽如此,绝对定位的一个鲜为人知的好处是它允许 最接近的“定位”父元素 进行局部绝对定位。

注意: “定位”元素可以是以下任意一种:相对,固定,绝对或粘性。

解释:

<div id="parentDIV" style="position:relative">
    <div id="childDIV" style="position:absolute;left:20px;top:20px;">
          I'm absolutely positioned within parentDIV.
    </div>
</div>

在这里,childDIV实际上位于的左侧parentDIV,而 不是 顶部的20px ,而 不是
整个文档的位置。这样可以很好地精确控制页面上的嵌套元素,而无需牺牲整体页面的布局。

因此,回答您的问题(相对定位优于绝对定位):我不相信有一个正确的答案,这取决于您需要构建的内容。但是,在一般定位(绝对或相对)与默认流布局中,我的方法如上所述。



 类似资料:
  • 我有一个问题,关于什么是正确的做法,使用SwingU实用程序的调用稍后方法。 所以首先,我想确认我理解正确。 据我所知,对GUI的更改必须在EDT上完成,因为Swing组件不是线程安全的。invokeLater方法将Runnable作为参数,该Runnable中包含的任何内容都将在EDT上运行。因此,对Swing组件的任何调用都被放入一种队列中,在EDT上一次执行一个。 有了这些,我的问题是:使用

  • 问题内容: 我们正在将两个系统集成到一个Intranet中,使用CORS作为在两个域之间进行AJAX调用的一种方式。 这被认为是不良做法吗?一般认为CORS是不良做法吗? 问题答案: CORS不是坏习惯。它支持所有主要的浏览器,而且越来越多的API都支持它。实际上,如果您的公共资源不在防火墙后面,则可以将标头放在资源上是安全的。 但是,对于服务器上CORS的角色有些困惑。CORS应该仅指示特定资源

  • 问题内容: 我知道匿名类在实现侦听器和类似内容时可以节省类型。他们试图替代闭包的某些用法。 但是社区如何看待这种语言功能的价值呢?它是否有意义,您是否定期使用它?它会使代码更清晰,更易理解和更可维护吗?还是匿名类使代码的可读性降低? 您的意见是什么,请方便地举一些例子/论据来支持您的意见? 问题答案: 我倾向于在不需要为完成某些任务而拥有完整类的情况下使用匿名内部类。例如,如果我想实现一个或,但是

  • 问题内容: 为什么每个人都告诉我编写这样的代码是一种不好的做法? 我省略花括号的最大论据是,有时花括号可能是花括号的两倍。例如,以下代码为C#中的标签绘制发光效果。 您还可以获得链接usings在一起的额外好处,而不必缩进一百万次。 花括号的最常见参数涉及维护编程,以及在原始if语句及其预期结果之间插入代码会引起的问题: 问题: 想要使用该语言提供的更紧凑的语法是错误的吗?设计这些语言的人很聪明,

  • 使用DTO作为API模型是很常见的。通常,您需要在之后将这些DTO映射到其他模型。我将用下面的例子让它变得非常简单:

  • 我听到一些人说,即使在使用获得种子之后,使用也是很糟糕的。为什么会这样?我想知道事情是怎么发生的...抱歉,我又问了一个问题..但是,有什么办法可以替代这一点呢?