【问题标题】:how to prevent overlapping empty span tags?如何防止重叠的空跨度标签?
【发布时间】:2010-12-24 00:28:24
【问题描述】:

基本上,我有一个 div 容器,有两个主要的 span 标签。第一个跨度标签用于菜单,其中我有第 1 页跨度、第 2 页跨度等。每个页面跨度都有一个 display:block 和一个背景图像(这是它的唯一目的,没有首选内容)。

我的问题是它们重叠。我已经确保主菜单跨度足够大。

【问题讨论】:

  • 跨度没有进入跨度,你应该使用 div 作为容器...
  • 显示一些代码...
  • 提供 html/css 示例是一种很好的方式。例如,您始终可以使用jsfiddle.net
  • @darma 所说的,尤其是因为无论如何您都将跨度设置为display:blockspan 是内联元素,而 div 本质上是块级元素。

标签: html css


【解决方案1】:

所以,如果我理解正确,你有这样的事情:

<div id="container">
  <span id="menu">
    <span>Item 1</span>
    <span>Item 2</span>
    <span>Item 3</span>
  </span>
  <span>
    Something else...
  </span>
</div>

问题可能是您试图在原生内联的跨度内渲染一个框(带有 display:block 的跨度)。因此,您可能会从实际使用盒子内部的盒子中受益。我建议这样。

按照你的风格:

     ul#menu{
       display: block;
       padding: 0;
       list-style: none;
       overflow: hidden;
     }

     #menu li{
       float: left;
       padding-right: 20px;
     }

在您的标记中:

<div id="container">
  <ul id="menu">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
  </ul>
  <span>
    Something else...
  </span>
</div>

这样,您可以在标记中保留语义,说明菜单实际上是一个列表,但您正在渲染一些看起来像水平导航的东西。

框内的内联元素应该总是能正常工作,但反过来你会在某些浏览器中发现一些时髦的效果。

【讨论】:

  • 迂腐更正:问题是div 容器,而不是span。在您的 CSS 中,您应该将 ul 更改为 #menu 并将 li 更改为 #menu li;你也有pading: 0;
猜你喜欢
  • 2015-09-21
  • 2013-01-15
  • 1970-01-01
  • 2017-02-01
  • 2013-08-14
  • 1970-01-01
  • 2012-11-11
  • 2017-07-08
  • 2013-11-15
相关资源
最近更新 更多