【问题标题】:How can I control how much text a double-click selects?如何控制双击选择多少文本?
【发布时间】:2016-04-11 17:22:23
【问题描述】:

我希望能够通过双击来选择“代码”。但是当我这样做时,整个定义都被选中了。

dt {
  float: left;
  clear: left; 
}
dd {
  float: left;
  font-family: monospace;
}
<dl>
  <dt>Code</dt>
  <dd>123456</dd>
  <dt>Code</dt>
  <dd>abcdef</dd>
</dl>

我该怎么做才能让双击只选择dd 的内容?

【问题讨论】:

标签: html css


【解决方案1】:

这是一个 Chrome 问题,因此要解决它,您需要在关闭 html 标记之前添加空格。所以你必须这样做。

<dl>
  <dt> Code </dt>
  <dd> 123456 </dd>
  <dt> Code </dt>
  <dd> abcdef </dd>
</dl>

【讨论】:

  • 不,我没有,但它以前发生在我身上,我记得我读到它是 chrome 问题,但现在我看到它发生在所有浏览器中。无论如何,我给出的解决方案解决了它。
  • 哦,我投了赞成票,因为它可以工作而且很轻巧,但我希望是有原因的……嗯。
  • 我读到的也是浮动造成的,如果它对你有帮助的话。但我不知道详细原因。
  • 谢谢你,我很高兴它解决了你的问题:)
  • @E.Agolli 这不是错误,当您双击时,您的光标处的未中断内容将被选中。在一个空间是一个 trix :) 无论如何,它很有用。
【解决方案2】:

使用table 而不是看起来像表格的样式描述列表

<table>
  <tr>
    <td>Code</td>
    <td>123456</td>		
  </tr>
  <tr>
    <td>Code</td>
    <td>abcdef</td>		
  </tr>
</table>

【讨论】:

  • 在许多情况下,定义列表是一种语义上合适的结构——尤其是在 1:1 标题/定义的情况下。表格用于表格数据,因此这种“解决方案”并没有真正的帮助。
【解决方案3】:

您将所有元素都向左浮动,我认为这会使双击操作感到困惑,因为知道选择了哪个元素。删除 &lt;dd&gt; 元素上的“float:left”属性。 float and clear

dt {
  float: left;
  clear: left; 
  margin-right: 10px;
}
dd {
  font-family: monospace;
}
<dl>
  <dt>Code</dt>
  <dd>123456</dd>
  <dt>Code</dt>
  <dd>abcdef</dd>
</dl>

【讨论】:

  • 这也可能是一个解决方案,因为浮动会导致它。
  • 总的来说,我总是赞成少浮动。但是当我从dd 中删除float 时,它会破坏我们的布局:(
  • 您的布局已损坏,因为您为 &lt;dd&gt; 元素设置了特殊字体。你必须花很多时间来弥补它们:)
猜你喜欢
  • 2012-11-22
  • 2010-10-27
  • 2015-08-07
  • 1970-01-01
  • 2012-04-28
  • 2023-03-31
  • 2012-12-08
  • 2012-10-06
  • 2011-05-06
相关资源
最近更新 更多