1
0
mirror of https://github.com/phuoc-ng/csslayout.git synced 2025-08-05 21:57:32 +02:00
Files
csslayout/contents/radio-button-group.mdx
2023-09-01 07:43:57 +07:00

143 lines
2.9 KiB
Plaintext

---
category: Input
created: '2019-12-01'
description: Create a radio button group with CSS flexbox
keywords: css flexbox, css radio button
thumbnail: /assets/css-layout/thumbnails/radio-button-group.png
title: Radio button group
---
## HTML
```html index.html
<div class="radio-button-group">
<!-- Each radio item -->
<label class="radio-button-group__label">
<!-- The radio input -->
<input type="radio" class="radio-button-group__input" />
<!-- The text -->
...
</label>
<!-- Selected item -->
<label class="radio-button-group__label radio-button-group__label--selected"> ... </label>
<!-- Repeat other items -->
...
</div>
```
## CSS
```css styles.css
.radio-button-group {
display: flex;
/* Border */
border: 1px solid #d1d5db;
border-radius: 0.25rem;
height: 2rem;
}
.radio-button-group__label {
/* Center the content */
align-items: center;
display: inline-flex;
border-right: 1px solid #d1d5db;
padding: 0.5rem;
/* For not selected radio */
background-color: transparent;
color: #ccc;
}
.radio-button-group__label:last-child {
/* Remove the right border from the last label */
border-right-color: transparent;
}
.radio-button-group__label--selected {
/* For selected radio */
background-color: #3b82f6;
color: #fff;
margin-top: -1px;
margin-bottom: -1px;
}
.radio-button-group__input {
/* Hide it */
display: none;
}
```
<Playground>
```css styles.css hidden
body {
align-items: center;
display: flex;
justify-content: center;
}
.radio-button-group {
display: flex;
/* Border */
border: 1px solid #d1d5db;
border-radius: 0.25rem;
height: 2rem;
}
.radio-button-group__label {
/* Center the content */
align-items: center;
display: inline-flex;
border-right: 1px solid #d1d5db;
padding: 0.5rem;
/* For not selected radio */
background-color: transparent;
color: #ccc;
}
.radio-button-group__label:last-child {
/* Remove the right border from the last label */
border-right-color: transparent;
}
.radio-button-group__label--selected {
/* For selected radio */
background-color: #3b82f6;
color: #fff;
margin-top: -1px;
margin-bottom: -1px;
}
.radio-button-group__input {
/* Hide it */
display: none;
}
```
```html index.html hidden
<div class="radio-button-group">
<label class="radio-button-group__label">
<input type="radio" class="radio-button-group__input" /> S
</label>
<label class="radio-button-group__label radio-button-group__label--selected">
<input type="radio" class="radio-button-group__input" /> M
</label>
<label class="radio-button-group__label">
<input type="radio" class="radio-button-group__input" /> L
</label>
<label class="radio-button-group__label">
<input type="radio" class="radio-button-group__input" /> XL
</label>
</div>
```
</Playground>