This is a longer paragraph that will wrap onto several lines inside this narrow box, so clicking and dragging on different lines must map to the right characters.
A3. 富文本 (内联子元素)
预期: 整块作为一个单元可选; 高亮在 <b>/<span> 之间连续; 复制文本按 DOM 顺序拼接(Hello World!)。
Hello World! Let's select across runs.
A4. 块级边界换行
预期: 每个 div 是独立单元; 跨两个 div 拖拽, 复制文本在两个单元之间出现换行符 alpha\nbeta。
alpha line
beta line
A5. 跨元素拖拽
预期: 从 A4 第一个 div 按住拖到第二个 div, 选区连续跨越两个元素, 中途经过空白区时终点冻结。
B1. 双击选词 / 三击选段
预期: 双击选中整个单词(空白分隔); 三击选中整段; 双击后继续拖拽从词边界扩展。
double click selects this word entirely, triple click selects the whole paragraph.
justify renders left aligned, caret follows the same origin
first line indent of twenty four pixels shifts the caret origin
D2. direction: rtl
预期: start/end 随 RTL 翻转, 缩进方向取反; 点击定位与渲染一致。
rtl start aligned sample text
D3. line-clamp 截断
预期: 高亮只盖可见的两行, 不画到第三行; Ctrl+A 全选后复制仍是完整文本。
This long paragraph is clamped to two visible lines. The selection highlight must not extend to the hidden lines, but selecting everything still copies the whole text.
D4. text-overflow: ellipsis
预期: 高亮止于真实文本, 不覆盖合成省略号 …; 全选复制返回完整文本。
this text is far too long for the box so it gets ellipsized