Flexbox внутренняя граница и отрицательные поля - PullRequest
0 голосов
/ 01 ноября 2018

Я хочу создать рамку только для внутренних элементов Flex без внешней границы контейнера Flex. Я пытался использовать отрицательные значения для margin, чтобы скрыть внешнюю границу на основе этого codepen , но в моем случае внешняя граница не скрыта.

.view {
  display: flex;
  flex-direction: column;
  border: none;
}

.container {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -5px -5px 0;
}

.content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  background: yellow;
  padding: 20px;
  border-right: 1px solid black;
  border-bottom: 1px solid black;
}

.head {
  text-align: center;
}
<div class="view">
<div class="container">
   <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Total balance</div>
   </div>
   <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Available balance</div>
   </div>
   <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Orders</div>
   </div>
   <div class="content">
      <div class="sc-eTyWNx dIQzIE">500</div>
      <div class="head">Wallet balance</div>
   </div>
   <div class="content">
      <button class="sc-gzVnrw cnAjsC" type="button">Send</button>
   </div>
</div>
</div>

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Вы просто забыли добавить overflow:hidden, чтобы скрыть созданную вами рамку снаружи, используя отрицательное поле:

.view {
  display: flex;
  flex-direction: column;
  border: none;
}

.container {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -5px -5px 0;
}

.content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  background: yellow;
  padding: 20px;
  border-right: 1px solid black;
  border-bottom: 1px solid black;
}

.head {
  text-align: center;
}
<div class="view">
  <div class="container">
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Total balance</div>
    </div>
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Available balance</div>
    </div>
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Orders</div>
    </div>
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">500</div>
      <div class="head">Wallet balance</div>
    </div>
    <div class="content">
      <button class="sc-gzVnrw cnAjsC" type="button">Send</button>
    </div>
  </div>
</div>

В случае, если вы сохраните желтый цвет, вот еще одна идея, где вы можете использовать псевдоэлемент для покрытия ненужного поля:

.container {
  display: flex;
  flex-wrap: wrap;
  position:relative;
}
.container:before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  border:1px solid yellow;
}

.content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  background: yellow;
  padding: 20px;
  border-left: 1px solid black;
  border-bottom: 1px solid black;
}

.head {
  text-align: center;
}
<div class="container">
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Total balance</div>
    </div>
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Available balance</div>
    </div>
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Orders</div>
    </div>
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">500</div>
      <div class="head">Wallet balance</div>
    </div>
    <div class="content">
      <button class="sc-gzVnrw cnAjsC" type="button">Send</button>
    </div>
  </div>
0 голосов
/ 01 ноября 2018

Можете ли вы дать пограничное право на .content (все , кроме последнего)?

.view {
  display: flex;
  flex-direction: column;
  border: none;
}

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

.content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  background: yellow;
  padding: 20px;
}

.content:not(:last-child) {
  border-right: 1px solid black;
}

.head {
  text-align: center;
}
<div class="view">
  <div class="container">
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Total balance</div>
    </div>
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Available balance</div>
    </div>
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">0</div>
      <div class="head">Orders</div>
    </div>
    <div class="content">
      <div class="sc-eTyWNx dIQzIE">500</div>
      <div class="head">Wallet balance</div>
    </div>
    <div class="content">
      <button class="sc-gzVnrw cnAjsC" type="button">Send</button>
    </div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...