自学CSS碰到的“坑”(1):inline-block间隙

一开始我想设置一个导航栏,宽度充满整个屏幕的,每个子导航的宽度相同,均分导航栏的宽度,效果图如下(为了说明均分,我给每个子导航特意加了背景颜色):

然后我开始写HTML代码,很简单啦,如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset = "utf-8">
 5     <title>inline-block</title>
 6 </head>
 7 <body>
 8     <ul class="main-nav">
 9         <li><a href="#">Home</a></li>
10         <li><a href="#">Pros</a></li>
11         <li><a href="#">News</a></li>
12         <li><a href="#">Jobs</a></li>
13     </ul>
14 </body>
15 </html>

然后开始设置CSS代码:

1 body{margin: 0 auto;}
2 .main-nav{width:100%;font-size:20px;height: 30px;line-height: 30px;text-align: center;background-image:linear-gradient(black,#ccc,black) ;           margin: 0;padding: 0;}
3 .main-nav li{display: inline-block; list-style:none;height: 100%;width:25%;}

发现结果变成了下面这样:

li各占宽度的25%,不应该是像效果图那样平铺一整行吗?看到li之间有空隙,我以为是margin或padding等造成的,我就把li元素的margin和padding都设置为0,发现并无卵用。

然后就各种查资料,才得知:HTML中的换行符、空格符、制表符等空白符,字体大小不为0的情况下,空白符占据一定宽度,使用inline-block会产生元素间的空隙;可以使用word-spacing设置负值来解决,但是空隙会随着字体大小变化而变化,当字体大小改变了,word-spacing的值也得重新设置;或者使用float方法,更简单易一些。针对我的问题,把.main-nav设置{word-spacing:-10px;}或者.main-nav li设置{float:left;}就解决了。

有关inline-block更深入的了解,推荐参考脚本之家《带你深入剖析inline-block属性值的前世今生》

时间: 2024-10-12 22:13:02

自学CSS碰到的“坑”(1):inline-block间隙的相关文章

CSS display:inline|block|inline-block差异

display:inline|block|inline-block三属性的区别和联系,block就是将元素显示为块级元素,inline就是将元素 显示为行内元素,CSS display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递.旁边的内联对象会被呈递在同一行内,允许空格. 详解CSS display:inline|block|inline-block的区别 ◆CSS display:block CSS display:block就是将元素显示为块级元素. blo

在自学css开始就遇到问题,“链入外部样式表”在多浏览器显示问题

在自学css开始就遇到问题,"链入外部样式表"的习题,代码如下:A.被链入的CSS文件代码.css<style  type="text/css"><!--h1{background:gray;text-align:center;font-family:隶书}h3{background:blue;text-align:center;font-family:隶书}p{background:green;text-align:center;font-fam

inline,block,inline-block解析

display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. display:inline就是将元素显示为行内元素. inline元素的特点是:  和其他元素都在一行上: 高,行高及顶和底边距不可改变: 宽度就是它的文字或图

CSS 问题 中 li{display:inline;}的作用

<html><head><style type="text/css"> ul{list-style-type:none;width:100%;padding:0;margin:0;float:left;} a{text-decoration:none;float:left; width:120px;font-size:15px;border-right:1px white solid;color:white;padding:3px 8px;} a:h

inline block inline-block总结

一.block表示块级元素,其元素通常会单独成一块,独占一行: 二.inline表示内联元素,不会产生换行,其排版会在一行显示,直到一行被占满. 三.常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等:常见的内联元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR        等. 四.一般使用display:block与display:inline来改变元素的

Oracle RAC安装过程中碰到的“坑”和关键点(二)

(1) 依赖包的安装 Linux下安装Oracle,除了系统配置参数,我觉得依赖包的安装是另一个比较琐碎的操作. 本次安装碰到了几个包的问题: (a) rpm -Uvh gcc-4*提示: 02. error: Failed dependencies: 03.    cloog-ppl >= 0.15 is needed by gcc-4.4.7-4.el6.x86_64 04.    cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.x86_64 不

总结在移动端碰到的坑

一.安卓设备的select options的坑,尽量使用各浏览器内核都支持的api 在添加 OPTION 元素时 如果需要向指定索引前插入 OPTION,可以使用 options.add(option, index): 如果需要向 SELECT 尾部添加 OPTION,可以使用 options.add(option): 如果需要向指定索引处添加(或更改) OPTION,可以使用 options[index] = option. 在删除 OPTION 元素时 如果想删除指定索引处的 OPTION

运行Appium碰到的坑们

运行Appium的时候,碰到的那些坑 1. java命令会出现error:could not open ...jvm.cfg 出现这种情况大多是因为电脑上之前安装过JDK,卸载重装之后,运行java命令会出现error:could not open ...jvm.cfg的错误. 打开系统环境变量,查看PATH,会看到诸如此类的配置信息:     %SystemRoot%\system32;%SystemRoot%;......%JAVA_HOME%\lib;%JAVA_HOME%\bin 原因:

Oracle RAC安装过程中碰到的“坑”和关键点(一)

在物理机上使用虚机搭建RAC环境时碰到了很多"坑"和关键点,这里慢慢一一回味总结下. 物理机:Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz,8G内存 虚拟机软件:VMware ServerVersion 2.0.2 数据库软件:Oracle 11.2.0.1.Grid 虚机操作系统:Oracle Linux 6.2 虚机安装规划:本地硬盘20G,内存2G,共享磁盘共有4块:2块VOTE,各1.2G,2块数据盘,各5G (1) 虚拟机本地磁盘和共享磁盘