Search code examples
asp.net.netasp.net-corerazor-pages

How to add toggle button on Razor Page


How to add a toggle button on Razor Page with C#? I have tried to do it with common CSS commands, but it doesn't work.

image here


Solution

  • Here is a working demo:

    @page
    @model IndexModel
    <h2>Toggle Switch</h2>
    
    <label class="switch">
        <input type="checkbox">
        <span class="slider round"></span>
    </label>
    
    <label class="switch">
        <input type="checkbox" checked>
        <span class="slider round"></span>
    </label>
    
    @section Scripts
    {
        <style>
            .switch {
                position: relative;
                display: inline-block;
                width: 60px;
                height: 34px;
            }
    
                .switch input {
                    opacity: 0;
                    width: 0;
                    height: 0;
                }
    
            .slider {
                position: absolute;
                cursor: pointer;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                background-color: #ccc;
                -webkit-transition: .4s;
                transition: .4s;
            }
    
                .slider:before {
                    position: absolute;
                    content: "";
                    height: 26px;
                    width: 26px;
                    left: 4px;
                    bottom: 4px;
                    background-color: white;
                    -webkit-transition: .4s;
                    transition: .4s;
                }
    
            input:checked + .slider {
                background-color: #2196F3;
            }
    
            input:focus + .slider {
                box-shadow: 0 0 1px #2196F3;
            }
    
            input:checked + .slider:before {
                -webkit-transform: translateX(26px);
                -ms-transform: translateX(26px);
                transform: translateX(26px);
            }
    
            .slider.round {
                border-radius: 34px;
            }
    
                .slider.round:before {
                    border-radius: 50%;
                }
        </style>
    }
    

    Result: enter image description here