Radio Buttons Select


Виберiть зображення

Gallery image #1 Gallery image #1

Gallery image #2 Gallery image #2

Gallery image #3 Gallery image #3

Gallery image #4 Gallery image #4

Gallery image #5 Gallery image #5


PHP
<div class="select_box">
	<div class="select_box_current" tabindex="1">
		<div class="select_box_value">
			<input class="select_box_input" type="radio" id="image_0" value="0" name="id_image" checked="checked">
			<p class="select_box_text">Виберiть зображення</p>
		</div>
		<?php for ($i = 1; $i < 6; $i++) :?>
			<div class="select_box_value">
			<input class="select_box_input" type="radio" id="image_<?= $i ?>" value="<?= $i ?>" name="id_image">
			<p class="select_box_text">
				<img src="/img/gallery_img_<?= $i ?>.jpg" alt="Gallery image #<?= $i ?>">
				<span>Gallery image #<?= $i ?></span>
			</p>
		</div>
		<?php endfor ;?>
		
		<span class="select_box_icon">
			<?= svg('iconDownload','') ?>
		</span>
	</div>
	<ul class="select_box_list">
		<li>
			<label class="select_box_option" for="image_0">Виберiть зображення</label>
		</li>
		<?php for ($i = 1; $i < 6; $i++) :?>
			<li>
			<label class="select_box_option" for="image_<?= $i ?>">
				<img src="/img/gallery_img_<?= $i ?>.jpg" alt="Gallery image #<?= $i ?>">
				<span>Gallery image #<?= $i ?></span>
			</label>
		</li>
		<?php endfor ;?>
	</ul>
</div>
CSS
.select_box{position:relative;display:block;width:100%;font-size:1.5rem;color:#262b33}
.select_box_current{border:.1rem solid #ccc;cursor:pointer}
.select_box_current:focus + .select_box_list{opacity:1;-webkit-animation-name:none;-moz-animation-name:none;-o-animation-name:none;animation-name:none}
.select_box_current:focus + .select_box_list .select_box_option{cursor:pointer}
.select_box_current:focus .select_box_icon{-webkit-transform:translateY(-50%) rotate(180deg);-moz-transform:translateY(-50%) rotate(180deg);-ms-transform:translateY(-50%) rotate(180deg);-o-transform:translateY(-50%) rotate(180deg);transform:translateY(-50%) rotate(180deg)}
.select_box_icon{position:absolute;top:50%;right:1.5rem;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);width:2rem;height:2rem;color:#262b33;opacity:.3;-webkit-transition:.2s ease;-o-transition:.2s ease;-moz-transition:.2s ease;transition:.2s ease}
.select_box_value{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}
.select_box_input{display:none}
.select_box_input:checked + .select_box_text{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}
.select_box_text{display:none;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:6rem;margin:0;padding:1rem 5rem 1rem 1.5rem;background-color:#fff}
.select_box_list{position:absolute;top:-webkit-calc(100% + 1rem);top:-moz-calc(100% + 1rem);top:calc(100% + 1rem);left:0;z-index:5;width:100%;border:.1rem solid #ccc;padding:0;opacity:0;-webkit-animation-name:HideList;-moz-animation-name:HideList;-o-animation-name:HideList;animation-name:HideList;-webkit-animation-duration:.5s;-moz-animation-duration:.5s;-o-animation-duration:.5s;animation-duration:.5s;-webkit-animation-delay:.5s;-moz-animation-delay:.5s;-o-animation-delay:.5s;animation-delay:.5s;-webkit-animation-fill-mode:forwards;-moz-animation-fill-mode:forwards;-o-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:step-start;-moz-animation-timing-function:step-start;-o-animation-timing-function:step-start;animation-timing-function:step-start}
.select_box_option{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:6rem;padding:1rem 5rem 1rem 1.5rem;background-color:#fff}
.select_box_option:focus{color:#617d8b;background-color:#fbfbfb}
.select_box_option img,.select_box_text img{width:4rem;height:4rem;margin:0 1.5rem 0 0;-o-object-fit: contain;object-fit: contain;font-family: 'object-fit: contain;'}
.select_box_option span,.select_box_text span{display:inline-block;width:-webkit-calc(100% - 5.5rem);width:-moz-calc(100% - 5.5rem);width:calc(100% - 5.5rem)}

@-webkit-keyframes HideList {
	from{-webkit-transform:scaleY(1);transform:scaleY(1)}
	to{-webkit-transform:scaleY(0);transform:scaleY(0)}
}
@-moz-keyframes HideList {
	from{-moz-transform:scaleY(1);transform:scaleY(1)}
	to{-moz-transform:scaleY(0);transform:scaleY(0)}
}
@-o-keyframes HideList {
	from{-o-transform:scaleY(1);transform:scaleY(1)}
	to{-o-transform:scaleY(0);transform:scaleY(0)}
}
@keyframes HideList {
	from{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-o-transform:scaleY(1);transform:scaleY(1)}
	to{-webkit-transform:scaleY(0);-moz-transform:scaleY(0);-o-transform:scaleY(0);transform:scaleY(0)}
}

@media (-ms-high-contrast: none), (-ms-high-contrast: active), (-moz-touch-enabled: 0), (hover: hover) {
	.select_box_option:hover{color:#617d8b;background-color:#fbfbfb}
}
SCSS
.select_box {
	position: relative;
	display: block;
	width: 100%;
	font-size: 1.5rem;
	color: #262b33;
}

.select_box_current {
	border: .1rem solid #cccccc;
	cursor: pointer;
	
	&:focus{
		+ .select_box_list {
			opacity: 1;
			animation-name: none;
			
			.select_box_option {
				cursor: pointer;
			}
		}
		
		.select_box_icon {
			transform: translateY(-50%) rotate(180deg);
		}
	}
}

.select_box_icon {
	position: absolute;
	top: 50%;
	right: 1.5rem;
	transform: translateY(-50%);
	width: 2rem;
	height: 2rem;
	color: #262b33;
	opacity: 0.3;
	transition: 0.2s ease;
}

.select_box_value {
	display: flex;
}

.select_box_input {
	display: none;
	
	&:checked + .select_box_text {
		display: flex;
	}
}

.select_box_text {
	display: none;
	align-items: center;
	width: 100%;
	height: 6rem;
	margin: 0;
	padding: 1rem 5rem 1rem 1.5rem;
	background-color: #ffffff;
}

.select_box_list {
	position: absolute;
	top: calc(100% + 1rem);
	left: 0;
	z-index: 5;
	width: 100%;
	border: .1rem solid #cccccc;
	padding: 0;
	opacity: 0;
	animation-name: HideList;
	animation-duration: 0.5s;
	animation-delay: 0.5s;
	animation-fill-mode: forwards;
	animation-timing-function: step-start;
}

.select_box_option {
	display: flex;
	align-items: center;
	width: 100%;
	height: 6rem;
	padding: 1rem 5rem 1rem 1.5rem;
	background-color: #ffffff;
	
	&:focus {
		color: #617d8b;
		background-color: #fbfbfb;
	}
}

.select_box_option, .select_box_text {
	img {
		width: 4rem;
		height: 4rem;
		margin: 0 1.5rem 0 0;
		object-fit: contain;
        font-family: 'object-fit: contain;';
	}
	
	span {
		display: inline-block;
		width: calc(100% - 5.5rem);
	}
}

@keyframes HideList {
	from {
		transform: scaleY(1);
	}
	to {
		transform: scaleY(0);
	}
}

@media (-ms-high-contrast: none), (-ms-high-contrast: active), (-moz-touch-enabled: 0), (hover: hover) {
	.select_box_option:hover {color: #617d8b;background-color: #fbfbfb;}
}