前言

因为业务需求, 要求我们的input框内的文本与悬浮的光标颜色不同, 这样的问题肯定在书本上很难找到解决办法, 需要通过平时的基础积累和经验。

解决方案

使用 ::first-line 伪元素

使用 text-shadow 和 text-fill-color

使用 caret-color

::fist-line 修改元素

原理

一般来说,设置input框的 color 属性会修改文本内容的颜色,同时顺带改变光标的颜色。而::first-line也可以设置首行文本内容的颜色, 利用选择器的权重比,::first-line覆盖了前者的color,最终得到了想要的结果。实际演示

input.form-control {

color: #05d380; /* 光标颜色 */

}

input.form-control::first-line {

color: #333; /* 文本颜色 */

}

缺陷

只适用于input框, 同时微信 webview 不支持。需要写两个css样式。

text-shadow 和 text-fill-color

原理

先利用color设置文本和光标的颜色, 然后利用 text-shadow 设置文本阴影覆盖文本颜色, 最后使用text-fill-color 将文本颜色置为透明。实际演示

.form-control {

color: #05d380; /* 光标颜色 */

text-shadow: 0 0 0 #333; /* 文本颜色 */

-webkit-text-fill-color: transparent;

}

/* 设置暗文颜色 */

.form-control::-webkit-input-placeholder{

color: rgb(60, 0, 248); /* 改变placeholder文本颜色 */

text-shadow: none;

-webkit-text-fill-color: initial;

}

缺陷

text-fill-color 属性不太支持 firefox, 目前尽量使用 -webkit- 前缀。

caret-color

原理

这是CSS3最新的属性,目的就是为了解决光标颜色的问题。 实际演示

.form-control {

color: #333; /* 文本颜色 */

caret-color: #05d380; /* 光标颜色 */

}

缺陷

低版本IE浏览器不支持

兼容性考虑

为了兼容多端设备显示情况,我们必须要将一些情况考虑进来, 使用@support 条件判断来检测是否可用。因为我的环境在于移动端展示,所以只要要求进行兼容移动端,结合第二种和第三种解决方案,可以大面积覆盖设备。

.form-control {

color: #05d380; /* 光标颜色 */

text-shadow: 0 0 0 #333; /* 文本颜色 */

-webkit-text-fill-color: transparent;

}

@supports (caret-color: #05d380) {

.form-control {

color: #333; /* 文本颜色 */

caret-color: #05d380; /* 光标颜色 */

}

}

小结

最近的需求里,移动端开发越来越多,而设备兼容性一直都是头疼的事情,如何更好的方式调试,写出兼容性更强的代码。需要的就是不断总结,减少错误重复发生。

最后能给大家带来帮助就好,希望大家多点赞,收藏 !!

周边知识

java错误光标的闪烁怎么设置_【CSS3】自定义设置可编辑元素闪烁光标的颜色相关推荐

  1. 【3】VSCode 主题设置推荐,自定义配色方案,修改注释高亮颜色

    相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...

  2. 计算机设置用户权限的风险,电脑安全设置_当前安全设置会使计算机有风险怎么关掉...

    电脑进去安全模式,怎么设置正常启动 第一种:在你重启电脑或是开机的时候,按住F8键,这时候就会进入系统多操作启动菜单,接着用上下键来选择安全模式,最后按回车键就会进入安全模式. 电脑出现当前安全设置不 ...

  3. 电脑ip地址设置_路由器怎么设置静态IP 路由器设置静态IP方法【详解】

    如果对上网方式比较有研究的用户会发现,如今的上网方式一般分为静态IP上网.动态IP上网和宽带拨号上网,宽带拨号上网方式相信是大部分用户都比较熟悉的,至于动态IP和静态IP上网方式则比较陌生了,路由器怎 ...

  4. ad网络标号怎么批量设置_网络打印机怎么设置 网络打印机安装方法【详细步骤】...

    1.安装与共享本地打印机 本地打印机就是连接在用户使用的计算机上的打印机.要在Windows 2000 Server中添加打印机,步骤如下: (1)选择"开始→设置→打印机"命令, ...

  5. AndroidStudio_开发工具的设置_界面设置_字体设置_使用习惯设置_按钮设置等一些设置的介绍---Android原生开发工作笔记71

    这里说一下androidstudio的一些设置,很多是不常用的,用的时候,自己百度一下也很方便,这里仅仅说一下就可以了 可以通过上面settings打开设置 可以看到这个设置框 可以搜索比如搜font ...

  6. 苹果手机夜间模式怎么设置_微信怎么设置夜间模式?iPhone夜间模式设置教程 省电又护眼!...

    最近有小伙伴后台留言问了这样一个问题,微信怎么设置夜间模式?首先微信APP目前本身并没有加入夜间模式,如果觉得夜间看手机刺眼的话,可以开启手机自动的夜间模式,大多数安卓和iOS手机都支持,开启后不仅更 ...

  7. gm220s路由器怎么设置_二级路由器怎么设置_二级路由器设置图解教程-192路由网...

    二级路由器怎么设置?使用路由器上网时,经常会遇到这样的情况,一个路由器不能够满足使用需求:为了解决这个问题,可以在增加一个二级路由器,对网络进行扩展.本文将通过图解教程的方式,详细介绍二级路由器的设置 ...

  8. scum无法启动此程序以为计算机丢失,人渣SCUM低配电脑画面怎么设置_画面优化设置方法...

    本文给大家带来人渣SCUM低配电脑设置方法推荐,人渣SCUM需求配置还是比较高的,对于低端电脑来说玩的话,可能会很卡顿,接下来一起来看看优化方法吧. 低端电脑设置方法介绍 1.设置启动项(最重要) 打 ...

  9. 台式电脑怎么改计算机名,台式电脑ip怎么设置_台式电脑手动设置ip的方法-系统城...

    ip是电脑的标识,一般电脑的ip地址都是默认自动获取的.但有时因为某些原因我们需要重新设置ip,所以有些不熟悉的用户就问小编台式电脑ip怎么设置呢?对于这一问题,今天小编就来教大家关于台式电脑手动设置 ...

最新文章

  1. mysql数据去重语句_数据库 mysql 语句
  2. 使用二维高斯函数模糊图片
  3. sping拦截器配置顺序影响事务正常运行
  4. 让人抓头的Java并发(四) 阻塞队列--CPU飙升排查案例
  5. MATLAB实战系列(二十二)-matlab三维图形绘制案例最全集锦(毕设和数学建模必看)
  6. 如何在JSP里自定义标签
  7. 在IDEA中右键New没有创建Mapper文件选项解决办法
  8. Doxygen with Graphviz to generate call graph on Mac
  9. 【NLPCC 2021】 First Call For Papers
  10. Linux进程间通信IPC学习笔记之同步一(线程、互斥锁和条件变量)
  11. mysql加begin报错,MySQL存储过程例子,不能在if else里面用begin end否则会报错Error Code:1064解决...
  12. 软件测试与软件开发比较?
  13. 低速硬件接口之RS485接口自收发隔离多节点分享
  14. 用友u8 php,php读取用友u8采购入库单列表及详细
  15. 用java实现电脑的usb功能,包括鼠标,键盘
  16. 英语不好、数学不好能自学编程吗?自学编程出路如何?老程告诉你
  17. MP3 文件格式解析
  18. Dynamic Scoping (动态范围)
  19. poi 操作 导出excel 合并列
  20. 华为浏览器html页样式没了,返回键没有了怎么办 华为手机没有返回键了怎么处理...

热门文章

  1. [转]一个人生活,如何摆脱孤独提升幸福感?
  2. mysql的配置管理_MySQL 启动流程及配置管理
  3. 人工智能 —— 语义网络推理
  4. word表格分开快捷键_在Word2010表格的编辑中,快速的拆分表格应按()快捷键。
  5. epublib java_java中使用Epublib解析EPub文件
  6. 图片采集-输入关键词批量收集图片免费
  7. 通过U盘传播的“病毒”
  8. decomposepar代码解读
  9. 如何防止U盘病毒入侵方法
  10. USTC English Club20171010