百度疫情
一个小东西,说实话让我写 没有产品特定的成果,我可能不会这么写,不过无心中看到了算是拓展下思路:
用暗藏的复选框作为二选一的标识,label包裹,充分利用伪元素,缩小标签渲染,before红色块作为次要动画元素,after做瞬变无动画,包裹以后沉闷标签,left管制偏移,content批改标签内容


html:

<!DOCTYPE html><html><head>  <meta charset="utf-8">  <meta name="viewport" content="width=device-width">  <title>JS Bin</title></head><body> <input type="checkbox" id="checkBox">   <div class="wr">  <label for="checkBox" class="label"></label>         </div></body>  </html>

css:

label::before {  position:absolute;  left: 0;  top: 0;  z-index:3;  content: '现有确诊';  display: flex;  width: 50%;  height: 41px;  background-color: #fff;  justify-content:center;  align-items: center;  transition: all .2s ease;  font-weight: 700;  box-sizing: border-box;}label::after {  position:absolute;  left: 50%;  top: 0;  content: '累计确诊';  display: flex;  width: 50%;  height: 45px;  justify-content:center;  align-items: center;  /* transition: all .2s ease; */}label {  position: relative;  display:block;  /* width: 1 */  height: 100%;  box-sizing: border-box;}.wr {  width: 400px;  height: 45px;  padding: 2px;  box-sizing: border-box;  background-color: #dfdfdf;  /* transition: all .2s; */}#checkBox {  display: none;}#checkBox:checked+.wr>.label::after {  left: 0;  content: '现有确诊';  /* transition: all .2s; */}#checkBox:checked+.wr>.label::before {  left: 50%;  content: '累计确诊';  /* transition: all .2s; */}