.select__box 
    %input#option-01.select__flag{ 'type': 'checkbox', 'checked': 'checked' }
    %label.select__trigger{ 'for': 'option-01' }
        option 1
    %input#option-02.select__flag{ 'type': 'checkbox' }
    %label.select__trigger{ 'for': 'option-02' }
        option 2
    %input#option-03.select__flag{ 'type': 'checkbox' }
    %label.select__trigger{ 'for': 'option-03' }
        option 3
    .select__field
        %span.select__option.option-01
            option 1
        %span.select__option.option-02
            option 2
        %span.select__option.option-03
            option 3
View Compiled
.select {
    &__box {
        display: flex;
        justify-content: flex-start;
        flex-direction: column;
        position: relative;
        overflow: hidden;
        
        width: 20rem;
        height: 2rem;
        
        background-color: #fafafa;
        
        &:hover {
            height: auto;
            
            .select__field::after {
                transform: rotate( 135deg );
            }
        }
        
        .loop( @i ) when ( @i > 0 ) {
            .loop( (@i - 1) );
            #option-0@{i}:checked ~ .select__field {
                .option-0@{i} {
                    display: inline;
                }   
            }
        }

        .loop( 3 );
    }
    
    &__field {
        display: block;
        position: absolute;
        top: 0;
        
        width: 100%;
        height: 2rem;
        padding: .35rem;
        
        border: 1px solid #ddd;
        background-color: #fff;
        
        &::after {
            content: '';
            display: block;
            position: absolute;
            right: .5rem;
            bottom: .6rem;
            
            width: .5rem;
            height: .5rem;
            
            border: 0 solid #ccc;
            border-width: 0 2px 2px 0;
            
            transform: rotate( 45deg );
        } 
    }
    
    &__option {
        display: none;
        
        margin-right: .3rem;
        padding: .1em .2em;
        
        font-size: .8em;
        line-height: 1;
        color: #fff;
        
        border-radius: 3px;
        background-color:  hsl( 190deg, 60%, 60% );
    }
    
    &__flag {
        display: none;
        
        &:checked + * {
            &::after {
                content: '';
                display: block;
                position: absolute;
                right: .5rem;
                bottom: .6rem;

                width: .5rem;
                height: .7em;

                border: 0 solid hsl( 170deg, 60%, 60% );;
                border-width: 0 2px 2px 0;

                transform: rotate( 45deg );
            }
        }
    }
    
    &__trigger {
        display: block;
        position: relative;
        
        width: 100%;
        padding: .5rem;
        
        text-transform: uppercase;
        letter-spacing: .05rem;
        color: #555;
        
        border: 0 solid #ddd;
        border-width: 0 1px 1px 1px;
        
        &:first-of-type {
            margin-top: 2rem;
        }
    }
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
    
    height: 100vh;
    margin: 0;
    padding: 0;
    
    font-family: sans-serif;
}

* {
    box-sizing: border-box;
}
View Compiled
/*
 * there's no need
 */

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.