:placeholder-shown
另外,划重点,这个伪类是仍处于实验室的方案。也就是未纳入标准,当然我们的目的是探寻有意思的 CSS 。
当 input 类型标签使用了 placeholder 属性有了默认占位的文字,会触发此伪类样式。
配合:not()伪类,可以再改变当默认文字消失后的样式,再配合本文的主角,我们可以实现表单的一系列效果。
CSS 代码大概呈现成这样:
.g-container {width: 500px;
height: 60px;input {
height: 100%;
width: 100%;&:not(:placeholder-shown) {
...
}&:placeholder-shown {...
}
}&:focus-within {...
}
}

源码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.g-container {position: relative;
margin: 100px auto;
display: flex;
flex-wrap: wrap;
width: 500px;
height: 60px;
overflow: hidden;
transition: 0.3s;
}
.g-container > * {border: none;
outline: none;
}
.g-container .g_input_search {padding: 0 15px;
height: 100%;
width: 100%;
border: 1px solid #ddd;
font-size: 18px;
box-sizing: border-box;
}
/*.g-container .g_input_search:not(:placeholder-shown) {*/
/*border: 1px solid #03a9f4;*/
/*}*/
.g-container .g_input_search:not(:placeholder-shown) + .g_button_search {opacity: 1;
}
.g-container .g_input_search:placeholder-shown + .g_button_search {opacity: 0;
}
.g-container .g_input_search:not(:placeholder-shown){border: 10px solid #03a9f4;
font-size: 38px;
color: #03a9f4;
}
.g-container .g_button_search {background: #03a9f4;
color: #feffd4;
font-size: 15px;
cursor: pointer;
width: 100px;
height: calc(100% - 20px);
transition: 0.3s;
position: absolute;
right: 10px;
top: 10px;
}
.g-container:focus-within {-webkit-transform: translateY(-4px);
transform: translateY(-4px);
border-color: #bbb;
box-shadow: 4px 4px 10px 2px #ddd;
}
</style>
</head>
<body>
<div class="g-container">
<input type="text" placeholder="输入你想查询的内容" class="g_input_search" >
<button type="button" class="g_button_search">GO</button>
</div>
</body>
</html>

转载于:https://www.cnblogs.com/bgwhite/p/9414295.html

伪元素:placeholder-shown:focus-within相关推荐

  1. css 商城 两列_如何使用css伪元素实现超实用的图标库(附源码)

    今天我们来复盘一下前端中css伪元素的知识以及如何用css伪元素来减轻javascript的压力,做出一些脑洞大开的图形. 预备知识 伪元素 伪元素是一个附加至选择器末的关键词,允许你对被选择元素的特 ...

  2. java的string访问某个元素_CSS伪类与伪元素总是傻傻分不清,这份总结够面试用了

    熟悉前端的人都会听过 css 的伪类与伪元素,然而大多数的人都会将这两者混淆.本文从解析伪类与伪元素的含义出发,区分这两者的区别,并且列出大部分伪类与伪元素的具体用法,即使你有用过伪类与伪元素,但里面 ...

  3. css 商城 两列_css大法之使用伪元素实现超实用的图标库(附源码

    今天我们来复盘一下前端中css伪元素的知识以及如何用css伪元素来减轻javascript的压力,做出一些脑洞大开的图形. 预备知识 伪元素 伪元素是一个附加至选择器末的关键词,允许你对被选择元素的特 ...

  4. css中伪类和伪元素有什么不一样

    css中的伪类[:]和伪元素[::]都是我们日常开发过程中会用到的伪元素选择器,有时候我们用的是[:],有时候用的又是[::],有时候又好像两者都行,这到底是为什么呢?今天我们就来看看这两个东西到底有 ...

  5. 理解伪类选择器与伪元素选择器

    1. 两个选择器的异同: 伪类选择器是用来向某些选择器来添加效果.不修改DOM内容,通过一些特定的选择器根据特定的状态.特定条件来修改元素的杨氏.比如:悬停(hover).点击(active)以及文档 ...

  6. 常用的一些 CSS 技巧二 — 选择器(伪类与伪元素)

    你可以看看其他常用的 CSS 技巧: 常用的一些 CSS 技巧一 常用的一些 CSS 技巧三 CSS 重置盒模型 *, *::before, *::after {box-sizing: border- ...

  7. css3伪元素::_CSS荧光笔:使用:: selection伪选择器

    css3伪元素:: Selecting content on a web page - whether by mouse, touch, gesture or stylus - always prec ...

  8. 伪类选择器与伪元素选择器的区别

    Hello,小可爱们,今天我们一起来区分一下伪类选择器跟伪元素选择器吧! 伪类选择器与伪元素选择器在名字上很相似,所以对于初学者来说,很容易混淆它们,区别不开,其实两者在作用上还是有本质的区别的,只要 ...

  9. 【web】伪类伪元素

    伪类伪元素 伪类选择器 可以理解为描述元素的某种状态 常用伪类 a标签的4种伪类(要按顺序书写:link.visited.hover.active) :link:元素链接点击前的样式 :visited ...

  10. CSS3伪类和伪元素的特性和区别

    前端er们大都或多或少地接触过CSS伪类和伪元素,比如最常见的:focus,:hover以及<a>标签的:link.visited等,伪元素较常见的比如:before.:after等. 其 ...

最新文章

  1. ceph nautilus相对于minic的主要改动
  2. 关闭图片 pycharm_博士大佬总结的Pycharm 常用快捷键思维导图,收藏!
  3. 大数据和云计算时代的机遇
  4. dev gridcontrol简单的动态设置动态表头
  5. python获取计算机信息系统数据罪_工作心得:破坏计算机信息系统罪与非法获取计算机信息系统数据罪的区分...
  6. linux查看执行过的命令行,在Linux命令终端中查看和编辑曾执行过的命令 – LINUX笔记 – CFEI.NET...
  7. java堆缓冲区,Java NIO之Buffer(缓冲区)
  8. 横空出世,席卷互联网--评微软等公司数据结构和算法面试100题 .
  9. *HDU1846HDU2188 巴什博奕
  10. 基于windows的iOS自动化测试
  11. WEB渗透测试-安全白帽子修炼
  12. 实验一:数据结构之顺序表例程 简易电话薄
  13. 一种突发事件的时滞动力学模型 2019-nCoV与参数辨识
  14. OpenGL 相关的理论
  15. 日常学习之总结(1机器学习,2jupyter notebook,3语言类,4快捷键,5操作系统,6密码学,7Web安全,8Kali,9正则表达式,10计算机网络,11编程题目)
  16. 你不可不知的《哈利波特》秘密(四)
  17. CSS正方体背面不可见
  18. VC++6.0报错: include stdafx.h before including this file for PCH
  19. Android动画弹窗
  20. 【ECCV2022】OSFormer: One-Stage Camouflaged Instance Segmentation with Transformers

热门文章

  1. java习题8,Java经典练习题8
  2. mysql清除数据痕迹_MySQL使用痕迹清理~/.mysql_history - milantgh
  3. python工具打造之实现端口扫描
  4. STM32开启定时器就立即进Update中断问题探索
  5. 编写字符串反转函数 .
  6. python自动化测试常用库_Python自动化测试常用库整理
  7. python网络编程能做什么_python网络编程——什么是socket?
  8. 代码模板在哪里_C++的可变参数模板
  9. 没有运行 spring_Spring事务的传播行为案例分析
  10. idea java 代码混淆加密_使用 IntelliJ IDEA 开发一般 Java 应用程序时配置 Allatori 进行代码混淆...