Reputation: 8942
I want to create border only for inner flex items without outer border of flex container. I tried to use negative values for margin
to hide outer border based on this codepen, but in my case outer border is not 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>
Upvotes: 1
Views: 1006
Reputation: 273530
You simply forget to add overflow:hidden
so that you hide the border you made outside using negative margin:
.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>
In case, you will keep the yellow color here is another idea where you can use pseudo element to cover the non needed margin:
.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>
Upvotes: 1
Reputation: 20830
Can you give a border-right to .content
(all except for the last one)?
.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>
Upvotes: 0