这是一款使用CSS3制作的炫酷炫酷浮动标签设计效果。该浮动标签效果分为标签上浮动,标签右浮动和标签下浮动效果,它们均通过CSS3和少量jQuery代码来完成。

使用方法

HTML结构

所有的浮动标签均使用一个div作为容器,然后里面放置一个<input>元素和一个<label>元素。

<div class="input-element">
  <label for="input">Float top label</label>
  <input type="text" id="input" name="input">
</div>         
                
CSS样式

首先为<input>元素和<label>元素设置基本的CSS样式。

.container {
  width: 300px;
  margin: 0 auto;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -51%);
  transform: translate(-50%, -51%);
  -webkit-backface-visibility: hidden;
}

.input-element {
  margin: 0 auto;
  padding-top: 30px;
  position: relative;
  overflow: visible;
}
.input-element:last-child {
  margin-bottom: 0;
}
.input-element:after {
  content: " ";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: #fff;
}
.input-element:before {
  content: " ";
  display: block;
  position: absolute;
  bottom: 0;
  width: 0;
  height: 1px;
  background: #3B7FC4;
  -webkit-transition: width .3s ease-in-out;
  transition: width .3s ease-in-out;
  z-index: 20;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}
.input-element.right:before {
  left: 0;
  -webkit-transform: translateX(0);
  transform: translateX(0);
}
.input-element label {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  color: #fff;
  top: 42px;
  left: 0;
  position: absolute;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  width: 100%;
}
.input-element label:hover {
  cursor: pointer;
  color: #efefef;
}
.input-element input {
  width: 100%;
  padding: 8px 0;
  background: none;
  border: none;
  outline: none;
  color: #fff;
  font-size: 18px;
  -webkit-backface-visibility: hidden;
}                  
                

input元素聚焦的时候,通过jQuery来为它添加.active的class类,此时修改label标签位置和字体大小。

.input-element.active label {
  top: 15px;
  color: #3B7FC4;
  font-size: 12px;
}                  
                

如果想使标签右浮动,则添加一个.right 的class类即可,向下浮动添加.bottom class类。

.input-element.active.right label {
  top: 42px;
  left: 100%;
  font-size: 18px;
}
.input-element.active.bottom label {
  top: calc(100% + 5px);
  font-size: 14px;
}