需要CSS em帮助

时间:2012-12-01 05:58:05

标签: html css

我目前正在设计一个带有em单位的网页。我想我也不理解它,因为我尝试将两个单独的span标签与margin-left对齐时发生了问题。它们被放置在标题的左上角。使用display:block将它们放在一起。当我使用margin-right来对齐span标记时,较大的span和较小的标记未正确对齐。我使用相同的数字作为保证金权利,但他们仍然搞砸了。

  • 这是因为我正在使用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;
}

3 个答案:

答案 0 :(得分:2)

对问题的描述非常混乱,并没有解释您想要实现的目标以及您最好的尝试。您可以参考左右边距,但它们都没有在您的代码中为所讨论的元素设置。您可以参考设置display: block,但没有这样的设置。

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

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

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

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

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

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

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

答案 1 :(得分:0)

查看以下链接,希望这对您有所帮助

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

答案 2 :(得分:0)

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

em: 1em等于当前的字体大小。 2em意味着当前字体大小的2倍。例如,如果元素显示为12 pt的字体,则'2em'为24 pt。 'em'是CSS中非常有用的单元,因为它可以自动适应阅读器使用的字体。

see the reference

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

希望它会对你有所帮助。谢谢。 !!