为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Switch/Toggle Css/javascript 更改文本颜色

使用 Switch/Toggle Css/javascript 更改文本颜色

慕码人2483693 2021-07-12 12:27:50
感谢您阅读这个问题实际上,我正在尝试为学生和教师创建一个登录表单教师和学生文本之间有切换/切换按钮的地方当开关切换到相应的(老师/学生)时,我想更改文本的颜色(比方说从绿色变为灰色)例如,如果我按下开关并且切换球向右筛选意味着学生文本将是灰色的,而另一侧的文本也是如此
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

如果您能够修改您的 HTML,那么这个纯 CSS 解决方案也是可能的:


/* CSS Additions */


/* Checkbox does not need to be displayed */

input {

  display: none;

}


/* Color labels green by default */

.role-selector input+span {

  color: green;

}

.role-selector input+*+*+span {

  color: grey;

}



/* Color labels when input is checked */

.role-selector input:checked+span {

  color: grey;

}

.role-selector input:checked+*+*+span {

  color: green;

}


/* --- */


.form-container {

  text-align: center;

  border-radius: 5px;

  background-color: #f6f6f6;

  padding: 30px 10px 30px 10px;

  margin: 0% 5% 0% 5%;

  font-family: 'Poppins', sans-serif;

  font-weight: 700;

  font-size: 30px;

  color: green;

  -webkit-box-shadow: 5px 5px 5px -1px rgba(0, 0, 0, 0.41);

  -moz-box-shadow: 5px 5px 5px -1px rgba(0, 0, 0, 0.41);

  box-shadow: 5px 5px 5px -1px rgba(0, 0, 0, 0.41);

}


.input-design {

  margin: 0% 15% 0% 15%;

  margin-top: 50px;

}


.input-design input[type=text] {

  height: 50px;

  width: 100%;

  padding: 0px 0px 0px 10px;

  font-size: 20px;

  margin-bottom: 20px;

}


.input-design input[type=password] {

  height: 50px;

  width: 100%;

  padding: 0px 0px 0px 10px;

  font-size: 20px;

}


.button-design {

  padding: 15px 0px 0px 0px;

  height: 50px;

  font-weight: 600;

  font-size: 20px;

  margin: 5% 15% 5% 15%;

  background-color: green;

  color: white;

  border: 1px solid white;

}


.button-design:hover {

  border: 1px solid green;

  background-color: white;

  color: green;

}


.switch {

  position: relative;

  display: inline-block;

  width: 60px;

  height: 34px;

}




/*

Remove:

.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+span+.switch .slider {

  background-color: #2196F3;

}


input:focus+span+.switch .slider {

  box-shadow: 0 0 1px #2196F3;

}


input:checked+span+.switch .slider:before {

  -webkit-transform: translateX(26px);

  -ms-transform: translateX(26px);

  transform: translateX(26px);

}



/* Rounded sliders */


.slider.round {

  border-radius: 34px;

}


.slider.round:before {

  border-radius: 50%;

}

<body>

  <div class="form-container">

    <div class="role-selector">

      <!-- Move input outside of .switch label -->

      <input type="checkbox" checked id="role-checkbox">

      <span>Teacher</span>

      <!-- Add for attribute that matches id of check input -->

      <label class="switch" for="role-checkbox">

                  <span class="slider round"></span>

                </label>

      <span>Student</span>

    </div>

    <div class="input-design">

      <input type="text" name="username" placeholder="Username">

      <input type="password" name="password" placeholder="Password">

    </div>

    <div class="button-design">

      Login

    </div>

  </div>

</body>


查看完整回答
反对 回复 2021-07-15
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

使用前后元素而不是文本。更新了 css 代码底部的 css。不需要jquery。


.form-container{

            text-align: center;

            border-radius: 5px;

            background-color: #f6f6f6;

            padding: 30px 10px 30px 10px;

            margin: 0% 5% 0% 5%;

            font-family: 'Poppins', sans-serif;

            font-weight: 700;

            font-size: 30px;

            color: green;

            -webkit-box-shadow: 5px 5px 5px -1px rgba(0,0,0,0.41);

            -moz-box-shadow: 5px 5px 5px -1px rgba(0,0,0,0.41);

            box-shadow: 5px 5px 5px -1px rgba(0,0,0,0.41);

        }

        .input-design{

            margin: 0% 15% 0% 15%;

            margin-top: 50px;

        }

        .input-design input[type=text]{

            height: 50px;

            width: 100%;

            padding: 0px 0px 0px 10px;

            font-size: 20px;

            margin-bottom: 20px;

        }

        .input-design input[type=password]{

            height: 50px;

            width: 100%;

            padding: 0px 0px 0px 10px;

            font-size: 20px;

        }

        .button-design{

            padding: 15px 0px 0px 0px;

            height: 50px;

            font-weight: 600;

            font-size: 20px;

            margin: 5% 15% 5% 15%;

            background-color: green;

            color: white;

            border:1px solid white;

        }

        .button-design:hover{


            border:1px solid green;

            background-color: white;

            color: green;

        }


        .switch {

  position: relative;

  display: inline-block;

  width: 60px;

  height: 34px;

}


.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);

}


/* Rounded sliders */

.slider.round {

  border-radius: 34px;

}


.slider.round:before {

  border-radius: 50%;

}


/* Input must be visible for before and after elements. Relative used for absolute position of children */


.switch input {

  position: relative;

}


/* Set text on before and after elements */


input::before,

input::after {

  font-family: 'Poppins', sans-serif;

  font-weight: 700;

  font-size: 30px;

}


input::before {

  position: absolute;

  left: 50px;

  bottom: 0;

  content: 'student';

}


input::after {

  position: absolute;

  right: 50px;

  bottom: 0;

  content: 'teacher';

}


/* Change colors based on checked status */


input:checked::before {

  color: green;

}


input:checked::after {

  color: grey;

}


input:not(:checked)::before {

  color: grey;

}


input:not(:checked)::after {

  color: green;

}

<body>

        <div class="form-container">

            <div class="role-selector">

                <label class="switch">

                        <input type="checkbox">

                        <span class="slider round"></span>

                      </label>

            </div>

            <div class="input-design">

                <input type="text" name="username" placeholder="Username">

                <input type="password" name="password" placeholder="Password">

            </div>

            <div class="button-design">

                Login

            </div>

        </div>

    </body>


查看完整回答
反对 回复 2021-07-15
  • 3 回答
  • 0 关注
  • 266 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信