CSS之选择器(十)<label> 和 <input>

简介: CSS之选择器(十)<label> 和 <input>

前言


今天我们要说的是 这两个标签选择器,通过 的 for 属性与input属性挂钩实现奇妙的效果。接下来我们就用这两个选择器来实现一个标签导航功能。


使用标签for属性挂钩标签的 id,可将标签的鼠标点击选择事件挂载到标签上,由标签回调点击选中状态。此时可以将标签设置hidden属性给隐藏起来,不参与任何排版。


代码结构如下:


<input id="btn" type="radio" hidden> 
<div> 
    <label for="btn"> 
</div>
复制代码


代码实现


接下来我们先看效果图:


image.png


代码如下:


<div class="bruce flex-ct-x" data-title="标签导航">
  <div class="tab-navbar">
    <input id="tab1" type="radio" name="tabs" hidden checked>
    <input id="tab2" type="radio" name="tabs" hidden>
    <input id="tab3" type="radio" name="tabs" hidden>
    <input id="tab4" type="radio" name="tabs" hidden>
    <main>
      <ul>
        <li>content1</li>
        <li>content2</li>
        <li>content3</li>
        <li>content4</li>
      </ul>
    </main>
    <nav>
      <label for="tab1">Tab1</label>
      <label for="tab2">Tab2</label>
      <label for="tab3">Tab3</label>
      <label for="tab4">Tab4</label>
    </nav>
  </div>
</div>
复制代码


.active {
  background-color: pink;
  opacity: 0.5;
  color: #fff;
}
.tab-navbar {
  position: relative;
  display: flex;
  overflow: hidden;
  flex-direction: column;
  border-radius: 10px;
  width: 500px;
  height: 300px;
  input {
    &:nth-child(1):checked {
      & ~ nav label:nth-child(1) {
        @extend .active;
      }
      & ~ main ul {
        background-color: #f66;
        transform: translate3d(0, 0, 0);
      }
    }
    &:nth-child(2):checked {
      & ~ nav label:nth-child(2) {
        @extend .active;
      }
      & ~ main ul {
        background-color: #66f;
        transform: translate3d(-25%, 0, 0);
      }
    }
    &:nth-child(3):checked {
      & ~ nav label:nth-child(3) {
        @extend .active;
      }
      & ~ main ul {
        background-color: #f90;
        transform: translate3d(-50%, 0, 0);
      }
    }
    &:nth-child(4):checked {
      & ~ nav label:nth-child(4) {
        @extend .active;
      }
      & ~ main ul {
        background-color: #09f;
        transform: translate3d(-75%, 0, 0);
      }
    }
  }
  nav {
    position: absolute;
    width: 100%;
    bottom: 0;
    display: flex;
    height: 40px;
    background-color: white;
    line-height: 40px;
    text-align: center;
    label {
      flex: 1;
      cursor: pointer;
      transition: all 300ms;
    }
  }
  main {
    flex: 1;
    ul {
      display: flex;
      flex-wrap: nowrap;
      width: 400%;
      height: 100%;
      transition: all 300ms;
    }
    li {
      display: flex;
      justify-content: center;
      align-items: center;
      flex: 1;
      font-weight: bold;
      font-size: 20px;
      color: #fff;
    }
  }
}
复制代码


好,今天就到这里了,今天努力的你依然是最棒的,Bye Bye!!!

相关文章
|
3月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
52 1
|
3月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
53 1
|
24天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
36 5
|
1月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
48 2
|
2月前
|
前端开发 UED
CSS3:linear-gradient&input&inset&table
本文介绍了 CSS 中的 `linear-gradient` 渐变、`input` 样式、`inset` 简写属性、`border-collapse: collapse` 表格边框合并以及 `&lt;label&gt;` 元素的 `for` 属性。通过示例代码和解释,帮助读者理解这些 CSS 特性及其应用。
55 13
|
3月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
3月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
108 1
|
2月前
|
前端开发
CSS常见的选择器
CSS常见的选择器
25 0
|
3月前
|
前端开发 JavaScript
【CSS】选择器
【CSS】选择器
|
4月前
|
前端开发
CSS3选择器
【8月更文挑战第23天】CSS3选择器。
36 1