子元素focus,容器边框高亮父选择器效果实例页面

回到相关文章 »

代码:

CSS代码(只显示核心部分):
.container {
    min-height: 120px;
    /* z-index用来创建新的层叠上下文,这样子元素的z-index:-1不会超出容器 
       具体可参见:http://www.zhangxinxu.com/wordpress/?p=5115
    */
    position: relative; z-index: 1;
}
.list {
    /* 已经输入的姓名列表 */
    display: inline-block; background-color: #f0f3f9;
}
.list:after {
    content: '×';
}
.input {
    /* 去掉输入框默认UI */
    width: 80px; border: 0; background: none;  
}
.border {
    /* 尺寸永远和容器一样大,假装是容器 */
    position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: -1;
    border: 1px solid #bbb;
}
.input:focus + .border {
    /* 模拟父选择器效果精髓所在 */
    border-color: #1271E0;    
}
                
HTML代码:
<div class="container">
    <span class="list">李易峰</span>
    <span class="list">赵丽颖</span>
    <span class="list">杨紫</span><input id="input" class="input">
    <label class="border" for="input"></label>
</div>
                

效果:

《青云志》主演名单:

李易峰 赵丽颖 杨紫