当前位置:  开发笔记 > 编程语言 > 正文

使用换行符时删除HTML元素之间的空格

如何解决《使用换行符时删除HTML元素之间的空格》经验,为你挑选了8个好方法。

我有一个大约10 img秒的页面.为了HTML的可读性,我想在每个img标记之间放置一个换行符,但这样做会在图像之间呈现空格,这是我不想要的.除了在标签中间而不是在它们之间打破之外,还有什么可以做的吗?

编辑:这是我到目前为止的截图.我希望书脊图像能够以随机组合显示,使用PHP.这就是我需要单独img标签的原因.

截图



1> opatut..:

对不起,如果这是旧的,但我刚刚找到了解决方案.

尝试将其设置font-size为0.因此,图像之间的空白区域的宽度为0,图像不会受到影响.

不知道这是否适用于所有浏览器,但我尝试使用Chromium和一些

  • 元素display: inline-block;.


    除了这将打破使用`em`单位的布局.
    我可以确认这适用于Mac OSX上的Firefox和Safari,以及Chrome.我不敢相信这不是最好的答案.多么棒的想法,我认为唯一真正回答问题的一个/给问问者他们正在寻找什么.
    将`font-size`设置为0意味着在此之后您无法使用`em`单元进行可扩展设计.对某些人来说,这个答案毫无用处.
    我还要查看Chris Coyier在他的页面上的"将字体大小设置为零"一节中的分析,以获取有关其他实例的一些详细信息,这可能不起作用:https://css-tricks.com/fighting-the -Space列直插间 - 嵌段 - 元素/

    2> edeverett..:

    你可以使用CSS.在图像上设置display:block或float:left将允许您定义自己的间距并根据需要格式化HTML,但会以可能适合或可能不适合的方式影响布局.

    否则,您正在处理内联内容,因此HTML格式很重要 - 因为图像将有效地像单词一样.



    3> Quentin..:

    你可以使用评论.

     ............
    

    我担心将一系列图像并排的语义.


    装饰图片属于CSS,不属于HTML!
    这取决于图像的装饰性.一个漂亮的边界?那应该是CSS.关于飞行的网站上的一系列飞机小照片?可能满足于不需要文本平等.

    4> Paul de Vrie..:

    你有两个选择,没有用CSS做大概的事情.第一个选项是使用javascript从标签中删除仅限空白的子项.一个更好的选择是使用空格可以存在于标签内而不具有意义的事实.像这样:

    img1img2img3img4img5img6



    5> William Gras..:

    Flexbox可以轻松解决这个老问题:

    .image-wrapper {
      display: flex;
    }
    

    有关flexbox的更多信息:https://css-tricks.com/snippets/css/a-guide-to-flexbox/


    如今,Flexbox是最干净,最简单的解决方案。我认为这应该是这里的最佳答案。`{flex-direction:row; flex-wrap:nowrap; 可以添加}`以提高可读性。

    6> Flatline..:

    经过太多的研究,试验和错误,我找到了一种似乎工作正常的方法,并且不需要手动重新设置子元素上的字体大小,允许我在整个doc中具有标准化的em字体大小.

    在Firefox中,这非常简单,只需word-spacing: -1em在父元素上设置即可.出于某种原因,Chrome忽略了这一点(就我测试而言,无论值如何,它都会忽略字间距).除此之外,我还加入letter-spacing: -.31em了父母和letter-spacing: normal孩子们.只有当您的em尺寸标准化时,em的这一部分才是空间的大小.反过来,Firefox会忽略字母间距的负值,因此不会将其添加到字间距中.

    我在Firefox 13(win/ubuntu,14 on android),Google Chrome 20(win/ubuntu),ICS 4.0.4和IE 9上的Android浏览器上进行了测试.我很想说这可能也适用于Safari,但我真的不知道......

    这是http://jsbin.com/acucam的演示


    `word-spacing:-1em`样式似乎使当前版本的Chrome中的单词重叠.

    7> Vladimir..:

    我太迟了(我刚问了一个问题,并在相关部分找到了薄)但我认为显示:table-cell; 是一个更好的解决方案

    
    
    
    
    
    

    唯一的问题是它不适用于IE 7和早期版本,但可修复黑客攻击


    可能会工作,但有些屏幕阅读器会在语义上解释`display:table-*`并读出就像用户正在导航表一样.

    8> Soul_Master..:

    使用CSS样式表来解决此问题,如下面的代码.

    [divContainer_Id] img
    {
        display:block;
        float:left;
        border:0;
    }
    

    alt text http://rabu4g.bay.livefilestore.com/y1pWoAOBMiLumd2iQTAreYjQCDIkHImh2g_b2g9k4AnxtDNrCjvzL6bK7skG8QKMRNWkMG7N8e5Xm7pgle3tdRJd2y08CnnoPLy/Capture.PNG

    在Firefox 3.5 Final上进行测试!

    PS.你的HTML应该是这样的.

    img1 img2 img3 img4 img5 img6


    他希望在"列"中有一行包含多个图像.这个答案实际上解决了这个问题,虽然"display:block"是多余的.
  • 推荐阅读
    乐韵答题
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有