Answers:
对不起,如果这是旧的,但我刚刚找到了解决方案。
尝试将其设置font-size
为0。这样,图像之间的空白宽度将为0,并且图像不会受到影响。
不知道这是否适用于所有浏览器,但我尝试使用Chromium并尝试使用某些<li>
元素display: inline-block;
。
em
单元的布局。
font-size
为0表示您em
在那之后不能将其用于可扩展设计。对于某些人来说,这个答案是没有用的。
您可以使用注释。
<img src="..." alt="..."><!--
--><img src="..." alt="..."><!--
--><img src="..." alt="..."><!--
--><img src="..." alt="...">
我会担心并排放置一系列图像的语义。
font-size:0
在很多情况下都是可怕的,因为您失去了继承权。是的,您可以使用rem
单位,但是,媒体查询仍将停止该元素的功能,并且您将必须全部对其进行修改
您有两种选择,而无需使用CSS进行近似处理。第一种选择是使用javascript从标记中删除仅包含空格的子代。一个更好的选择是利用空白可以存在于标签内部而没有含义的事实。像这样:
<div id="[divContainer_Id]"
><img src="[image1_url]" alt="img1"
/><img src="[image2_url]" alt="img2"
/><img src="[image3_url]" alt="img3"
/><img src="[image4_url]" alt="img4"
/><img src="[image5_url]" alt="img5"
/><img src="[image6_url]" alt="img6"
/></div>
Flexbox可以轻松解决此旧问题:
.image-wrapper {
display: flex;
}
有关flexbox的更多信息:https ://css-tricks.com/snippets/css/a-guide-to-flexbox/
{ flex-direction: row; flex-wrap: nowrap; }
可以添加以提高可读性。
flex-direction: row
和flex-wrap: nowrap
,无论如何它们都是默认值。保持简单通常是最好的!而且,实际上大多数时候用户会想要flex-wrap: wrap
。
经过大量的研究,反复试验,我发现一种似乎可以正常工作的方法,不需要手动在子元素上手动重新设置字体大小,从而使我可以在整个文档中使用标准化的em字体大小。
在Firefox中,这非常简单,只需word-spacing: -1em
在父元素上进行设置即可。出于某种原因,Chrome忽略了这一点(据我测试,无论值如何,它都会忽略字距)。因此,除此以外,我还添加letter-spacing: -.31em
了父母和letter-spacing: normal
孩子。em的这一部分仅是您的em大小标准化后的空间大小。Firefox反过来会忽略字母间距的负值,因此不会将其添加到单词间距中。
我在Firefox 13(win / ubuntu,Android 14),Google Chrome 20(win / ubuntu),ICS 4.0.4和IE 9上的Android浏览器上对此进行了测试。我很想说这也可以在Safari上运行,但我真的不知道
这是一个演示http://jsbin.com/acucam
word-spacing: -1em
样式似乎使单词在当前版本的Chrome中重叠。
我来不及了(我只是问了一个问题,并在相关章节中找到了答案),但我认为display:table-cell; 是更好的解决方案
<style>
img {display:table-cell;}
</style>
<img src="img1.gif">
<img src="img2.gif">
<img src="img3.gif">
唯一的问题是它将无法在IE 7和更低版本上运行,但多数民众赞成可以通过黑客修复
display: table-*
阅读器会进行语义解释,并像用户正在浏览表一样读出。
使用CSS样式表来解决此问题,例如以下代码。
[divContainer_Id] img
{
display:block;
float:left;
border:0;
}
在Firefox 3.5 Final上进行测试!
PS。您的html应该是这样的。
<div id="[divContainer_Id]">
<img src="[image1_url]" alt="img1" />
<img src="[image2_url]" alt="img2" />
<img src="[image3_url]" alt="img3" />
<img src="[image4_url]" alt="img4" />
<img src="[image5_url]" alt="img5" />
<img src="[image6_url]" alt="img6" />
</div>
元素之间的空格仅由HTML编辑器放置在此处,用于视觉格式化。您可以使用jQuery删除空格:
$("div#MyImages").each(function () {
var div = $(this);
var children= div.children();
children.detach();
div.empty();
div.append(children);
});
这将分离子元素,在再次添加子元素之前清除剩余的空白。
与该问题的其他答案不同,使用此方法可确保保留继承的css display
和font-size
值。也不需要使用float
,那么麻烦clear
。当然,您将需要使用jQuery。
我个人喜欢接受的答案,它说明没有确切的方法可以做到这一点,而不是不使用某种形式的技巧。
对我来说,这是一个令人烦恼的问题,有时可能使您浪费一个小时,想知道为什么例如一排复选框未全部正确对齐。我不记得了...但似乎没有:(
至于下一个最佳答案,就是使用font-size ...对我来说这是一个令人讨厌的技巧,稍后您会想知道为什么您的文本没有显示出来,这会给您带来麻烦。
我通常使用PHP进行很多开发,并且在我生成复选框网格的情况下,PHP生成的内容消除了此问题,因为它没有插入任何空格/空格。
简而言之,我建议要么将所有图像都放在一行上,要么使用服务器端脚本来生成内容/图像。
受Quentin答案的启发,您还可以在下一个标签的开始位置旁边放置“>”。
<img src="..." alt="..."
/><img src="..." alt="..."
/><img src="..." alt="..."
/><img src="..." alt="..."/>
从语义上讲,不是最好使用有序列表或无序列表,然后使用CSS对其进行适当的样式设置?
<ul id="[UL_ID]">
<li><img src="[image1_url]" alt="img1" /></li>
<li><img src="[image2_url]" alt="img2" /></li>
<li><img src="[image3_url]" alt="img3" /></li>
<li><img src="[image4_url]" alt="img4" /></li>
<li><img src="[image5_url]" alt="img5" /></li>
<li><img src="[image6_url]" alt="img6" /></li>
</ul>
使用CSS,您可以随意设置样式,并消除书籍之间的空白。
{strip}
。其他模板引擎应具有类似的标签。