【发布时间】:2015-03-29 06:21:43
【问题描述】:
请注意I am aware of this question,但我正在寻找专门的技术答案。
作为对自己的 CSS 挑战,我正在尝试仅使用 CSS 创建一个精美的 select 框。使用I've learned recently 的各种花哨技术,我已经走得很远了。
- 看起来不错
- 完全可以风格化,
- 点击后会在列表中打开(使用隐藏的复选框和
:checked+label选择器) - 允许占位符文本(使用
:checked和负边距顶部) - 允许选择(使用嵌套单选按钮列表)
- 并在选择和折叠时正确显示值(使用
:checked和position: absolute) - 它甚至可以正确绑定javascript
这是使用类似于
的结构input[type=checkbox]#selector
label[for=selector]
ul
li.item1
input[type=radio]#item1
label[for=item1] The First Item
我只剩下一个问题,一旦展开,单击时关闭菜单无法正常工作。单击项目时,正常的选择框将关闭。在您单击选择框的边框附近之前,我的不会。
这是因为用户点击内部输入不会切换父标签的:checked 状态,他们需要点击输入以关闭选择框。
有什么方法可以同时切换单选按钮状态和父状态?
【问题讨论】:
-
"...靠近项目的边界" 也直接在标志图像上 (FF)
-
在我看来,
options标签与country-selector标签重叠。选项标签可防止触发国家/地区选择器标签。我想这就是浏览器处理它的方式,并且没有办法解决(JS除外)...... -
@LinkinTED 看到我正在考虑做一些事情,我们使用 css 转换来摆动显示/隐藏一个透明元素,它将覆盖整个事情。我当时的想法是,我可能能够捕获两者的点击,但没有交易。
-
你不应该在内联元素中使用块元素,这会在不同的浏览器上产生很多问题,就像你现在拥有的一样,我已经创建了好几个月的精美表单元素,我知道什么你正在处理,我知道如何解决你的问题,但是一些 html 和 css 修改最适用,如果你想知道如何,请告诉我,我会很乐意解释你并告诉你,没有问题! ^_^
-
是的,请@Allan。这更像是一个个人 CSS 项目,所以我仍然感兴趣。
标签: css