CSS使用placeholder-shown伪类实现输入框浮动文字效果

使用placeholder-shown伪类可以实现输入框的浮动文字效果,可以增加用户交互体验,下面是使用该伪类实现输入框浮动文字效果的详细攻略。

1. 设置输入框样式

首先需要设置输入框的基本样式,包括输入框的边框颜色、宽度、高度等信息。输入框的样式可以自定义,下面是一个简单样例:

input {
  border: 1px solid #ccc;
  height: 40px;
  width: 100%;
}

2. 添加动态浮动文字

在输入框的父元素中添加一个label元素,用于展示输入框的浮动文字。同时在该label元素中添加浮动文字的样式。下面是示例代码:

<div>
  <input type="text" name="username" />
  <label for="username">Username</label>
</div>
label {
  position: absolute;
  top: 13px;
  left: 10px;
  transition: all 0.2s ease;
  pointer-events: none;
  font-size: 16px;
  color: #999;
}

其中,label元素的position属性设置为absolute,用于定位元素,top和left属性用于设置元素的位置,通过transition属性设置动画效果,pointer-events属性设置为none,用于让鼠标事件穿透到input元素之下,避免影响用户的输入。font-size和color属性用于设置浮动文字的字体样式。

3. 使用placeholder-shown伪类实现效果

使用placeholder-shown伪类来控制浮动文字的状态,当input元素的placeholder值被显示时,即输入框被聚焦或输入框中存在值时,浮动文字的样式会发生改变。

input:focus + label,
input:not(:placeholder-shown) + label {
  top: -10px;
  font-size: 12px;
  color: #007acc;
}

其中,input:focus + label选择器表示当输入框聚焦时,label元素的样式发生改变。input:not(:placeholder-shown) + label选择器表示当输入框中存在值时,label元素的样式也会发生改变。这两种情况下,都将label元素的top值设置为-10px,即将浮动文字向上移动。同时修改浮动文字的样式,将字体变小、颜色变为蓝色。

示例1

下面是一个完整的示例,可以将其复制到HTML和CSS文件中查看效果:

<div>
  <input type="text" name="username" placeholder=" " />
  <label for="username">Username</label>
</div>

div {
  position: relative;
  margin: 50px auto;
  width: 400px;
}
input {
  border: none;
  background: none;
  height: 45px;
  width: 100%;
  border-bottom: 2px solid #ccc;
  font-size: 18px;
  color: #333;
}
label {
  position: absolute;
  top: 15px;
  left: 0;
  font-size: 18px;
  color: #999;
  pointer-events: none;
  transition: 0.2s ease all;
}
input:focus + label,
input:not(:placeholder-shown) + label {
  top: -20px;
  font-size: 14px;
  color: #007acc;
}

示例2

下面是另一个示例,可以将其复制到HTML和CSS文件中查看效果:

<div>
  <input type="email" name="email" placeholder=" " required />
  <label for="email">Email address</label>
</div>
div {
  position: relative;
  margin: 50px auto;
  width: 400px;
}
input {
  border: none;
  background: none;
  height: 45px;
  width: 100%;
  border-bottom: 2px solid #ccc;
  font-size: 18px;
  color: #333;
}
label {
  position: absolute;
  top: 15px;
  left: 0;
  font-size: 18px;
  color: #999;
  pointer-events: none;
  transition: 0.2s ease all;
}
input:focus + label,
input:not(:placeholder-shown) + label {
  top: -20px;
  font-size: 14px;
  color: #007acc;
}

在这个示例中,我们增加了一些额外的输入验证,其中input元素的type属性设置为email,required属性表示该输入框为必填项。具体的效果可以通过复制示例代码实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS使用placeholder-shown伪类实现输入框浮动文字效果 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • vue中transition组件在项目中运用小结

    下面是关于“Vue中transition组件在项目中运用小结”的详细讲解: 简介 在Vue开发中,transition过渡效果能够提升用户交互体验。transition组件为Vue内置组件,可以简单、方便地实现DOM元素的过渡效果。本文将详细介绍transition组件的相关属性和用法,并提供两个使用示例,以便更好的理解transition组件在实际开发中的…

    css 2023年6月10日
    00
  • 如何利用vw+rem进行移动端布局

    利用vw+rem进行移动端布局,可以实现网页在不同设备上的自适应布局,使得页面在任何尺寸的屏幕上都能够完美展示。下面是利用vw+rem进行移动端布局的详细攻略: 1. 使用视窗单位 视窗单位有两种:vw 和 vh。它们的意思是 viewport width 和 viewport height。1vw 等于视窗宽度的 1%,1vh 等于视窗高度的 1%。在这里…

    css 2023年6月9日
    00
  • 基于JS实现回到页面顶部的五种写法(从实现到增强)

    以下是详细讲解“基于JS实现回到页面顶部的五种写法(从实现到增强)”的完整攻略。 一、引言 在网页的开发过程中,经常会遇到需要让网页回到页面顶部的需求,比如用户滑动较长页面后,需要快速回到顶部,提高用户体验。本文将介绍基于JS实现回到页面顶部的五种写法,包括从最基本的实现到功能增强的高级写法。 二、基本实现 最基本的实现方式就是通过JS设置scrollTop…

    css 2023年6月10日
    00
  • Selenium Webdriver元素定位的八种常用方式(小结)

    接下来我将为大家详细讲解“Selenium Webdriver元素定位的八种常用方式(小结)”的完整攻略。具体内容如下: 一、背景介绍 Selenium Webdriver是一种用于web应用程序自动化测试的开源工具。在Selenium Webdriver中,元素定位是一个重要的环节,正确有效的元素定位可以让测试用例的执行更加稳定和可靠。在Selenium …

    css 2023年6月9日
    00
  • CSS3之transition实现下划线的示例代码

    下面我将为您提供关于“CSS3之transition实现下划线的示例代码”的完整攻略: 一、transition基本概念 在学习transition之前,先简述一下transition的基本概念:transition是CSS的一个属性,用于指定一个元素在属性变化时的“过渡”。例如,当一个元素的宽度从200px变为300px时,通过transition将会过渡…

    css 2023年6月9日
    00
  • Javascript查看大图功能代码实现

    下面是“Javascript查看大图功能代码实现”的详细攻略: 1. HTML结构 首先需要在HTML中创建一个图片列表的结构,例如: <ul class="picture-list"> <li> <img src="1.jpg" alt="图片1"> </…

    css 2023年6月10日
    00
  • 基于JQuery的6个Tab选项卡插件

    首先,为了介绍6个Tab选项卡插件,需要先对jQuery库以及jQuery UI库有一定的了解。jQuery 是一款优秀的 JavaScript 库,它允许你在网页中轻松地精简 HTML 和操作文档。由于它的跨浏览器特性和简洁的语言写法,现在已经很多网站都在使用 jQuery。而jQuery UI是jQuery的用户界面插件,它提供了许多交互效果和插件,其中…

    css 2023年6月10日
    00
  • Bootstrap布局之栅格系统详解

    Bootstrap布局之栅格系统详解 栅格系统的基本概念和功能 栅格系统是 Bootstrap 最重要的功能之一,它是一个响应式的布局工具,能够让我们在不同的屏幕尺寸下构建出灵活的布局。栅格系统把屏幕分成了 12 个等宽的列,开发者可以通过给不同的 HTML 元素指定占用几列的宽度来完成不同的布局需求。 栅格系统的使用 使用栅格系统,我们需要将 HTML 代…

    css 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部