CSS的:Placeholder-Shown伪类有什么用?

数据库2025-11-05 07:37:392573

使用此伪类来设置当前显示占位符文本的伪类输入的样式,换句话说,有什用用户未在文本框中键入任何内容 ?伪类?

根据您的输入是否为空,应用一些动态样式非常好 ?有什用?

input:placeholder-shown {   border-color: pink; } 

它是如何工作的?

:placeholder-show 是CSS伪类,可让您将样式应用于具有占位符文本的伪类 <input> 或 <textarea>。

<input placeholder="placeholder text" /> <textarea placeholder="placeholder text"></textarea> 

结果:

如果显示占位符,有什用则为粉红色,伪类表示用户未输入任何内容 如果未显示任何占位符,有什用则为黑色,伪类表示用户已键入内容

:placeholder-showd必须具有占位符

如果元素没有占位符文本,有什用则此选择器将不起作用。伪类

<input /><!-- 没有占位符 --> <!-- 这也被视为没有占位符文本 --> <input placeholder="" />  input:placeholder-shown {   border-color: pink; } 

:placeholder-shown vs ::placeholder

因此,有什用我们可以使用 :placeholder-shown 设置输入元素的伪类样式。

input:placeholder-shown {   border: 1px solid pink;   background: yellow;   color: green; } 

?有什用?嗯...注意到有些奇怪??——我们将颜色设置为:绿色,但没有用。伪类好吧,这是因为 :placeholder-shown 只针对输入本身。但是对于实际的占位符文本,您必须使用伪元素 ::placeholder。

input::placeholder {   color: green; } 

但是!当我在处理这个问题时,我注意到还有一些其他属性,服务器托管如果在 :placeholder-shown 级别应用,将会影响到占位符文本。

input:placeholder-shown {   font-style: italic;   text-transform: uppercase;   letter-spacing: 5px; } 

现在,我真的不知道为什么会发生这种情况 ???♀? 也许是因为这些属性被占位符继承了。

:placeholder-shown vs :empty

尽管 :placeholder-shown 是专门用于确定元素是否显示占位符的。实际上,我们可以使用它来检查输入是否为空(当然,假设所有输入都有一个占位符)。因此,也许您的下一个问题是,我们不能使用CSS empty吗?好吧,让我们检查一下 ?????

<input value="not empty"> <input><!-- empty --> input:empty {   border: 1px solid pink; } input {   border: 1px solid black; } 

期待:

如果为空则为粉红色 如果不为空为黑色

嗯...从这里开始,您可能会认为 :empty 似乎在起作用,因为我们看到的是粉红色边框。但这实际上不起作用??

粉红色显示的原因是因为伪类增加了特异性,类似于类选择器(即 .form-input)比类型选择器(即 input)具有更高的特异性。高特异性选择器将始终覆盖低特异性设置的样式。

这是判决!不要使用 :empty 检查输入元素是云服务器否为空?

如何在没有占位符的情况下检查输入是否为空?

好了,所以我们检查输入是否为空的唯一方法是使用 :placeholder-shown。但是,如果我们的输入元素没有占位符,会发生什么情况?好吧,这是一个聪明的方法!传入一个空字符串 " "。

<input placeholder=" "><!-- 👈 传递空字符串 --> input:placeholder-shown {   border-color: pink; } 

与其他选择器组合

所以,我们可以针对显示占位符文字的输入元素,这很酷。换句话说,如果显示了占位符文本,那么一定意味着该元素是空的。利用这些知识,我们可以将这个伪类与其他选择器结合起来,做一些非常整洁的事情!让我们来看看 ??。

反向 :placeholder-shown 为 :not

我们可以使用 :not 伪类来做一些反向的事情。在这里,我们可以在输入不是空的免费信息发布网时候进行目标操作。

<input placeholder="placeholder" value="not empty" /> input:not(:placeholder) {   border-color: green; } 

结果:

绿色,如果不为空,则表示用户已经输入了一些内容。 如果为空,则为黑色

浮动标签

使用占位符而不使用标签的问题之一就是无障碍,因为一旦你在打字的时候,占位符文字就没有了,这可能会导致用户的困惑。一个真正好的解决方案是浮动标签。最初,占位符文本显示时没有标签,而一旦用户开始输入,标签就会出现。这样一来,你仍然可以在不影响用户体验和可访问性的前提下,保持表单的简洁性。双赢 ??

而这是可以用纯CSS实现的,我们只需要将 placeholder-shown 与 :not 和 + 结合起来就可以了。这是一个超级简化版的浮动标签。

<input name="name" placeholder="Type name..." /> <label for="name">NAME</label> label {   display: none;   position: absolute;   top: 0; } input:not(:placeholder-shown) + label {   display: block; } 

浏览器支持

对 :placeholder-shown 的支持非常好!这包括Internet Explorer(是的,我和你一样惊讶??)。但是,对于IE,你需要使用非标准名称 :-ms-input-placeholder。

本文地址:http://www.bzve.cn/html/581a65898760.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

热门文章

全站热门

如何在平板电脑上实现双开手游?(教程详解及实用技巧)

ubuntu上安装QQ一直是装的是双系统win7 + ubuntu (或 deepin linux) , 因为ubuntu 和 deepin linux都是半年一个版本,所以,每次有新版本推出,我就轮流安装体验。不过大部分的学习娱乐都是在win 7下完成的。 前两天win7出问题了,ghost死活不认.gho文件,下了两个windows 居然没装上;好吧~!借此机会,戒掉 windows ,彻底改用linux试试。设置root用户ddd

今天为了测试自己写的一个小应用,拿出了早已沦为备用机的Defy来做调试,结果发现ubuntu无法识别,找了一下,解决方案如下:获取usb设备信息通过usb连接上我们的手机,然后打开终端,输入lsusb,出现这样的界面:找到我们的设备,比如我这台Defy就是图中所示的部分。记下22b8:428c,等下会用到。切换root权限:sudo -s创建规则文件gedit /etc/udev/rules.d/feelyou-android-devices.rules添加规则信息在gedit中,给feelyou-android-devices.rules写入内容:SUBSYSTEM==usb,SYSFS{Google Inc.}==22b8,MODE=428c这里面的22b8和428c就是之前lsusb获得的信息。应用规则文件chmod a+rx /etc/udev/rules.d/feelyou-android-devices.rules/etc/init.d/udev restart重启adb切换到Android sdk目录下面的platform-tools文件夹,执行:sudo ./adb kill-serversudo ./adb devices成功之后会看到在Eclipse中已经可以正常识别了

打造自己的乐高电脑支架(发挥想象力,用乐高打造一个实用的电脑支架)

手机连接电脑删除的文件如何找回?(通过专业软件恢复被删除的手机文件)

如何解决电脑打开提示安全证书错误问题(了解安全证书错误及解决方法)

如何更新 Linux 内核来提升系统性能复制代码代码如下:uname -a接下来,访问官方的 Linux 内核网站,它会告诉你目前稳定内核的版本。愿意的话,你可以尝试下发布预选版(RC),但是这比稳定版少了很多测试。除非你确定想要需要发布预选版,否则就用稳定内核。此内核版本的二进制包可供下载链接如下:下载 4.2 内核(.DEB)复制代码代码如下:linux-headers-4.2.0-xxx_all.deb复制代码代码如下:linux-headers-4.2.0_xxx_all.deb复制代码代码如下:cd /tmp/复制代码代码如下:cd /tmp/wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.2-unstable/linux-headers-4.2.0-040200_4.2.0-040200.201508301530_all.debwget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.2-unstable/linux-headers-4.2.0-040200-generic_4.2.0-040200.201508301530_i386.debwget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.2-unstable/linux-image-4.2.0-040200-generic_4.2.0-040200.201508301530_i386.debsudo dpkg -i linux-headers-4.2.0-*.deb linux-image-4.2.0-*.deb最后,重新启动计算机才能生效。

Chromium 是 Google 的chrome浏览器背后的引擎,其目的是为了创建一个安全、稳定和快速的通用浏览器。在Ubuntu上使用APT安装Chromium有3种方法:复制代码代码如下:apt-get install chromium (接着按2下Tab键,会看到以下结果)然后我们可以大略确定就是包chromium-browser(包chromium是个飞行游戏)。复制代码代码如下:apt-cache depends chromium-browser复制代码代码如下:sudo apt-get install chromium-browser chromium-browser-l10n复制代码代码如下:sudo apt-get autoremove --purge chromium-browser chromium-browser-l10n复制代码代码如下:apt-get --helpman apt-getinfo apt-get

热门文章

友情链接

滇ICP备2023006006号-39