Code
<header>
<ul>
<li><a href="">我的首页</a></li>
<li><a href="">GitHub</a></li>
<li><a href="">about me</a></li>
<li><a href="">所有内容</a></li>
</ul>
</header>
body,ul,h1{
margin: 0;
padding: 0;
}
li{
list-style: none;
}
a {
text-decoration: none;
}
header {
width: 1000px;
}
li {
padding: 25px;
text-align: center;
display: inline-block;
width: 200px;
}
li
元素横向排列,li
width:200px(200*4=800px)
;
左右padding为25px(25*8=200px)
;
总和1000px
;但是实际却超过了1000px。
搞不清楚为什么两个li
之间为什么不是紧挨着的
在Firefox中,1015px及以上可以一行显示...
但在Chrome中,1024px及以上时才可以做到一行显示;
我完全搞不懂了...通过Head First进行入门,但是回顾了一下,也没有任何关于这种情况的说明
这是inline-block的空白间隙问题
这些是一些空白字符,看不见,但是会占据一定的width
等
解决办法有很多
某处理方法 来自 http://www.w3cplus.com/css/fighting-the-space-between-inline-block-elements
.finally-solve {
letter-spacing: -4px;/*根据不同字体字号或许需要做一定的调整*/
word-spacing: -4px;
font-size: 0;
}
.finally-solve li {
font-size: 16px;
letter-spacing: normal;
word-spacing: normal;
display:inline-block;
*display: inline;
zoom:1;
}
具体处理方法 你可以看下 w3cplus上的文章 如何解决inline-block元素的空白间距
我试了一下
* { margin: 0; padding: 0; }
section { width: 1000px; border: 1px solid #000; }
li { text-align: center; list-style: none; display: inline-block; padding: 25px; width: 150px; height: 100px; line-height: 100px; margin-right: -8px; }
</style>
</head>
<body>
<section>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</section>
这个margin-right:-8px;
兼容 chrome firefox IE Edge 360
<header>
<ul>
<li><a href="">我的首页</a></li>
<li><a href="">GitHub</a></li>
<li><a href="">about me</a></li>
<li><a href="">所有内容</a></li>
</ul>
</header>
楼主, 当你吧块级元素
,转换成行内元素
的时候,有没有想过空格
会影响到排版呢?
就比如
<p><a href="">yyy</a><b>xxxxx<b></p>
<p><a href="">yyy</a> <b>xxxxx<b></p>
<p>
<a href="">yyy</a>
<b>xxxxx<b>
</p>
这3种情况显示的是一样?
如果你真看明白了我给你的例子, 那么你的问题就已经解决了。
这个未知间隙
, 就是空格
,也就是你的换行符
,块级元素可以忽略换行符, 但是行内元素不会。