视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
liinside-block在IE11换行无效的原因
2020-11-27 15:08:58 责编:小采
文档
 近日在做一个网页标签列表,要求不能换行,一开始以为比较容易,三两下就把代码写完了,并且在Firefox和Chrome浏览器测试通过,不过,在IE11一看,却出人意料的没有达到预期效果,li inside-block 在IE11里竟然无效!照样换行!

li inside-block在IE11照样换行?

li inside-block 在IE11照样换行!为何无效?难道代码还要hack一下IE11?但我看别人网站里的写法并没有hack IE11。

其实代码挺简单,在Chrome和Firefox浏览器完全达到预期效果。

css核心代码如下:

ul li{
 display:inline-block;
 padding:3px 4px 3px 4px;
 margin:3px 3px 3px 0px;
}

使用 display:inline-block 可设置 li 列举不换行。

html核心代码如下:

<ul>
 <li>tag1</li>
 <li>tag2</li>
 <li>tag3</li>
</ul>

出来的效果应该是这样:

使用 display:inline-block 可设置 li 列举不换行

而不是这样:

无 display:inline-block 时 li 列举换行

在京东网页html代码找到IE11无效的原因

上述问题困扰了我好几天,一度放弃了 li 列举的这种代码方式而采用 div 的写法,但是还是心有不甘,因为 li 的写法才是正道,且代码更加简洁。

今天在京东网浏览手机,侧栏的标签列表吸引了我,通过查看其网页html源码,发现它也是用 li 列举使用 display:inline-block 来实现的。

京东的标签列表

我决意一定要从京东的这张网页上找到同时适用IE11的标签列表代码。

一刻不能再等了,立即动手。

在本地搭建的调试环境新建一html文件,把京东网页的html源码复制过来,接着采用“排除法”逐步删减代码,直至最后只剩下这个标签列举的DIV。

通过一段时间的代码删减工作,最后剩下的代码越来越少,答案也应该越来越明朗了。

功夫不负有心人,最后终于找到了答案!困扰多天的问题终于得以解决了!

原来是网页 <head></head> 里需要加入这句:

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

这句话的意思是,该网页不使用IE兼容性视图。

IE兼容性视图是使用低版本的IE浏览器来渲染网页,以免网页布局产生错乱,但现在我们明白了,兼容性视图会抹杀某些样式,使网页某些区块的布局不能达到预期效果。因此,在设计网页的时候,我们应该告诉IE浏览器不要使用兼容性视图来渲染此网页。

下载本文
显示全文
专题