【问题标题】:CSS em assistance needed需要 CSS em 帮助
【发布时间】:2012-12-01 16:40:52
【问题描述】:

我目前正在设计一个带有 em 单位的网页。我想我并没有像我想象的那样理解它,因为在我尝试将两个单独的 span 标签与 margin-left 对齐时出现了问题。它们被放置在我的标题的左上角。使用 display:block 将它们放置在彼此之上。当我使用 margin-right 来对齐 span 标签时,较大的 span 和较小的标签没有正确对齐。我使用了相同的数字作为margin-right,但它们仍然搞砸了。

  • 这是因为我使用的是 em 吗?
  • 我该如何解决这个问题?

我将在下面粘贴我正在使用的代码,以便您了解我正在使用什么。希望我已经解释得够清楚了。

HTML

    <div class="header1">
      <span class="title">Title goes here</span>
      <span class="subtitle">This is the subtitle</span>
    </div>

CSS

body {
    color: #333;
    font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
    font-size: 62.5%; /* 10px */
    line-height: 1.28;
}
.main1 {
  width: 96em;
  /* horizontally center the website layout */
  margin: 0 auto; margin-top: .8em;
  text-Align: left; /* override body {text-align:center} */
}
div.header1 {
  clear: both;
  width: 100%;
  height: 9em;
  background: #ff0000;
  color: #fff;
}
.title {
  font: small-caps 700 3.7em "Goudy Old Style", Garamond, "Big Caslon", "Times New Roman", serif;
}
.subtitle {
  font-weight: lighter;
  font-size: 1.4em;
}

【问题讨论】:

  • 您说您“使用 display:block 将其放置在另一个之上”,但这所做的只是将内联元素转换为块级元素。您需要使用position: absolute; 将它们放在一起。这样做,测试你有什么,然后回复你仍然有问题。
  • 如果你使用&lt;hgroup&gt;&lt;h2&gt;Title&lt;/h2&gt;&lt;h3&gt;Subtitle&lt;/h3&gt;会更有意义
  • 另外,display: block 部分在哪里? margin-left: 部分在哪里?您的代码中缺少它们!

标签: html css


【解决方案1】:

问题的描述非常混乱,并没有说明您想要实现什么以及您最好的尝试是什么。您指的是左边 右边距,但它们都没有在您的代码中为所讨论的元素设置。你指的是设置display: block,但是没有这个设置。

我假设您希望主标题出现在副标题上方(在 xy 平面上)。为此,您需要设置display: block,或者最好使用div 标记而不是span,或者最好使用适当的标题标记,例如h1h2,并适当考虑它们对垂直边距的默认影响和字体粗细(即,如果需要,在 CSS 中覆盖它们)。而且我假设您希望它们左对齐相同的数量。

您似乎没有考虑em 单位的相对性。根据定义,它等于元素的字体大小(font-size 除外,它等于父元素的字体大小)。

我怀疑您尝试使用相同的值(例如 1em)设置两个 span 元素的左边距。但这两个元素的含义并不相同,因为它们的 em 大小不同。如果你想将它们的左边距设置为第一个元素的字体大小,你可以设置

.title { margin-left: 1em; }
.subtitle { margin-left: 2.6429em; }

数字2.6429是字体大小的比例,从3.7/1.4计算得出。

在封闭的div 元素上设置左边距会更容易。它的字体大小等于body 元素的字体大小,所以如果你想将它设置为主标题的字体大小,你可以使用

div.header1 { margin-left: 3.7em; }

【讨论】:

    【解决方案2】:

    查看下面的链接,希望对你有帮助

    http://kyleschaeffer.com/best-practices/css-font-size-em-vs-px-vs-pt-vs/

    【讨论】:

    • 我以前看过这个网站,但我仍然不明白为什么我的数字会出现问题。
    • Link only answers are discouraged! 请写一个完整的答案,而不是仅仅提供一个链接。
    【解决方案3】:

    px: 像素(计算机屏幕上的一个点)

    em: 1em 等于当前字体大小。 2em 表示当前字体大小的 2 倍。例如,如果一个元素以 12 pt 的字体显示,那么 '2em' 就是 24 pt。 'em' 在 CSS 中是一个非常有用的单位,因为它可以自动适应读者使用的字体。

    see the reference

    因此,您可以使用px 代替em,这是一种很好的做法。

    希望对您有所帮助。谢谢。 !!

    【讨论】:

      猜你喜欢
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多