Open david2tdw opened 4 years ago
有时候,我们需要将\<li>横向排列,而又为了能设置其宽度和高度,为其设置display:inline-block,相邻\<li>之间会出现8px的空白间隔,不是margin也不是padding。
<html> <head> <title>demo</title> <style type="text/css"> * { margin: 0; padding: 0; } li { width: 100px; height: 100px; display: inline-block; list-style: none; color: #32da5e; } #li1 { background: red; } #li2 { background: blue; } #li3 { background: yellow; } #li4 { background: black; } </style> </head> <body> <ul> <li id="li1">a</li> <li id="li2">b</li> <li id="li3">c</li> <li id="li4">d</li> </ul> </body> </html>
原因:
浏览器会把inline元素间的空白字符(空格、换行、Tab等)渲染成一个空格。而为了美观。我们通常是一个\<li>放在一行,这导致\<li>换行后产生换行字符,它变成一个空格,占用了一个字符的宽度。
解决:
<html> <head> <title>demo</title> <style type="text/css"> * { margin: 0; padding: 0; } ul { font-size: 0; } li { width: 100px; height: 100px; display: inline-block; list-style: none; color: #32da5e; font-size: 20px; } #li1 { background: red; } #li2 { background: blue; } #li3 { background: yellow; } #li4 { background: black; } </style> </head> <body> <ul> <li id="li1">a</li> <li id="li2">b</li> <li id="li3">c</li> <li id="li4">d</li> </ul> </body> </html>
<html> <head> <title>demo</title> <style type="text/css"> * { margin: 0; padding: 0; } ul { letter-spacing: -8px; } li { width: 100px; height: 100px; display: inline-block; list-style: none; color: #32da5e; letter-spacing: 8px; } #li1 { background: red; } #li2 { background: blue; } #li3 { background: yellow; } #li4 { background: black; } </style> </head> <body> <ul> <li id="li1">a</li> <li id="li2">b</li> <li id="li3">c</li> <li id="li4">d</li> </ul> </body> </html>
浅谈CSS中的之间的空白间隔问题
<div class="parent"> <div class="child"></div><!-- --><div class="child"></div><!-- --><div class="child"></div><!-- --><div class="child"></div> </div>
如何消除inline-block产生的元素间空隙
有时候,我们需要将\<li>横向排列,而又为了能设置其宽度和高度,为其设置display:inline-block,相邻\<li>之间会出现8px的空白间隔,不是margin也不是padding。
原因:
浏览器会把inline元素间的空白字符(空格、换行、Tab等)渲染成一个空格。而为了美观。我们通常是一个\<li>放在一行,这导致\<li>换行后产生换行字符,它变成一个空格,占用了一个字符的宽度。
解决:
浅谈CSS中的之间的空白间隔问题