【问题标题】:CSS styling with JavaScript issues带有 JavaScript 问题的 CSS 样式
【发布时间】:2015-12-17 23:07:29
【问题描述】:

所以我试图在下面的 sn-p 代码中更改我的 h1 标题的边距,使用 JavaScript 以确保准确性,并且因为 CSS 不支持 h1 marginauto 属性.为此,我使用document. 对象添加边距。我会使用更高级的 JavaScript 将窗口的宽度分成两半并将 h1 标题定位在那里,但是如果像这样的简单代码:

document.getElementsByTagName("h1")[0].style.marginLeft = "500px";

不起作用,那有什么意义呢?谁能向我解释为什么这不起作用并给我一个合适的解决方案?提前致谢。

更新

似乎代码在函数中调用时决定工作,而不是在它自己遗漏时决定工作。有什么帮助吗?

【问题讨论】:

  • 我的第一个想法是做h1 { display: inline-block; margin: auto },但如果你想居中,就做text-align:center
  • 在您的 JS 示例中将 500px 括在引号中。
  • 啊,我做了 text-align:center 并达到了我想要的结果。我相信它不起作用,但事实证明我犯了最愚蠢的错误,拼写“中心”错误。尽管如此,我仍然不明白为什么上面的 JavaScript 示例不起作用。事实上,由于某种原因,似乎无法使用 JavaScript 进行样式编辑,而且我的工作中看不到任何语法错误。

标签: javascript html css margin html-heading


【解决方案1】:

您必须将 500px 测量值放在引号中,如下所示:

document.getElementById("qwert").style.marginLeft = "500px";

如果你解释你更大的问题,可能这也可以完全用 CSS 解决,而不必使用 JS。


现在,您已经完全改变了您在问题中提出的问题(您不应该在这里这样做),我将尝试解决您提出的新问题。

如果代码仅在函数中调用时有效,那么您可能会遇到语法错误或计时错误。我的猜测是,当代码不在函数中时,您在 DOM 元素被解析并出现之前就执行得太早了。

【讨论】:

  • 我更大的问题是我想将 h1 标签居中。我确实尝试了上述方法,但再一次,它不起作用。如有必要,我可以链接整个代码吗?
  • @HuzaifahFarooq - 我不知道您的文档可能有什么 CSS 上下文,但在一个简单的文档中,这就是在 h1 标签中居中文本所需的所有 CSS:h1 {text-align: center;}。见演示here
  • @HuzaifahFarooq - 我们可能不想看到你的整个代码。该站点要求您将问题提炼为重现或说明问题所需的最少代码量,然后将该代码粘贴到您的问题中。您可以包含对整个网站的引用,但这不应是对相关代码的唯一引用。
  • @HuzaifahFarooq - 当您编辑您的问题并完全改变您现在提出的问题时,我们感到非常沮丧。这不是这个网站应该如何工作的。我试图在我的答案中添加一些内容以解决您的最新更改,但是一旦我们回答了您最初提出的问题并且您遇到了新问题,您应该提出一个新问题。这不应该是一个正在运行的对话框。你问一个问题,得到一个答案,然后继续。如果您有更多后续问题,请提出新问题。
  • 文本对齐已经居中,这不是我想要实现的。我试图将文本居中在我的窗口中间,而不是在我的实际 h1 中间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 2017-01-01
  • 2013-05-24
相关资源
最近更新 更多