CSS Grid
Flexible grid for your web dev.
by zerrax
HTML
<div class="row">
<div class="custom-select">
<span style="-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;" class="cs"><a>Select Item</a></span>
<ul style="display:none;">
<li class="i">1</li>
<li class="i">2</li>
<li class="i">3</li>
<li class="i">4</li>
<li class="i">5</li>
<li class="i">6</li>
<li class="i">7</li>
<li class="i">8</li>
<li class="i">9</li>
<li class="i">10</li>
<li class="i">11</li>
<li class="i">12</li>
<li class="i">13</li>
<li class="i">14</li>
<li class="i">15</li>
<li class="i">16</li>
<li class="i">17</li>
<li class="i">18</li>
<li class="i">19</li>
<li class="i">20</li>
</ul>
</div>
</div>
<div class="row">
<div class="col">
<label class="line_form">Name :<input type="text"></label>
</div>
<div class="col">
<label class="line_form">
Type :
<div class="custom-select">
<span style="-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;" class="cs"><a>Select Type</a></span>
<ul style="display:none;">
<li class="i">Alert</li>
<li class="i">Buy Limit</li>
<li class="i">Buy Market On Hit</li>
<li class="i">Sell Limit</li>
<li class="i">Sell Market On Hit</li>
</ul>
</div>
</label>
</div>
<div class="col">
<label class="line_form">Quantity :<input type="text"></label>
</div>
</div>
<div class="row">
<button>
Save
</button>
</div>
CSS
body {
padding: 40px;
}
h1 {
font-size: 20px;
line-height: 20px;
background-color: pink;
margin-bottom: 20px;
}
p {
font-size: 16px;
line-height: 20px;
background-color: pink;
margin-bottom: 20px;
}
button {
width: 100%;
height: 20px;
border: 1px solid #888;
border-radius: 5px;
margin: 0 20px 20px 0;
background-color: #ddd;
}
input,button:focus {outline:0;}
button:hover{cursor:pointer;background:rgba(0,0,0,0.3)}
div{
}
input{
padding:0;
margin:0;
background: #3f3f54;
border: solid 1px #292938;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
color: #eee;
}
.row{
display: grid;
grid-template-columns: repeat( auto-fit, minmax(120px, 1fr) );
grid-gap: 10px;
padding:10px;
}
.col12{
width:100%;
}
.line_form{
display: grid;
grid-template-columns:30% calc(70% - 10px);
text-align:center;
}
.line_form a{
margin-left: 5px;
}
.custom-select {
position: relative;
display: inline-block;
font-family: sans-serif;
font-size: 93%;
}
.custom-select span {
display: inline-block;
width: 100%;
color: #FFF;
background-color: #3f3f54;
cursor: pointer;
border: solid 1px #292938;
text-align: center;
}
.custom-select ul {
position: absolute;
background: #3f3f54;
border: 1px solid #333;
border-top:0;
width: 100%;
max-height: 200px;
overflow: auto;
z-index: 10000;
}
.custom-select ul li {
padding: 2px;
border-bottom: 1px solid #333;
cursor: pointer;
color: #eee;
}
.custom-select ul li:hover {
background-color: #666;
color: #FFF;
}
.custom-select ul li:last-child {
border-bottom: none;
}
@media screen and (max-width: 740px) {
.row{
grid-template-columns: auto ;
}
}
@media screen and (max-width: 640px) {
body {
padding: 25px;
}
}
@media screen and (max-width: 540px) {
body {
padding: 10px;
}
}
JavaScript
document.body.onclick = function(e)
{
if (window.event)
{
e = event.srcElement;
}
else
{
e = e.target;
}
if (e.className && e.className.indexOf('cs') != -1)
{
e.style = "-webkit-border-top-left-radius: 4px;-webkit-border-top-right-radius: 4px;-moz-border-radius-topleft: 4px;-moz-border-radius-topright: 4px;border-top-left-radius: 4px;border-top-right-radius: 4px;";
var c = e.parentNode.querySelector('ul');
c.style = "display:block";
}
else if (e.className && e.className.indexOf('i') != -1)
{
e.parentNode.parentNode.querySelector('a').innerText = e.innerText;
var x = document.getElementsByClassName("cs");
for (i = 0; i < x.length; i++)
{
x[i].parentNode.querySelector('ul').style = "display:none";;
}
}
else
{
var x = document.getElementsByClassName("cs");
for (i = 0; i < x.length; i++)
{
x[i].parentNode.querySelector('ul').style = "display:none";;
}
}
}