千家信息网

css中浮动的label实例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"css中浮动的label实例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"css中浮动的label实例分析"吧!在web项目中
千家信息网最后更新 2026年10月31日css中浮动的label实例分析

这篇文章主要讲解了"css中浮动的label实例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"css中浮动的label实例分析"吧!

在web项目中,有一个很重的模块就是登陆/注册模块,这个模块的主体部分就是一个form表单,这个form表单包含两个重要input组(用户名/密码),每个input组都包含label和input,而关于label+input的布局方案多种多样,不同的设计师有不同的设计风格,不同的前端工程师又有不同的实现方式。通过对比发现,现在的方案是既注重美观,又注重性能。

那么,关于label和input都有哪些布局方案呢?

label+input的布局方案

将label和input(palcholder关键字提示)分为上下两部分;//很久以前采用,现在偶尔使用

将label和input(palcholder关键字提示)分为左右两部分(label占据一定的宽度,而label中的字体采用左对齐,右对齐,两端对齐这三种常见的方案);//案例:微博登陆,jdwap登陆页面等

label和input(palcholder关键字提示)还是分为左右两部分,不同的是label中的字体使用图标代替;//案例:segmentfault社区登陆页面等

只包含input(palcholder关键字提示);//案例:手淘的登陆页面,掘金开发社区的登陆页面等

只显示input(palcholder关键字提示),而label采用浮动并隐藏,当触发input的焦点事件时label显示。//案例:手淘的之前登陆页面,或者参考JVFloatLabeledTextField等

这几种方案各有优劣,使用label字体用图标代替更形象,但是增加了图标的url访问;label的中的字体个数不一致,看起来不美观,字数相同,这种方案只能说中规中矩;而直接丢弃label,可以使界面简洁美观,但是label有label的作用(下面会详细说label和placeholder的作用);使用浮动的label,增加了动画效果,但需要引入js,这种方案性能,比起不使用js的明显要高(有一种不用js,但兼容性不是太好的方案)。

labelvsplacholder

label:描述表单元素的角色,用来指定input的是唯一字段名称

placeholder:它提示用户输入内容的格式

它们两个看似类似,但是它们的职责不同,很多同学在这里犯了比较大的错误。

如果需要知道它们更多的内容可参考MDN

带动画的label(no-js)

在做用户交互的页面时,带上动画的用户交互,往往更容易打动用户。下面就介绍一个用伪类实现的浮动label。

HTML代码:

账号

基本布局css代码:

.input-group{

position:relative;

margin:100px20px;

font-size:16px;

}

.input-group>input{

display:block;

box-sizing:border-box;

width:100%;

padding:16px;

font-size:16px;

line-height:1.0;

border:none;

border-bottom:1pxsolid#cdcdcd;

border-radius:0.4em;

transition:box-shadow0.3s;

}

.input-groupinput::placeholder{

color:#cdcdcd;

}

.input-group>input:focus{

outline:none;

box-shadow:0.2em0.8em1.6em#cdcdcd;

}

.input-group>label{

position:absolute;

bottom:50%;

left:0;

z-index:-1;

visibility:hidden;

color:#050505;

opacity:0;

}

首先,设置了label的位置(posiion:absolute),并定义了它的层级(z-index:-1),显隐性为(visibility:hidden),透明度(opacity:0);

然后,设置了input的placeholder样式,可使用伪元素::placeholder设置其样式;

最后,设置了一个过渡动画效果,当input元素标签获得焦点时,使用伪类:focus定义了input元素标签获得焦点时的阴影样式(box-shadow)和轮廓样式(outline)。

label浮动效果样式

.input-group>label{

...

-webkit-transform-origin:00;

transform-origin:00;

-webkit-transform:translate3d(0,0,0)scale(0);

transform:translate3d(0,0,0)scale(0);

-webkit-transition:

opacity0.3s,

visibility0.3s,

transform0.3s,

z-index0.3s;

transition:

opacity0.3s,

visibility0.3s,

transform0.3s,

z-index0.3s;

}

.input-group>input:focus~label{

z-index:1;

visibility:visible;

opacity:1;

-webkit-transform:translate3d(0,-36px,0)scale(1);

transform:translate3d(0,-36px,0)scale(1);

}

在定义label样式的集合内,添加它的初始transform形变效果,同时设置transition过渡效果样式,然后定义当input获得焦点时,它的兄弟元素label的样式即可。

这种label浮动的效果和JVFloatLabeledTextField的效果不同,前者是获取到焦点,label立马开始浮动,而后者是当用户输入内容时(也就是placeholder消失时),label开始浮动。

要使两者的效果相同,我们可以使用伪类可以嵌套的特性,修改.input-group>input:focus~label为.input-group>input:focus:not(:placeholder-shown)~label,这里的:placeholder-shown可以定义placeholder的显隐效果,但它的兼容性不太好,ie/edge压根不支持,chrome和safari,以及Firefox还可以。案例:demo



感谢各位的阅读,以上就是"css中浮动的label实例分析"的内容了,经过本文的学习后,相信大家对css中浮动的label实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

浮动 效果 方案 样式 不同 用户 页面 提示 登陆 元素 关键 关键字 内容 案例 焦点 实例 实例分析 分析 字体 布局 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 互联网扶贫科技 平安科技 互联网 嘟嘟瓜互联网科技 奔汉互联网科技 蓝色互联网科技 北京三清互联网科技 温州喔噻互联网科技有限公司 互联网科技创新服务 青岛科技大学互联网大赛研究生 江阴互联网智能科技产品进口 中科明德北京互联网科技 众安科技工业互联网合作 黑科技 体验场景 互联网大会 山东星卡互联网科技有限公司官网 智帮互联网科技公司最近动向 东营紫格互联网科技 互联网科技企业商标注意事项 银川新华互联网科技学校是国营吗 恒生科技指数 中概互联网 天津市摩尔互联网科技 互联网公司 科技公司 亿账通互联网科技 友谊互联网络科技 金融科技与互联网金融相同和不同 健康食品互联网创新科技园项目 威龙国际互联网科技公司 互联网科技大赛获奖感言 35岁以上互联网科技行业 上海万顺科技互联网有限公司招聘
0