【发布时间】:2012-12-08 02:48:37
【问题描述】:
<ul id="main">
<li class="the-dropdown-link"><a href="#">Main Link</a>
<ul id="dropdown">
<li>sdfsdf</li>
<li>sdfsdf</li>
</ul>
</li>
</ul>
ul#main{ margin:0; padding:0; list-style:none; float:right; width:100%;}
ul#main li.the-dropdown-link{float:left; width:140px; }
ul#main ul {position:absolute; display:none; padding:0;list-style:none;}
ul#main a{display:block;height:24px; width:140px;font-size: 14px; font-weight: 500; text-align: center; color: #ffffff; text-transform: uppercase; line-height: 26px;}
通过这个垂直下拉菜单,我可以在 ie7 中找到 <li> 之间的间隙。在进行研究时,我发现 IE7 在 </li> 和 <li> 之间创建了空格,但是我正在使用 php 生成我的列表,因此不能像大家推荐的那样将所有 <li> 放在同一行。
我尝试将所有列表元素添加到变量中并使用:
$first_list = preg_replace('~>\s+<~', '><', $first_list);
去掉空格,然后回显它。
我不知道该怎么办。
【问题讨论】:
-
PHP 不会输出换行符,除非你告诉它。在某些地方它们是隐含的(比如在多行 HEREDOC 中),但 PHP 不只是在换行符中拍打,因为你会输出像
</li>这样的结束标签。 -
你能澄清一下“我正在使用 php 生成我的列表,因此不能像大家推荐的那样将所有
- 放在同一行。”?
-
空白可能是问题,但并非总是如此。您是否使用 CSS 重置?您的 ul、li 或 a 元素上可能有一些默认边距或填充。
-
你是如何使用php生成的,为什么不能把它们放在同一行?您是否在获取 LI 时回显它们或将它们添加到数组中然后打印?你能给出生成/回显 LI 的代码吗?
-
line-height比height大2px,是故意的吗?