添加填充或边距分隔 3 列浮动

问题描述 投票:0回答:1

我才刚刚开始,我花了几个小时在这上面,但无法想出解决方案。 我有一个 3 列布局,当我尝试在列之间添加边距或填充时,该布局会中断。

我希望当浏览器高于 992px 时,3 列都位于同一行。在 768px 和 991px 之间,我希望前 2 列占据顶行的 50%,第三列占据下面的屏幕宽度并占据 100%。任何小于 767px 的东西都应该堆叠在一起。

* {
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -ms-box-sizing: border-box;
  -moz-box-sizing: border-box;
}

.h1 {
  text-align: center;
}

.row>div {
  margin: 10px;
}

.itemname {
  float: right;
  background-color: gold;
  margin-top: 0;
  text-align: center;
  font-size: 1.5em;
  border: 1px solid gray;
  height: 30px;
  width: 100px;
}

.desc {
  padding: 20px 10px 20px 10px;
}

@media (min-width: 992px) {
  .item1,
  .item2,
  .item3 {
    float: left;
    width: 33.3%;
    border: 1px solid gold;
    background-color: bisque;
    /*margin: 10px;*/
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .item1,
  .item2 {
    float: left;
    width: 50%;
    border: 1px solid gold;
    background-color: bisque;
  }
  .item3 {
    float: left;
    width: 100%;
    border: 1px solid gold;
    background-color: bisque;
  }
}
<h1 class="h1">Our Menu</h1>
<div class="row">
  <div class="item1">
    <p class="itemname">Chicken</p>
    <p class="desc">Item Description: Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam deleniti quod asperiores, doloribus expedita quam officia perferendis qui consectetur enim!</p>
  </div>
  <div class="item2">
    <p class="itemname">Beef</p>
    <p class="desc">Item Description: Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam deleniti quod asperiores, doloribus expedita quam officia perferendis qui consectetur enim!</p>
  </div>
  <div class="item3">
    <p class="itemname">Sushi</p>
    <p class="desc">Item Description: Lorem ipsum dolor sit amet consectetur adipisicing elit. Ullam deleniti quod asperiores, doloribus expedita quam officia perferendis qui consectetur enim!</p>
  </div>
</div>

html css css-float
1个回答
0
投票
* {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -ms-box-sizing: border-box;
    -moz-box-sizing: border-box;
}

.h1 {
    text-align: center;
}

.row>div {
    margin: 10px;
}

.itemname {
    background-color: gold;
    margin-top: 0;
    text-align: center;
    font-size: 1.5em;
    border: 1px solid gray;
    height: 30px;
    width: 100px;
}

.desc {
    padding: 20px 10px 20px 10px;
}

.row {
    display: flex;
    flex-wrap: wrap;
}

.item1,
.item2,
.item3 {
    width: 100%;
    border: 1px solid gold;
    background-color: bisque;
}

@media (min-width: 768px) {
    .item1,
    .item2 {
        width: calc(100% / 2 - 20px)
    }

    .item3 {
        width: 100%;
    }
}

@media (min-width: 992px) {
    .item1,
    .item2,
    .item3 {
        width: calc(100% / 3 - 20px);
    }
}

这里工作 jsfiddle:

https://jsfiddle.net/5c0oaz83/

© www.soinside.com 2019 - 2024. All rights reserved.