IT入门 > 面试题 > css题库 > 第二章 >

IT入门 > 面试题 > css题库 > 第二章 >

li 与 li 之间有看不见的空白间隔是什么原因引起

  你会看到这个提示,那是因为你的系统无法识别某栏目的模型信息,或者你新建模型后,没为这个模型设计单独的模板。不同模型的文档浏览页的模板为:article_模型名字标识.htm 如“article_article.htm”,更多的信息你可以在频道模型管理的地方查看。
附加标题 内容:
模板调用标记:
题型:1单选,2多选,3填空,4问答,5排序 内容:
模板调用标记:
4
选项A 内容:
模板调用标记:
选项B 内容:
模板调用标记:
选项C 内容:
模板调用标记:
选项D 内容:
模板调用标记:
答案 内容:
模板调用标记:

浏览器的默认行为是把 inline 元素间的空白字符(空格换行 tab)渲染成一个空格,也就是我们上面的代码

换行后会产生换行字符,而它会变成一个空格,当然空格就占用一个字符的宽度。

 

解决方案

方法一:既然是因为<li>换行导致的,那就可以将<li>代码全部写在一排,如下

<div class="wrap">
  <h3>li标签空白测试</h3>
  <ul>
    <li class="part1"></li>
    <li class="part2"></li>
    <li class="part3"></li>
    <li class="part4"></li>
  </ul>
</div>

方法二:我们为了代码美观以及方便修改,很多时候我们不可能将<li>全部写在一排,那怎么办?既然是空格占一个字符的宽度,那我们索性就将<ul>内的字符尺寸直接设为 0,将下面样式放入样式表,问题解决。

.wrap ul {
  font-size: 0px;
}

但随着而来的就是<ul>中的其他文字就不见了,因为其尺寸被设为 0px 了,我们只好将他们重新设定字符尺寸。 方法三:本来以为方法二能够完全解决问题,但经测试,将 li 父级标签字符设置为 0 在 Safari 浏览器依然出现间隔空白;既然设置字符大小为 0 不行,那咱就将间隔消除了,将下面代码替换方法二的代码,目前测试完美解决。同样随来而来的问题是 li 内的字符间隔也被设置了,我们需要将 li 内的字符间隔设为默认。

.wrap ul {
  letter-spacing: -5px;
}

之后记得设置 li 内字符间隔

.wrap ul li {
  letter-spacing: normal;
}

难度:1入门级,2初级,3中级,4高级 内容:
模板调用标记:
1
专业分类 内容:
模板调用标记:
(责任编辑:zengmumu)
    广告位API接口通信错误,查看德得广告获取帮助