如何让结果展示文本框与输入框样式区分开?
如何让结果展示文本框与输入框样式区分开?
嘿,我懂你这个困扰!把只读的input用来展示结果,确实会和输入框长得几乎一模一样,用户很容易误以为还能编辑。这里给你几个简单实用的方案来区分它们:
方案1:给结果框单独定制CSS样式
最直接的办法就是针对resultBox这个ID单独写样式,从背景色、边框、光标这些细节上和输入框拉开差异。比如:
修改你的CSS,在原有input样式下面加上这段:
input { padding: 10px; width: 800px; margin: 10px; } #resultBox { background-color: #f5f5f5; /* 用浅灰色背景和输入框区分 */ border: 1px solid #999; /* 边框颜色比输入框深一点 */ cursor: default; /* 鼠标放上去显示默认光标,不是文本输入的光标 */ }
这样调整后,结果框的视觉风格立刻就和输入框不一样了,用户一眼就能认出这是展示结果的区域。
方案2:改用非输入控件展示结果(更语义化)
既然结果是只读的,其实完全可以不用input标签,改用div或者p标签来展示,这样不仅语义上更准确,样式调整也更灵活。
首先修改HTML里的结果框部分:
<div id="resultBox">Lambda result will appear here</div>
然后给这个div设置和输入框接近的基础样式,但加上区分点:
input { padding: 10px; width: 800px; margin: 10px; } #resultBox { padding: 10px; width: 800px; margin: 10px; background-color: #f5f5f5; border: 1px solid #999; min-height: 20px; /* 保证即使没有结果也有足够的展示高度 */ }
如果需要实现“无结果时显示提示文字”的效果,可以用JS来控制:当加密/解密后有结果时,替换div的内容;没有结果时,显示默认提示。
方案3:调整结果框的边框样式
如果不想改太多,也可以只调整结果框的边框样式,比如改成虚线,和输入框的实线边框形成对比:
input { padding: 10px; width: 800px; margin: 10px; } #resultBox { border-style: dashed; background-color: #f8f8f8; }
这个方案改动最小,视觉区分度也足够。
你可以根据自己的需求选一个,个人更推荐方案2,因为用非输入控件展示只读内容更符合HTML的语义规范,也能避免用户的误操作~
备注:内容来源于stack exchange,提问作者Ashok Kimmel
相关产品推荐
相关产品推荐

