Safari 5.1打破了CSS表格单元格间距

时间:2011-08-05 17:13:54

标签: html css safari drupal-7

我的网站在所有主流浏览器上都运行正常,直到更新到Safari 5.1。现在,主导航被破坏了。我在list元素中的anchor元素上使用display:table-cell,并且还使用font-size:0 hack来删除菜单元素之间的间距。有没有其他人遇到过这个问题并有他们可以提供的解决方案?

在: Before Image

在: After Image

CSS:

#navigation {
  padding-top: 7px;
}

#navigation ul.links, /* Main menu and secondary menu links */
#navigation .content ul /* Menu block links */ {
  margin: 0;
  padding: 0;
  display: block;
  font-size: 0; /* this is a hack so that the spacing between the menu buttons disappear
                   since they are inline-block elements, this should be unneccessary when
                   CSS3 is approved */
}

#navigation ul.links li, /* A simple method to get navigation links to appear in one line. */
#navigation .content li {
  display: inline-block;
  padding-right: 0;
  padding-left: 0;
  margin: 0;

  /* below is a fix for IE7 to get the main navigation items lined up correctly
   * in one row
   */
  zoom: 1;
  *display: inline;
}
#main-menu ul {
  width: 100%;
}
#main-menu li {
  width: 108px;
  text-align: center;
  padding-bottom: 7px;
  font-size: 11pt;
}
#main-menu a {
  display: table-cell;
  width: inherit;
  text-decoration: none;
  font-size: 0.9em;
  color: #035B9A;
  background-color: white;
  height: 30px;
  vertical-align: middle;
}

HTML:

<div id="navigation">
    <div class="section">
        <h2 class="element-invisible">Main menu</h2>
        <ul id="main-menu" class="links inline clearfix">
            <li class="menu-379 first"><a href="/about-scrubbed">About Us</a></li>
            <li class="menu-401"><a href="/" title="">Research</a></li>
            <li class="menu-385"><a href="/education">Education</a></li>
            <li class="menu-402"><a href="/" title="">Outreach</a></li>
            <li class="menu-403 active-trail active"><a href="/news" title="" class="active-trail active">News &amp; Events</a></li>
            <li class="menu-439"><a href="/people">People</a></li>
            <li class="menu-405"><a href="/" title="">Resources</a></li>
            <li class="menu-406"><a href="/" title="">Publications</a></li>
            <li class="menu-415 last"><a href="/partners">Partners</a></li>
        </ul>
    </div>
</div>

感谢。

请注意,这是一个Drupal 7网站。

我也自由而谦卑地承认我不是最好的CSS标记。我现在正在学习很多东西,而且我只是想凑进来。

4 个答案:

答案 0 :(得分:8)

对于那些遇到Safari问题的人和设置为显示的元素的维度:table;我能够通过删除填充并向子元素集添加填充来解决我的问题:table-cell;

当您尝试将padding添加到要显示的元素集时,Safari显然不喜欢它:table;回想起来,这是有道理的。

答案 1 :(得分:2)

通过使列表元素显示为块并将它们浮动到左侧来解决。

#navigation ul.links li, /* A simple method to get navigation links to appear in one line. */
#navigation .content li {
  display: block;
  float: left;
  padding-right: 0;
  padding-left: 0;
  margin: 0;

  /* below is a fix for IE7 to get the main navigation items lined up correctly
   * in one row
   */
  zoom: 1;
  *display: inline;
}

答案 2 :(得分:1)

您希望border-collapse:collapse元素上的display:table删除单元格间距。

答案 3 :(得分:0)

我拿了你的css和html,然后加入了css

body {
    background-color: gray;
}

我得到了following,看起来是正确的。

这是在Lion下运行的,它有Safari 5.1