Html 在<;李>;s

Html 在<;李>;s,html,newline,html-lists,line-breaks,Html,Newline,Html Lists,Line Breaks,我有一个水平菜单,由元素组成,带有显示:inline 这些元素应该无缝地挨在一起 在源代码中,我希望将每个li放在一行上,以便于调试: <li class="item1 first"> ... </li> <li class="item2"> ... </li> ... ... 但是,如果在每个元素后添加\n,则菜单项之间会有间隙。我想这是我们想要的行为,但是有没有办法用一个巧妙的“空白”设置或其他什么来关闭它 编辑:我不能使用浮动,这是在

我有一个水平菜单,由
  • 元素组成,带有
    显示:inline

    这些元素应该无缝地挨在一起

    在源代码中,我希望将每个li放在一行上,以便于调试:

    <li class="item1 first"> ... </li>
    <li class="item2"> ... </li>
    ...
    
  • ...
  • 但是,如果在每个元素后添加
    \n
    ,则菜单项之间会有间隙。我想这是我们想要的行为,但是有没有办法用一个巧妙的“空白”设置或其他什么来关闭它


    编辑:我不能使用浮动,这是在CMS中,可以选择将列表项目居中


    CSS+float是您的朋友。

    HTML与空格无关-因此添加换行符应该没有效果。然而,一些浏览器的渲染引擎并不完全正确

    您可能要做的是添加

    float:左


    添加到您的li标签,使它们彼此相邻。

    您是否有能力编辑CSS?如果是这样,您可以尝试调整
  • 元素上的填充/边距。它看起来确实需要很多努力来提高可读性


    根据您使用的浏览器的不同,您可以将HTML整理好,这使您可以选择整理源代码,这对于调试可能非常有用,您可以避免呈现问题,但保持代码的可维护性,如下所示:

    <ul
      ><li>item 1</li
      ><li>item 2</li
      ><li>item 3</li
    ></ul>
    
    • 项目1
    • 项目2
    • 项目3

    它删除了空白,但在文本编辑器中编辑项目仍然很容易,前提是您的CMS不会弄乱您输入的标记

    我不能使用float,这是在CMS中,可以选择将列表项居中。亚当:当然,在
    内联
    模式中不会忽略空格。否则,你的句子中的单词之间就没有空格了。我不能使用float,这是在CMS中,可以选择将列表项目居中。嘿,这是个好主意!我想我会用这个。约翰,我也打算提出同样的建议。新行字符被视为空白,就像任何其他空白一样,大多数浏览器将其转换为单个空白,分隔单词或任何元素。如果将新行放入标记中,浏览器将不会呈现它。HTML Tidy不是一个选项,因为它是我正在调试的生产代码。不过,好主意。