input框focus,让外层的div产生样式变化:div的focus伪类

CSS状态伪类:构建可访问、跨端、合规的交互基础 CSS状态伪类(如:hover、:focus、:active)是Web交互的核心机制,其本质是浏览器对用户输入意图的原生响应层,而非简单的视觉装饰。它们基于HTML语义触发,遵循指针事件与焦点管理的底层逻辑,在桌面、触屏及辅助技术环境中表现各异。正确实现不仅能提升点击信心与导航效率,更是满足WCAG 2.1‘焦点可见性’和‘状态一致性’等可访问性要求的技术前提。本文聚焦链接与按钮的状态链设计,覆盖多端适配、ARIA协同、`:focus-visible`渐进增强及`:has()`等现代组合用法,为构建鲁棒、包 阅读详情

:focus-within

当点击里面的input框的时候input得到焦点,外层div就会有相当于拥有了input:focus的伪类选择一样,
在这里插入图片描述

 <div class="status-item" v-for="(item,index) of statuslist" :key="index"> 
            <div class="status-picker-color-input-wrapper" > 
                <div class="monday-style-clickable" >
                    <div class="color-option-box" :style="`background-color:${item.color}`">
                        <svg viewBox="0 0 20 20" fill="currentColor" width="16" height="16" aria-hidden="true"  >
                            <path d="M6.34344 4.11612C6.57786 3.8817 6.8958 3.75 7.22732 3.75C7.39148 3.75 7.55402 3.78233 7.70568 3.84515C7.85734 3.90797 7.99514 4.00004 8.11121 4.11612C8.22728 4.23219 8.31936 4.36999 8.38217 4.52165C8.38681 4.53283 8.39127 4.54407 8.39557 4.55537C8.29619 4.61768 8.20333 4.69139 8.11905 4.77566L5.97733 6.918V5C5.97733 4.66848 6.10902 4.35054 6.34344 4.11612ZM4.47733 8.41843V5C4.47733 4.27065 4.76706 3.57118 5.28278 3.05546C5.79851 2.53973 6.49798 2.25 7.22732 2.25C7.58846 2.25 7.94606 2.32113 8.2797 2.45933C8.61335 2.59753 8.91651 2.8001 9.17187 3.05546C9.42723 3.31082 9.62979 3.61398 9.76799 3.94762C9.83894 4.1189 9.89221 4.2965 9.92726 4.47764C10.0798 4.55293 10.2204 4.65314 10.343 4.77566L16.1371 10.5711C16.2915 10.7258 16.3995 10.9214 16.448 11.1345C16.4964 11.3476 16.4837 11.5701 16.4114 11.7764C16.339 11.9826 16.2099 12.1642 16.039 12.3004C15.868 12.4365 15.6621 12.5217 15.4449 12.546L13.9384 12.7137L10.3433 16.3087C10.0447 16.6077 9.68966 16.8452 9.29927 17.007C8.90873 17.169 8.49011 17.2523 8.06734 17.2523C7.64457 17.2523 7.22594 17.169 6.8354 17.007C6.44499 16.8452 6.09029 16.608 5.7916 16.309L3.46525 13.9819C3.16639 13.6833 2.92898 13.3283 2.7672 12.938C2.60536 12.5476 2.52206 12.129 2.52206 11.7064C2.52206 11.2837 2.60536 10.8652 2.7672 10.4747C2.92904 10.0843 3.16624 9.72952 3.46525 9.43079L4.47733 8.41843ZM9.17963 5.8364L4.52574 10.4916C4.36617 10.651 4.23926 10.8407 4.15289 11.0491C4.06652 11.2574 4.02206 11.4808 4.02206 11.7064C4.02206 11.9319 4.06652 12.1553 4.15289 12.3637C4.23926 12.572 4.36585 12.7614 4.52542 12.9208L6.85241 15.2484C7.01185 15.4081 7.20146 15.535 7.40988 15.6214C7.6183 15.7078 7.84171 15.7523 8.06734 15.7523C8.29296 15.7523 8.51637 15.7078 8.72479 15.6214C8.93322 15.535 9.12256 15.4084 9.282 15.2487L13.0637 11.467C13.1841 11.3466 13.3418 11.2708 13.5111 11.252L14.578 11.1332L9.28238 5.8364C9.26877 5.82284 9.25023 5.81512 9.231 5.81512C9.21173 5.81512 9.19325 5.82278 9.17963 5.8364ZM15.4947 13.5053L14.392 15.7106C14.2763 15.942 14.2364 16.204 14.2779 16.4593C14.3194 16.7147 14.4403 16.9505 14.6233 17.1333C14.7377 17.2479 14.8736 17.3389 15.0231 17.4009C15.1727 17.463 15.3331 17.4949 15.495 17.4949C15.6569 17.4949 15.8173 17.463 15.9668 17.4009C16.1164 17.3389 16.2523 17.2479 16.3667 17.1333C16.5496 16.9504 16.6703 16.7146 16.7117 16.4592C16.7531 16.2039 16.7131 15.942 16.5973 15.7106L15.4947 13.5053Z" fill="#FFFFFF" fill-rule="evenodd" clip-rule="evenodd"></path>
                        </svg>
                    </div>
                </div> 
                <input class="editable-input--wrapper color-option-input" placeholder="请输入" dir="auto" autocomplete="on" :value="item.name" >
            </div>    
        </div>    

//statuslist数组
 statuslist:[{
                type:1,
                name:'正常',
                color:'#B6EBDD'
            },{
                type:2,
                name:'超期',
                color:'#FA97AC'
            },{
                type:3,
                name:'风险',
                color:'#FDD59F'
            },{
                type:4,
                name:'完成',
                color:'#C5DEFD'
            },{
                type:5,
                name:'冻结',
                color:'#EEDFFB'
            }],
   //css    
   .status-item {
    line-height: 32px;
    display: flex; 
    padding-bottom: 8px;

}
.status-item .status-picker-color-input-wrapper {
    display: flex;
    border-radius: 4px;
    height: 32px;
    width: 152px;
    flex: 0 0 152px;
    border: 1px solid;
    border-color: #d2dcf1; 
    align-items: center;
}
.status-item .status-picker-color-input-wrapper .color-option-box {
    flex: 0 0 24px;
    height: 24px;
    width: 24px;
    border-radius: 4px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    display: flex;
    justify-content: center;
    align-items: center;
}
.status-item .status-picker-color-input-wrapper .color-option-box:hover{
     opacity: 0.7;
}
.status-item .status-picker-color-input-wrapper .color-option-input {
    will-change: flex,width;
    flex: 0 0 128px;
    width: 128px;
    height: 100%; 
    color: #323338; 
    outline: none;
    margin-left: 4px;
    padding-right: 4px;
    border: none;
    border-radius: 0 2px 2px 0;
    border-width: 1px 1px 1px 0;
    border-style: solid;
    border-color: transparent;
    /* pointer-events: none; */
    min-width: 0;
}
.editable-input--wrapper { 
    background-color: transparent;
    display: inline-block; 
    max-height: 100%;
    margin: auto 0;
    padding: 0 4px; 
    vertical-align: top;
    text-align: left;  
    line-height: 22px;
}
.status-item .delete-status {
    visibility: hidden;
    width: 30px;
    text-align: center;
    margin-left: 2px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.monday-style-clickable {
    cursor: pointer;
}
.status-item:hover .delete-status{
    visibility: visible; 
}
.status-item .status-picker-color-input-wrapper:focus-within{
   border-color:rgb(34, 63, 230);
}    
React包装组件设计与实现:从props契约到无障碍实践 包装组件是React中基于props和JSX构建可复用UI结构的基础范式,其核心在于通过属性系统封装HTML语义、样式边界、交互逻辑与无障碍支持。它并非简单套壳,而是定义清晰的API契约,解决样式污染、语义缺失和行为耦合等工程痛点。借助TypeScript接口约束、useId生成唯一ID、aria-*属性注入及asChild/forwardRef等机制,可构建出类型安全、可访问、易测试的生产级组件。广泛应用于表单字段、卡片容器、弹窗、徽章等高频场景,是前端工程化与React面试考察的关键能力。 阅读详情

相关推荐

Minimal CSS Reset:7行代码解决前端布局一致性问题

CSS重置不是初始化仪式,而是构建可预测UI系统的基础契约。其核心在于统一盒模型计算、切断危险的样式继承链、回收布局控制权,从而支撑rem响应式适配、Flex/Grid精准对齐等现代前端实践。它直面浏览器默认样式(User Agent Stylesheet)与现代布局范式之间的冲突,通过极简声明消除`box-sizing`不一致、`line-height`污染、表单控件对不齐、标题段落间距失控等高频工程问题。适用于Vue/React组件化项目、Tailwind集成场景及金融、电商等对UI稳定性要求严苛的中后

weixin_34194359的博客 411

关于input标签:focus更改样式的问题

input标签的border和outline 总觉得是一个自己踩了很多次的坑 若希望实现input在触发焦点时更改样式,通常会想到使用:focus选择器,但当使用border去更改样式时,会发现失效了: input[type=text]:focus{ border: 1px solid #AFECAB; } 这里是希望改成浅绿色边框,发现不起作用,也无关层级,因为加了!important也没有...

阿猫搬砖丶 4万+

React生产级自动补全组件:三层解耦架构与工业实践

自动补全(Autocomplete)是前端交互中的基础但高复杂度功能,其本质是输入驱动的动态列表渲染与键盘导航状态机。核心原理在于分离用户输入、数据获取与UI呈现三者职责,通过受控组件+状态机(useReducer)保障状态一致性,结合可插拔数据源(DataSource)适配API、本地缓存等异构场景。技术价值体现在可测试性、SSR兼容性、无障碍支持(ARIA)及防抖/虚拟滚动等性能可控性。典型应用于中后台搜索框、CRM客户联想、BI指标筛选等强定制化场景。本文聚焦React生态下零外部依赖、TypeScr

ciya3282的博客 423

JavaScript---------input标签的focus属性

focus属性是一种,它表示用户聚焦或选中了某个可编辑字段或其他可交互元素。,用户可以开始输入文本或执行其他交互操作。focus属性通常与JavaScript事件处理程序一起使用,例如onfocus和onblur事件。在HTML中,可以将focus属性添加到<input>标签中以监测并处理界面元素的焦点状态。

cmHuney的博客 3115

Utrust4701F与Utrust2700R读写器在银河麒麟系统的安装及测试步骤说明

Utrust4701F与Utrust2700R读写器支持银河麒麟系统,广泛应用会员管理、支付管理等领域。本文将重点介绍Utrust4701F与Utrust2700R读写器在银河麒麟系统的安装及测试步骤说明。以上方法适用于主流国产操作系统,如 优麒麟(UbuntuKylin)/ 中标麒麟(NeoKylin) / UOS(统信操作系统)/ 中兴新支点 / 红旗 linux(redflag linux)/ 普华 Linux(I-soft OS) / 威科乐恩 Linux(WiOS)等

华翔天诚科技 1833

我用两个月时间,终于把优快云付费资源项目玩明白了!

关于项目的定位,这是一个知识付费项目,根据市场研究机构的数据显示,到2023年,全球知识付费市场规模将达到2000亿美元,所以说知识付费的前景是十分广阔的,当下互联网时代信息大爆炸,80后、90后、00后群体对知识付费的认可度也大幅提升,同时这群作为知识付费的主流人群已经具备了更强的消费能力,而且对于知识付费的需求更高。目前整个知识付费领域仍然在发展起步的初期,尽快在知识付费领域布局可以帮助我们在这波红利中获得一份不错的收益。而且个人认为,

白话机器学习 2万+

去除input标签focus时蓝色边框

去除标签focus时蓝色边框 问题: 当使用input标签时,它会有一个默认样式,即当其获取到焦点时,会有一个蓝色边框效果。如下图: 未获取焦点时: 获取到焦点时: 我们在控制台查看input:focus如下图。 发现并没有相关的样式。 事实上这是input的outline属性带来的问题。当我们加上 input { outline:none; } 就能解决这个问题。同样有这个问题...

九日的博客 8633

报错:subprocess.CalledProcessError: Command ‘[‘where‘, ‘cl‘]‘ returned non-zero exit status 1.

右键此电脑--属性--高级系统设置--环境变量--系统变量--找到Path。Enterprise是企业版,如果你是社区版就找Community。2.安装的时候,c++桌面那个需要勾选。

2301_77554343的博客 1507

css小技巧,input框focus,让外层包裹input的div产生样式变化(可以当做是是div的focus伪类)

代码: css: .el-form-item { border: 1px solid rgba(255, 255, 255, 0.1); // background: rgba(0, 0, 0, 0.1); color: #454545; border-radius: 10px; border-color: #c7c7c7; transition: all .3s; margin-bottom: 36px; } .el-form-item:fo

bittingCat的博客 3582

WOFOST模型参数调优实战:从‘跑不通’到‘预测准’的避坑指南

本文详细介绍了WOFOST模型参数调优的实战技巧,帮助用户从模型报错诊断到参数敏感性分析,再到土壤-作物参数联调策略,逐步解决‘跑不通’到‘预测准’的问题。通过Python和PCSE工具,提供参数扰动测试模板和关键参数优先级矩阵,助力作物模型的高效校准与预测。

weixin_32597009的博客 622

Xilinx DMA IP核心配置与实战解析

本文介绍了Xilinx DMA IP核在直接寄存器模式下的配置与工作流程。DMA通过AXI4-Lite接口接收指令,实现内存与数据流之间的高速传输,无需CPU介入。文章详细说明了开发环境配置、IP参数设置(包括地址位宽、数据宽度等关键参数)以及寄存器操作流程。通过仿真分析,展示了读操作中AXI4接口的突发传输机制,包括地址、长度和突发大小的配置。文中还提供了寄存器地址映射表、信号定义等关键信息,为DMA IP核的应用开发提供了实用参考。

weixin_37688766的博客 884

input 输入框 focus更改样式

这里是希望改成浅黑色边框,发现不起作用,也无关层级,因为加了!important也没有作用,后来发现,在触发:focus时,用作突出的边框色,是由outline控制的,即获得焦点时,会被一个轮廓虚拟框围绕,而轮廓虚线框就是 outline。ps:当然,若你直接用js或jq的.focus去更改border的样式也是可以实现的。input标签的border和outline。

踢足球的程序员的博客 3118

UFS总体介绍及FPGA开发

通过实现UFS的主控制器、设备控制器等组件,我们可以在FPGA上进行UFS开发,并实现高速数据传输和低功耗特性的存储解决方案。物理层负责传输物理信号,数据链路层提供数据包的传输和错误检测功能,传输层处理数据包的分段、重组和重传,逻辑层管理设备和主控制器之间的命令和数据传输,文件系统层负责文件管理和数据存储。在本文中,我们将介绍UFS的总体架构和特性,并探讨如何在FPGA上进行UFS开发。这些组件的实现涉及到UFS协议的具体细节和硬件平台的特性,因此需要参考UFS协议规范和FPGA开发平台的相关文档。

PodProgram的博客 2135

Vue3:根据el-input封装全局v-focus指令

类可能会一直残留在上一次的 DOM 节点上,导致样式不统一。,不会再出现“只能触发一次”的情况。隐藏/显示,元素始终保持挂载状态,只会触发。,基本可以保证输入框已经真正出现在页面上。,而弹框关闭后 Vue 并没有重新触发。可能仍然早于真实可聚焦的时机。,DOM 并未销毁),或者弹框是通过。,导致后续实例没有再执行聚焦逻辑。的组合,确保每次弹框创建时都走。,每次打开都会重新创建元素,有时候弹框的渲染顺序非常快,(2)在指令里监听弹框的。的弹框),可以在指令内部。销毁后又重新创建,但。

fury的博客 1203

从养虾到退坑:OpenClaw 卸载不留残留,一步到位

文章摘要: 本文提供OpenClaw软件的完整卸载指南,适用于Windows、macOS和Linux系统。内容包含卸载前的数据备份步骤(配置文件、日志、插件列表),以及详细的卸载脚本。Windows版通过批处理文件删除程序文件、注册表项和环境变量;macOS/Linux版则提供shell脚本,涵盖服务停止、软件包卸载、配置清理等步骤。特别强调要删除所有用户数据(包括多用户环境),确保系统无残留。文末建议重启计算机以使更改生效,实现"一步到位"的彻底卸载。

一键难忘的博客 298

PreScan快速入门到精通第三十九讲基于车道线识别传感器的车道保持辅助算法Demo讲解

车道保持辅助系统使用一个前置的摄像头,一般安装在车内后视镜附近,用来检测车辆前方的车道线,并监测车辆在其车道上的位置。在有电动助力转向EPS的车辆中,它轻轻地,但明显地反转向,以保持车辆在车道上。在简单车辆动力学的Simulink模型中,一个25%的油门开度常数被设定为输入,作为车辆行驶的纵向动力。首先是近似的角度α,它是传感器航向(=车辆航向)与右侧车道车道线的切线的近似角。一个配备了车道线传感器和简单动力学模型的车辆(MAZDA),将在没有任何规定轨迹的情况下跟随道路车道线行驶。3D浏览器中的多视图。

小明师兄的博客 1842

Gemini 2.5 Pro 怎么选:Gemini-CLI-UI 模型切换与 YOLO 模式全攻略

**Gemini-CLI-UI** 是 Google Gemini CLI 的响应式 Web 界面,让你在浏览器中通过对话完成 AI 辅助编程,并支持在 **Gemini 2.5 Flash** 与 **Gemini 2.5 Pro** 之间一键切换模型,还能开启 YOLO 模式跳过所有确认提示、加速自动化操作。本文带你用最少的步骤完成模型选择与 YOLO 模式配置,从新手到熟练只用一篇攻略。

gitblog_00311的博客 897

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

vue组件封装-input

这个组件不会涉及太多东西,就是为了美观css会多一点。

qq_52989046的博客 1273

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

React-Input-Autosize最佳实践:提升用户体验的7个技巧

React-Input-Autosize是一个智能的自动调整大小输入框组件,它能根据用户输入的内容动态调整宽度,为用户提供流畅的表单交互体验。这个轻量级的React组件能够显著提升表单界面的可用性和美观度,特别适合需要动态输入内容的场景。 ## 🚀 为什么选择React-Input-Autosize? 在传统的表单设计中,固定宽度的输入框常常会导致两种问题:要么空间浪费,要么内容被截断。Re

gitblog_00493的博客 955

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

uniapp开发微信小程序,设置页面中input组件的有效点击作用域加大

uniapp开发微信小程序,设置页面中input组件的有效点击作用域加大

qq_42993731的博客 437

React-Input-Autosize:打造自适应宽度输入框的终极指南

React-Input-Autosize 是一个专为 React 应用设计的自适应宽度输入框组件,能够根据用户输入的内容自动调整宽度,让界面更加整洁美观。无论是简单的表单还是复杂的交互界面,它都能轻松满足输入框宽度自适应的需求,提升用户体验。 ## 为什么选择 React-Input-Autosize? 在日常的 React 开发中,固定宽度的输入框常常会遇到内容过长溢出或内容过短留白过多的问

gitblog_00368的博客 516

Claude Code UI样式库:组件化设计与状态持久化实战

在现代前端开发中,组件化设计与状态管理是构建可维护、可复用用户界面的核心技术。通过将UI拆分为独立、可配置的组件单元,并结合CSS-in-JS或模块化样式技术,开发者能够实现样式与逻辑的高内聚、低耦合。这种模式的核心技术价值在于提升开发效率、保障代码一致性,并轻松适配不同主题与宿主环境。其典型应用场景包括构建复杂Web应用、开发IDE插件以及设计工具类桌面应用。本文聚焦于解决AI编程工具Claude Code的UI定制痛点,深入探讨了如何运用CSS变量实现主题系统,并设计了一套健壮的状态持久化Hook,有效

weixin_30378623的博客 435

Android 软键盘将指定的布局顶上去

开场白:经常在耳边听到测试或者产品说:“为什么ios可以实现,Android不可以了?” 需求:模仿微信创建拼手气红包的页面。 解决方案:首先在需要软键盘顶上去的布局外面嵌套ScrollView <ScrollView android:id="@+id/scrollview" android:layout_width="match_parent"

方东的博客 1844

input取消焦点 vue_绝对干货~!学会这些Vue小技巧,可以早点下班和女神约会了...

夏眠不觉晓,处处蚊子咬,夜来键盘声,发落知多少?每天都在写代码,虽然手底下马不停蹄的敲,但是该来的加班还是会来的,如何能更快的完成手头的工作,提高自己的开发效率,今天小编给大家带来了这几个Vue小技巧,终于可以在六点像小鹿一样奔跑着下班了。学会使用$attrs与$listeners,二次包装组件就靠它了前几天产品经理给我甩过来一份管理系统的设计原型,我打开看了看,虽然内心是拒绝的,但...

weixin_39527768的博客 650

Vue.js可访问自动补全组件:ARIA规范与键盘导航实战

自动补全(Autocomplete)是Web表单中高频使用的交互组件,其核心本质是符合WAI-ARIA Combobox模式的复合控件。实现真正可用的自动补全,需深入理解ARIA角色(role="combobox"/"listbox"/"option")与状态属性(aria-expanded、aria-activedescendant、aria-controls)的语义契约,而非简单添加装饰性标签。技术价值在于保障视障、运动障碍及普通键盘用户的一致操作体验,支撑WCAG 2.1 AA合规性。典型应用场景包括

weixin_34068198的博客 281

Vue.js 集成 Stripe Elements 构建安全可定制支付表单

Stripe Elements 是 Stripe 提供的 PCI DSS Level 1 合规输入控件套件,通过 iframe 沙箱隔离敏感字段(如卡号、CVV),实现前端不触碰原始支付数据的安全范式。其核心原理是将 Card、Iban 等 Element 实例挂载到原生 DOM 节点,与 Vue 响应式系统解耦,避免虚拟 DOM 干预导致的样式失效或事件丢失。该方案显著提升转化率(实测+15%)、保障合规性,并支持深度 UI 定制与主题化。典型应用场景包括 SaaS 订阅页、电商会员开通、教育平台续费流程

426
上一篇: vue自定义指令 弹窗拖拽
下一篇: elementUI中的popover嵌套popover弹窗不能自动关闭
前端小li
博客等级 码龄7年 14粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值