css inline-block vs float

Tom*_*mer 8 html css css-float

我正在进行一些测试float,inline-block并且我注意到它们之间存在差异.

正如你从这个例子中看到的那样,如果我使用display:inline-blockdiv,它们之间有一点差距但是如果我使用float:left它就会按预期工作.

请注意我正在使用Eric Meyer的Reset CSS v2.0.

是因为我做错了什么还是这样的inline-block行为(在这种情况下它不是很可靠).

HTML

<!DOCTYPE html>
<html>
<head>
  <title>How padding/margin affect floats</title>
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <div id="wrap">
        <div class="square"></div>
        <div class="square"></div>
        <div class="square"></div>
        <div class="square"></div>
        <div class="square"></div>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

CSS(不重置)

#wrap{
  width: 600px;
    margin:auto;
}

.square{
    width: 200px;
    height: 200px;
    background: red;
    margin-bottom: 10px;
    /*display: inline-block;*/
  float:left;
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 11

我正在对float和inline-block进行一些测试,我注意到它们之间存在差异.

无论什么资源给你的暗示他们可能一样都是误导.它们是完全不同的东西.

div之间有一点距离

那不是margin.这是由divHTML中的s 之间的换行符产生的空间.一种解决方案是仅删除换行符,另一种解决方案是font-size: 0在包含元素上设置(从而导致不渲染空格).

请注意,如果使用第二种方法,则需要font-size在内部divs 上设置另一种方法,否则将无法呈现其中的文本.

希望有所帮助!


Hen*_*rik 7

这是因为空间.如果设置font-size: 0容器元素,则间隙将消失(确保重置font-size内联块).


Roh*_*zad 2

给出父元素font-size: 0;

然后,将font-size子项设置为font-size: 12px(或您的设计指定的任何大小),如下所示:

#wrap{
    font-size:0;
}
.square{
    font-size:12px;
}
Run Code Online (Sandbox Code Playgroud)