这篇文章主要介绍CSS中的:placeholder-shown伪类有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
一般我们常见<代码>占位符代码>伪类选择器用来修改默认样式及文案,忽然发现<代码> placeholder-shown 代码>伪类选择器,比较官方的解释是
CSS伪类表示任何显示占位符文本的表单元素。引用>简单来说就是当输入框的占位符内容显示的时候,输入框干嘛干嘛。
兼容性如下,在移动端没什么问题
<代码> placeholder-show> 代码是如何工作的?
<代码>:placeholder-shown 代码> CSS伪类在<代码> & lt; input> 代码>或<代码> & lt; textarea> 代码>元素显示占位符文本时生效,简单的说就是占位符有值才生效,如下所示:
//,html & lt; input 占位符=皃laceholder  text",/比; & lt; textarea 占位符=皃laceholder  text"祝辞& lt;/textarea>//,css 输入:placeholder-shown, textarea: placeholder-shown {, 边境才能:1 px solid 粉红色; }
如果<代码>占位符> 代码为空<代码> placeholder-show> 代码就没效果了:
//,html & lt; input 占位符=啊?/比; & lt; textarea 占位符=?text"祝辞& lt;/textarea>
:placeholder-shown vs:占位符
我们可以使用<代码>:placeholder-shown 代码>设置输入<代码> 代码>元素的样式。
输入:placeholder-shown { 边境才能:1 px solid 粉红色; 背景:才能,黄色; ,,颜色:绿色; }
注意一些奇怪的问题,我们设置<代码>颜色:绿色> 代码,但没有作用用。这是因为<代码>:placeholder-shown> 代码仅会针对<代码>输入代码>本身。对于实际的占位符文本,必须使用伪元素<代码>::占位符代码>。
输入::placeholder { ,,颜色:绿色; }
我注意到有一些其他的属性,如果应用<代码>::placeholder-shown> 代码,也会影响<代码>占位符> 代码的样式。
输入:placeholder-shown,, textarea: placeholder-shown {, ,,字体样式:斜体; 首字母才能:大写; 字母间距才能:5 px; }
我也不知道这是啥情况,也许是因为这些属性被<代码>占位符代码>继承了,如果你知道原因,欢迎留言告诉我一下,谢谢。
:placeholder-shown vs:空
<代码>:placeholder-shown> 代码是专门用于确定元素是否显示占位符的对象,我们主要使用它来检查输入<代码> 代码>内容是否为空(假设所有的<代码>输入> 代码都有一个占位符)。这里你可能会想,使用空<代码> 代码>也是可以的吧?我们来看看。
//,html & lt; input 价值=https://www.yisu.com/zixun/安豢铡? <输入> //css 输入:空{ 边界:1 px固体粉红色; } 输入{ 边界:1 px固体黑色; }
这里看似空<代码> 代码>起作用了,因为我们看到的是粉红色边框,但这实际上不起作用
之所以显示粉红色,是因为伪类增加了css的权重。类似于类选择器(即<代码>。表单输入> 代码)比类型选择器(即<代码>输入> 代码)具有更高的权重。高权限选择器将始终覆盖低权重设置的样式。
所以我们可以这样说:不要使用<代码>:空> 代码检查输入元素是否为空。
如果检查输入内容是否为空(在没有点位符的情况下)?
我们检查输入是否为空的唯一方法是使用<代码>:placeholder-shown> 代码。但是如果我们的输入元素没有占位符会发生什么呢?这里有个取巧的方法:传入一个空字符串<代码>““代码>。
//,html & lt; input 占位符=?“在& lt; !,,, pass empty string ——比;//css 输入:placeholder-shown { ,,边框颜色:粉色; }
组合其它选择器
我们可以使用<代码>:不是代码>伪类对某些事物进行逆运算。在这里,我们可以在输入不是空的情况下进行定位。
//html & lt; input 占位符=皃laceholder", value=https://www.yisu.com/zixun/"非空"/>//css 输入:没有(placeholder-shown) { 边界:1 px固体绿色; }实战
CSS中的:placeholder-shown伪类有什么用