【问题标题】:make text in div selectable, but make parent div unselectable (wordpress)使 div 中的文本可选,但使父 div 不可选(wordpress)
【发布时间】:2014-12-16 22:50:38
【问题描述】:

我正在尝试创建一个结果文本框,其中包含用户需要选择和复制的文本。我不能使用 textarea 因为我需要文本来支持 html 标记。我有三个具有以下类的嵌套 div:entry-contentcontent-areaselectme。我希望用户能够只选择最里面的 div selectme,而不是让选择区域扩展到两个父 div。下面的代码似乎在这个JSfiddle 上运行良好,但是当我将相同的 css 应用于my wordpress page 时,我没有得到相同的效果。想法?

.entry-content {
    -moz-user-select: -moz-none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -o-user-select: none;
    user-select: none;
}
.site-main {
    -moz-user-select: -moz-none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -o-user-select: none;
    user-select: none;
}
.selectme {
 -moz-user-select: text;
 -khtml-user-select: text;
 -webkit-user-select: text;
 -ms-user-select: text;
 user-select: text;
 }

【问题讨论】:

    标签: css wordpress selection


    【解决方案1】:

    使用display: inline-block 防止丑陋的选择

    为防止在突出显示时在框外着色,请在可编辑容器上使用display: inline-block。选择仅适用于 div 文本。

    .content-area {
      width: 300px;
      height: 300px;
      border: 1px solid;
      box-sizing: border-box;
      padding: 2px;
      margin: 0 auto;
    }
    .selectme {
      width: 150px;
      height: 150px;
      border: 1px solid;
      box-sizing: border-box;
      padding: 2px;
      display: inline-block; /*add*/
    }
    <div class="entry-content">
      <div class="content-area">
    
        <div class="selectme">
          Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ac est risus. Nunc quis viverra lacus. Integer ut quam ac erat vulputate semper nec eget turpis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas facilisis posuere finibus. Aliquam ultrices ligula id pharetra tempus. Integer suscipit rutrum ex ut condimentum. Morbi non vulputate tellus, non euismod erat. Ut neque dui, pretium eu dolor in, rutrum viverra enim. Integer venenatis, neque et varius ultricies, lorem purus accumsan felis, sed egestas mauris lectus at massa. Morbi ut orci at est ultricies lacinia non sit amet eros. Pellentesque pulvinar metus ante, aliquam sollicitudin massa laoreet et.
        </div>
      </div>
    </div>

    user-select 的行为不一致

    user-select 属性不是 w3c 标准,应用不一致。

    From the MDN(强调我的):

    非标准

    此功能是非标准的,不在标准中 追踪。 不要在面向 Web 的生产站点上使用它:它不会 为每个用户工作。之间也可能存在很大的不兼容性 未来的实现和行为可能会发生变化。

    作为这种不可靠性的一个例子,您网站上的 user-select 属性在 Windows 上的 Chrome 39 中对我来说似乎工作得很好:)

    The none value does appear to have good support,但不应依赖:

    目前用户选择属性没有出现在任何 W3C 规范中。此处的支持信息仅适用于“无”值,不适用于其他值。

    【讨论】:

    • 明确地说,您是推荐我使用 jolly.exe 的解决方案(评论为截至 2013 年已过时),还是 SLaks 的 JQuery 解决方案?看起来 SLaks 解决方案需要
    • 我在实现 JQ 代码时遇到了麻烦。 JSfiddle
    • 有趣的是,我刚刚意识到 CSS 实际上在我的 OS X 上 Safari 中的 chrome 上工作在一定程度上。我无法选择结果 div 之外的文本,但是当我选择结果文本时我得到了全线选择的丑陋环绕。 screenshot
    • 我想我宁愿使用基于 Flash 的复制到剪贴板按钮,而不是选择文本按钮...
    • 等等!这就是你想要避免的?哦。将 div #result 更改为 display: inline-block; !!! screenshot of result
    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多