Reputation: 143
I am working on a basic react project. I want to put space between 2 horizontal input fields ( without grid ). Anyhelp will be helpful as I am in learning phase.
The style I am using for fields
.grocery {
padding: 0.25rem;
padding-left: 1rem;
background: var(--clr-grey-10);
border-top-left-radius: var(--radius);
border-bottom-left-radius: var(--radius);
border-color: transparent;
font-size: 1rem;
flex: 1 0 auto;
color: var(--clr-grey-5);
}
The react code snippet:
<div className='form-control'>
<input type='text' name='Principal'className='grocery' placeholder='principal amount' value={name} onChange={(e)=>setName(e.target.value)}/>
<button type='submit' className ='submit-btn'>
{isEditing ? 'edit' :'submit'}
</button>
<input type='text' name='cash inflow'className='grocery' placeholder='cash inflow' value={name} onChange={(e)=>setName(e.target.value)}/>
<button type='submit' className ='submit-btn'>
{isEditing ? 'edit' :'submit'}
</button>
</div>
Upvotes: 1
Views: 4539
Reputation: 362
.form-control {
background-color: teal;
display: flex;
**justify-content: space-between;**
}
.grocery {
padding: 0.25rem;
padding-left: 1rem;
background: white;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border-color: transparent;
font-size: 1rem;
color: black;
}
<div class='form-control'>
<div class="container">
<input type='text' name='Principal' class='grocery' placeholder='principal amount' />
<button type='submit' className ='submit-btn'>submit</button>
</div>
<div class="container">
<input type='text' name='cash inflow' class='grocery' placeholder='cash inflow'/>
<button type='submit' className ='submit-btn'>submit</button>
</div>
</div>
Upvotes: 0
Reputation: 11
You can write
between both elements in the HTML to get the space quickly. However, a better approach would be to add margin-right as explained by @TechySharnav.
Upvotes: 0
Reputation: 3638
You should wrap your elements in container elements to do this and keep the button and input together.
.form-control {
background-color: teal;
display: flex;
}
.container {
padding: 1em;
}
.grocery {
padding: 0.25rem;
padding-left: 1rem;
background: white;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border-color: transparent;
font-size: 1rem;
color: black;
}
<div class='form-control'>
<div class="container">
<input type='text' name='Principal' class='grocery' placeholder='principal amount' />
<button type='submit' className ='submit-btn'>submit</button>
</div>
<div class="container">
<input type='text' name='cash inflow' class='grocery' placeholder='cash inflow'/>
<button type='submit' className ='submit-btn'>submit</button>
</div>
</div>
Here I added 2 container divs with a padding of 1em and set display-property of the .form-control
div to flex.
Upvotes: 0
Reputation: 5084
You can add margin-right
to .submit-btn
. This will make sure, the button and input will stay together.
(Also, you can use :first-child
for .submit-btn
so that margin is only applied to the 1st button and not all.)
.grocery {
padding: 0.25rem;
padding-left: 1rem;
background: #F1F5F8;
border-top-left-radius: 8px;
border-bottom-left-radius: 8px;
border-color: transparent;
font-size: 1rem;
flex: 1 0 auto;
color: #F1F5E4;
}
.submit-btn{
margin-right: 25px;
}
<div className='form-control'>
<input type='text' name='Principal' class='grocery' placeholder='principal amount'>
<button type='submit' class='submit-btn'>
submit
</button>
<input type='text' name='cash inflow' class='grocery' placeholder='cash inflow'>
<button type='submit' class='submit-btn'>
submit
</button>
</div>
Upvotes: 2