【问题标题】:::select pseudo-element ignored in fill space, selection going out of bounds...?::select伪元素在填充空间中被忽略,选择超出范围......?
【发布时间】:2014-04-17 12:25:36
【问题描述】:

我正在尝试应用 non-standard, but pretty widely supported CSS 伪选择器来设置浏览器中选择的文本颜色。起初一切似乎都很好,然后冰鼬来了。

假设你有这个 HTML:

<div class="outside">
    So what's wrong with this picture?
    <div class="fancy">
        Custom selection color lost on right
        <div>But only on direct children</div>
        <div>Divs underneath are ok (?)</div>
    </div>
    ...aaand selection bleeds to outside div. :-/
</div>

使用这个 CSS:

.outside {
    margin: 32px;
}

.fancy {
    color: white;
    background: green;
}

.fancy::selection, .fancy div::selection {
   background: #800080 !important;
}

在 Chrome/Safari 中你得到的是这个:

Here's a jsFiddle,当然你必须做出选择才能获得效果)

如果有人想接受挑战,向我解释其中的逻辑,请成为我的客人。但是如果你不能解释它,可以告诉我如何让它看起来像:

那对于我正在做的事情来说已经足够了!


更新:将@ralph.m 关于该区域外出血的回答标记为已接受。虽然它没有解决关于自定义选择颜色丢失的第二个问题。每当您选择一个块级元素时,这似乎就会发生,该元素包含块级元素和非块级元素作为子元素。除了将您的文档结构更改为不具有该模式(和/或不在乎)

之外,可能没有什么可做的

【问题讨论】:

    标签: html css webkit selection pseudo-element


    【解决方案1】:

    使用overflow: hidden; 通常对我有用。例如

    .fancy {
        overflow:hidden;
    }
    

    【讨论】:

    • 非常感谢您解决该问题! (你可能会说,我不是 CSS 人……但每次我涉足它时,我都会发现一些新的问题需要担心。) 我会读到为什么有人会想要这个溢出。与* {overflow:hidden;}
    猜你喜欢
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多