Bootstrap Column CSS - css

Here is my Angular2 Form
<form [formGroup]="myForm" autocomplete="off" novalidate> <div
class="row"> <div class="form-group col-md-4" [ngClass]="{ 'error' :
myForm.controls.firstname.invalid &&
myForm.controls.firstname.touched}">
<label for="firstname">Please tell us your name</label>
<control-messages [control]="myForm.controls.firstname"></control-messages>
<input name="firstname" formControlName="firstname" type="text"
class="form-control" placeholder="First Name *" /> </div> <div
class="form-group col-md-4" >
<label for="middlename"> </label>
<control-messages [control]="myForm.controls.middlename"></control-messages>
<input name="middlename" id="middlename" type="text" class="form-control"
placeholder="Middle Name" formControlName="middlename"/> </div>
<div class="form-group col-md-4" [ngClass]="{ 'error' :
myForm.controls.lastname.invalid && myForm.controls.lastname.touched
}">
<label for="lastname"> </label>
<control-messages [control]="myForm.controls.lastname"></control-messages>
<input name="lastname" formControlName="lastname" type="text" class="form-
control" placeholder="Last Name *"/> </div> </div>
</form>
enter image description here
How do I line up all the columns correctly? Please help.

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form [formGroup]="myForm" autocomplete="off" novalidate>
<div class="row">
<div class="form-group col-md-4" [ngClass]="{ 'error' :
myForm.controls.firstname.invalid &&
myForm.controls.firstname.touched}">
<label for="firstname">Please tell us your name</label>
<control-messages [control]="myForm.controls.firstname"></control-messages>
<input name="firstname" formControlName="firstname" type="text" class="form-control" placeholder="First Name *" />
</div>
<div class="form-group col-md-4">
<label for="middlename"> </label>
<control-messages [control]="myForm.controls.middlename"></control-messages>
<input name="middlename" id="middlename" type="text" class="form-control" placeholder="Middle Name" formControlName="middlename" />
</div>
<div class="form-group col-md-4" [ngClass]="{ 'error' :
myForm.controls.lastname.invalid && myForm.controls.lastname.touched
}">
<label for="lastname"> </label>
<control-messages [control]="myForm.controls.lastname"></control-messages>
<input name="lastname" formControlName="lastname" type="text" class="form-control" placeholder="Last Name *" />
</div>
</div>
</form>
You had some line breaks in between form-control for the last name input field, try like this:
<form [formGroup]="myForm" autocomplete="off" novalidate>
<div class="row">
<div class="form-group col-md-4" [ngClass]="{ 'error' :
myForm.controls.firstname.invalid &&
myForm.controls.firstname.touched}">
<label for="firstname">Please tell us your name</label>
<control-messages [control]="myForm.controls.firstname"></control-messages>
<input name="firstname" formControlName="firstname" type="text"
class="form-control" placeholder="First Name *" />
</div>
<div class="form-group col-md-4" >
<label for="middlename"> </label>
<control-messages [control]="myForm.controls.middlename"></control-messages>
<input name="middlename" id="middlename" type="text" class="form-control"
placeholder="Middle Name" formControlName="middlename"/>
</div>
<div class="form-group col-md-4" [ngClass]="{ 'error' :
myForm.controls.lastname.invalid && myForm.controls.lastname.touched
}">
<label for="lastname"> </label>
<control-messages [control]="myForm.controls.lastname"></control-messages>
<input name="lastname" formControlName="lastname" type="text" class="form-control" placeholder="Last Name *"/>
</div>
</div>
</form>

Related

Why does card overflow from parent col

My Form elements are not fitting in correctly and the alignment is
distorted.
.h-100 has been used since the blue back ground is my navigation and I want it to fill the entire height available in the screen.
I would prefer to accept an answer which can explain why my snippet does not work.
Plunker here
HTML
<div class="container-fluid h-100">
<div class="row h-100">
<div class="col-2 blue">
</div>
<div class="col-10">
<div class="card h-100">
<div class="card-body">
<form>
<div class="form-group">
<label for="Random">Random 1</label>
<input type="text" class="form-control" id="random1" aria-describedby="emailHelp" placeholder="Enter name">
</div>
<div class="form-group">
<label for="Random">Random 2</label>
<input type="text" class="form-control" id="random2" aria-describedby="emailHelp" placeholder="Enter name">
</div>
<div class="form-group">
<label for="Random">Random 3</label>
<input type="text" class="form-control" id="random3" placeholder="Enter Random">
</div>
<div class="form-group">
<label for="Random">Random 4</label>
<input type="text" class="form-control" id="random4" aria-describedby="employeeCodeHelp" placeholder="Enter random random">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="isActive">
<label class="form-check-label" for="isActive">Is Active</label>
</div>
<div class="form-group">
<label for="Random">Random 5</label>
<input type="text" class="form-control" id="random5" placeholder="Enter Random Random">
</div>
<div class="form-group">
<label for="phoneNumber">Random 6</label>
<input type="number" class="form-control" id="random6" placeholder="Enter phone number">
</div>
<div class="form-group">
<label for="emailId">Email</label>
<input type="number" class="form-control" id="emailId" placeholder="Enter email">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
</div>
</div>
CSS
.blue {
background-color:blue;
}
html,body {
height: 100%;
}
Screen shot
remove .h-100 class from .container and from .row as its height should be auto instead of 100% , answer is as per what i understand , that your card is going out of your .col right?
if you want to give blue shape than here is the code :
<div class="row">
<div class="col-2 blue">
</div>
<div class="col-10">
<div class="card h-100">
<div class="card-body">
<form>
<div class="form-group">
<label for="Random">Random 1</label>
<input type="text" class="form-control" id="random1" aria-describedby="emailHelp" placeholder="Enter name">
</div>
<div class="form-group">
<label for="Random">Random 2</label>
<input type="text" class="form-control" id="random2" aria-describedby="emailHelp" placeholder="Enter name">
</div>
<div class="form-group">
<label for="Random">Random 3</label>
<input type="text" class="form-control" id="random3" placeholder="Enter Random">
</div>
<div class="form-group">
<label for="Random">Random 4</label>
<input type="text" class="form-control" id="random4" aria-describedby="employeeCodeHelp" placeholder="Enter random random">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="isActive">
<label class="form-check-label" for="isActive">Is Active</label>
</div>
<div class="form-group">
<label for="Random">Random 5</label>
<input type="text" class="form-control" id="random5" placeholder="Enter Random Random">
</div>
<div class="form-group">
<label for="phoneNumber">Random 6</label>
<input type="number" class="form-control" id="random6" placeholder="Enter phone number">
</div>
<div class="form-group">
<label for="emailId">Email</label>
<input type="number" class="form-control" id="emailId" placeholder="Enter email">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
</div>
.blue{
min-height: 100px //the height you want to give
}

Repositioning form after image removed from display

In the following code, I have an image that I do not want shown on small screens (at the bottom). When the viewport is shrunk, the input fields are a left justified. I'd like them to be in the center of the viewport when the screen is XS. I've tried changing the Bootstrap 4 flex settings, but have yet to find a solution. Is there a way to do this in Bootstrap or SASS?
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> {% block body %}
<div class="container d-flex">
<div class="row justify-content-center">
<div class="col-md-8 col-sm-8 col-xs-12">
<form action="{{ url_for('register') }}" method="post" class="my-5" id="registrationForm">
<div class="form-group">
<label class="firstName" for="firstName">First Name</label>
<input type="text" class="form-control" id="firstName" name="firstname" placeholder="First Name">
</div>
<div class="form-group">
<label class="lastName" for="lastName">Last Name</label>
<input type="text" class="form-control" id="lastName" name="lastname" placeholder="Last Name">
</div>
<div class="form-group">
<label class="eMail" for="eMail">Email Address</label>
<input type="email" class="form-control" id="eMail" name="email" placeholder="Email">
</div>
<div class="form-group">
<label class="userName" for="userName">Preferred User Name</label>
<input type="text" class="form-control" id="userName" name="username" placeholder="User Name">
</div>
<div class="form-group">
<label class="passWord" for="passWord">Password</label>
<input type="password" class="form-control" id="passWord" name="password" placeholder="Password">
</div>
<div class="form-group">
<label class="passWord_2" for="password_2">Confirm Password</label>
<input type="password" class="form-control" id="password_2" name="password2" placeholder="Confirm Password">
</div>
<div class="form-group text-center">
<button type="submit" class="btn btn-primary custom-btn">Register!</button>
</div>
</form>
</div>
<div class="col-md-4 col-sm-4 flex-column my-5 py-3 align-self-center">
<img class="img-fluid img-thumbnail d-none d-sm-block" src="/static/savoy.jpeg" alt="aubrey beardsley drawing" />
</div>
</div>
</div>
<!-- End form container -->
{% endblock %}
You can use media queries to provide additional styles at specific breakpoints.
#media (max-width: 575px) {
.row.center-on-xs{ margin: 0 auto; }
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> {% block body %}
<div class="container d-flex">
<div class="row center-on-xs justify-content-center">
<div class="col-md-8 col-sm-8 col-xs-12">
<form action="{{ url_for('register') }}" method="post" class="my-5" id="registrationForm">
<div class="form-group">
<label class="firstName" for="firstName">First Name</label>
<input type="text" class="form-control" id="firstName" name="firstname" placeholder="First Name">
</div>
<div class="form-group">
<label class="lastName" for="lastName">Last Name</label>
<input type="text" class="form-control" id="lastName" name="lastname" placeholder="Last Name">
</div>
<div class="form-group">
<label class="eMail" for="eMail">Email Address</label>
<input type="email" class="form-control" id="eMail" name="email" placeholder="Email">
</div>
<div class="form-group">
<label class="userName" for="userName">Preferred User Name</label>
<input type="text" class="form-control" id="userName" name="username" placeholder="User Name">
</div>
<div class="form-group">
<label class="passWord" for="passWord">Password</label>
<input type="password" class="form-control" id="passWord" name="password" placeholder="Password">
</div>
<div class="form-group">
<label class="passWord_2" for="password_2">Confirm Password</label>
<input type="password" class="form-control" id="password_2" name="password2" placeholder="Confirm Password">
</div>
<div class="form-group text-center">
<button type="submit" class="btn btn-primary custom-btn">Register!</button>
</div>
</form>
</div>
<div class="col-md-4 col-sm-4 flex-column my-5 py-3 align-self-center">
<img class="img-fluid img-thumbnail d-none d-sm-block" src="/static/savoy.jpeg" alt="aubrey beardsley drawing" />
</div>
</div>
</div>
<!-- End form container -->
{% endblock %}

Twitter bootstrap changeable vertical/horizontal form layout with little modification

I am making an app where there are lots of forms and i am fatigued at the thought of referring to the form reference for the tricky vertical aligned forms and horizontal aligned forms.
I want a final snippet that will be my point of reference when i want a vertical and a horizontal form.
For a vertical form(forms aligned vertically) i use this code
https://jsfiddle.net/bgebzwqd/11/
<form role="form">
<div class="form-group">
<label for="name">First name</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="form-group">
<label for="address">Second name</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="form-group">
<label for="pwd">Password</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="form-group col-md-4">
<button type="submit" class="btn btn-default">Register</button>
</div>
</form>
For horizontal forms i have this
https://jsfiddle.net/0jwzxoe2/20/
<form role="form">
<div class="form-group">
<div class="col-xs-3">
<label class="control-label">One</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3">
<label class="control-label ">Two</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3">
<label class="control-label ">Three</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3">
<label class="control-label ">Four</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3">
<label class="control-label ">Five</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3">
<button type="submit" class="btn btn-default">Register</button>
</div>
</div>
</form>
In the first form(vertical forms), how can i control the width of the form bootstrap way(trying and avoiding custom css)
In the second, i want to have the button at the bottom and also have some spacing vertically. In the current example, there seem to be no space.
To solve the problem, i want to avoid using custom css and try solving this using what's available in bootstrap only.
Use Below Code
<form role="form">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-3">
<div class="form-group">
<label for="name">First name</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-3">
<div class="form-group">
<label for="address">Second name</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-3">
<div class="form-group">
<label for="email">Email</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-3">
<div class="form-group">
<label for="pwd">Password</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
</div>
<div class="col-xs-12">
<div class="form-group col-md-4">
<button type="submit" class="btn btn-default">Register</button>
</div>
</div>
</div>
</form>
I ended up doing this for vertical forms
https://jsfiddle.net/codebreaker87/zqjva21d/
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" type="text/css" rel="stylesheet">
<div class="container">
<style>.width500{width:500px;margin-left:30px;}</style>
<form role="form">
<div class="row">
<div class="form-group width500">
<label for="name">First name</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="form-group width500 ">
<label for="address">Second name</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="form-group width500">
<label for="email">Email</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="form-group width500">
<label for="pwd">Password</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="form-group width500">
<button type="submit" class="btn btn-default">Register</button>
</div>
</div>
</form>
</div>
For horizontal forms https://jsfiddle.net/codebreaker87/zqjva21d/21/
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" type="text/css" rel="stylesheet">
<div class="container">
<form role="form">
<div class="form-group">
<style>.mb{margin-bottom:20px;}.ml{margin-left:15px;}</style>
<div class="col-xs-3 mb">
<label class="control-label">One</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3 mb">
<label class="control-label ">Two</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3 mb">
<label class="control-label ">Three</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3 mb">
<label class="control-label ">Four</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3 mb">
<label class="control-label ">Five</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
<div class="col-xs-3 mb">
<label class="control-label ">Six</label>
<input type="name" class="form-control" id="fname" placeholder="Enter name">
</div>
</div>
<div class="row">
<div class="col-md-12 ml ">
<button type="submit" class="btn btn-default">Register</button>
</div>
</div>
</form>
</div>

vertically align textbox using bootstrap classes

I've made 5 rows using bootstrap, they got placed neatly, but there is a small issue. The rows are getting in contact without leaving any gap. I should not use , this will bring a big gap, and the textboxes in each row should be vertically align, if there is no radio button in that row, that corresponding place should be kept empty and textbox should get aligned properly with all rows. The starting textbox in all rows should start at the same place where the first row textbox has started. Here is my code
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="form-inline">
<div class="radio" style="width: 100px;">
<label><input type="radio" name="optradio">Option
1</label>
</div>
<input type="text" class="form-control" />
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-inline">
<div class="radio" style="width: 100px;">
<label><input type="radio" name="optradio">Option
1</label>
</div>
<input type="text" class="form-control" /> <input type="text"
class="form-control" />
<div class="form-group">
<label for="sel1">Select list:</label> <select
class="form-control" id="sel1">
<option>Apple</option>
<option>Mango</option>
<option>Orange</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-inline">
<input type="text" class="form-control" /> <input type="text"
class="form-control" /> <input type="text" class="form-control" />
<input type="text" class="form-control" /> <input type="text"
class="form-control" />
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-inline">
<div class="radio" style="width: 100px;">
<label><input type="radio" name="optradio">Option
1</label>
</div>
<input type="text" class="form-control" /> <input type="text"
class="form-control" />
<div class="form-group">
<label for="sel1">Select list:</label> <select
class="form-control" id="sel1">
<option>Apple</option>
<option>Mango</option>
<option>Orange</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-inline">
<input type="text" class="form-control" /> <input type="text"
class="form-control" /> <input type="text" class="form-control" />
<input type="text" class="form-control" /> <input type="text"
class="form-control" />
</div>
</div>
</div>
</div>
Please check in browser not in fiddle because it changes alignments .
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="form-inline form-group">
<div class="radio" style="width:95px;" >
<label><input type="radio" name="optradio" style="vertical-align:middle;"> Option
1</label>
</div>
<input type="text" class="form-control" />
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-inline form-group">
<div class="radio" style="width:95px;" >
<label><input type="radio" name="optradio">Option
1</label>
</div>
<input type="text" class="form-control" /> <input type="text"
class="form-control" />
<div class="form-group">
<label for="sel1">Select list:</label> <select
class="form-control" id="sel1">
<option>Apple</option>
<option>Mango</option>
<option>Orange</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-offset-1">
<div class="form-inline form-group">
<input type="text" class="form-control" /> <input type="text"
class="form-control" /> <input type="text" class="form-control" />
<input type="text" class="form-control" /> <input type="text"
class="form-control" />
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-inline form-group">
<div class="radio" style="width:95px;">
<label><input type="radio" name="optradio">Option
1</label>
</div>
<input type="text" class="form-control" /> <input type="text"
class="form-control" />
<div class="form-group">
<label for="sel1">Select list:</label> <select
class="form-control" id="sel1">
<option>Apple</option>
<option>Mango</option>
<option>Orange</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-offset-1">
<div class="form-inline form-group">
<input type="text" class="form-control" /> <input type="text"
class="form-control" /> <input type="text" class="form-control" />
<input type="text" class="form-control" /> <input type="text"
class="form-control" />
</div>
</div>
</div>
</div>
Here is JSFIDDLE

bootstrap - add label to span

I have the following markup
<form role="form">
<div class="input-group">
<label for="accountSpan">Account name</label>
<span class="input-group-addon" id="accountSpan">something</span>
<input type="text" class="form-control" placeholder="account name" aria-describedby="basic-addon1" id="accountInput" >
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1" />
</div>
</form>
which results in
How can I have it aligned like the password?
Try like this: Demo
If you use form-group along with input-group like you did for password, you can get your expected output.
<div class="form-group">
<label for="accountSpan">Account name</label>
<div class="input-group">
<span class="input-group-addon" id="accountSpan">something</span>
<input type="text" class="form-control" placeholder="account name" aria-describedby="basic-addon1" id="accountInput">
</div>
</div>
#import url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css');
<form role="form">
<div class="input-group">
<label for="accountSpan">Account name</label>
<span class="input-group-addon" id="accountSpan">something</span>
<input type="text" class="form-control" placeholder="account name"
aria-describedby="basic-addon1" id="accountInput" >
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1" />
</div>
Here your answer jsFiddle:
<form role="form">
<div class="form-group">
<label for="accountSpan">Account name</label>
<div class="input-group">
<span class="input-group-addon" id="accountSpan">something</span>
<input type="text" class="form-control" placeholder="account name" aria-describedby="basic-addon1" id="accountInput" >
</div>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1" />
</div>
</form>

Resources