天天看点

CSS (三)display:inline-block的缝隙和错位问题

display:inline-block的缝隙和错位问题

一、 缝隙问题

CSS (三)display:inline-block的缝隙和错位问题
<style type="text/css">
   *{
     border: ;
     padding: ;
     margin: ;
   }
   ul li{
     display: inline-block;
     border: px solid #000000;
   }
</style>
<body>
    <ul>
      <li>1111</li>
      <li>2222</li>
      <li>3333</li>
      <li>4444</li>
      <li>5555</li>
    </ul>
  </body>
           

这每个

li

之间的间隙是符合W3C标准规范的表现,是元素书写的时候换行产生的空白符造成的问题。但不满足业务需求。完善这种的缝隙有如下几种方法:

一、书写的时候,省略空格

CSS (三)display:inline-block的缝隙和错位问题
<body>
    <ul>
      <li>1111</li><li>2222</li><li>3333</li><li>4444</li><li>5555</li>
    </ul>
  </body>
           

二、第一种方法,元素少的情况下还可以满足,但不符合实际业务开发。第二种方法就是设置父元素的

font-size:0px

,然后再设置各个子元素的

font-size

数值。

ul{
font-size: 0;
}
ul li{
  display: inline-block;
  border: 1px solid #000000;
  font-size: 14px;
}
 <body>
    <ul>
        <li>1111</li>
         <li>2222</li>
         <li>3333</li>
         <li>4444</li>
         <li>5555</li>
    </ul>
</body>
           

排列错位问题

CSS (三)display:inline-block的缝隙和错位问题
<style type="text/css">
    .box{
      border: px solid #000000;
      width: px;
      height: px;
      display: inline-block;
    }
    .itemSmall_1{
      background-color: chartreuse;
      width: px;
      height: px;
      border: px solid #000000;
      /* float: left; */
    }
    .itemSmall_2{
      background-color: chartreuse;
      width: px;
      height: px;
      border: px solid #000000;
      float: left;
    }
    .itemBig1{
      background-color: blue;
      width: px;
      height: px;
      border: px solid #000000;
    }
    .itemBig2{
      background-color: blue;
      width: px;
      height: px;
      border: px solid #000000;
      float: left;
    }
  </style>
   <body>
    <div class="box">
      <div class="itemSmall_1">
      </div>
      <div class="itemBig1">
      </div>
    </div>

    <div class="box">
      <div class="itemSmall_2">
      </div>
      行内元素行内元素行内元素行内元素行内元素行内元素行内元素行内元素行内元素行内元素行内元素
    </div>
  </body>
           

原因,可能是快元素和行元素的baseline不一样导致上下不齐,所以解决的办法就是设置统一的vertical-align属性。基于同一个baseline值。

.box{
    border: px solid #000000;
     width: px;
     height: px;
     display: inline-block;
     vertical-align: top;
}
           
CSS (三)display:inline-block的缝隙和错位问题