| <!DOCTYPE html> | |
| <html> | |
| <meta charset="utf-8"> | |
| <title>CSS Basic User Interface Test: ellipsis and extended grapheme cluster</title> | |
| <link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/"> | |
| <link rel="help" href="http://www.w3.org/TR/css3-ui/#text-overflow"> | |
| <link rel="match" href="reference/text-overflow-012-ref.html"> | |
| <meta name="flags" content="should"> | |
| <!-- This is SHOULD because although CSS-UI defines "character" as "grapheme cluster" in a non optional manner | |
| UAX29 itself defines grapheme cluster as either legacy or extended grapheme clusters, | |
| and says (emphasis mine): | |
| The extended grapheme clusters **should** be used | |
| in implementations in preference to legacy grapheme clusters | |
| --> | |
| <meta name="assert" content="Implementations must hide characters, i.e. entire garpheme clusters, not part of them, to make room for the ellipsis"> | |
| <style> | |
| #sizer { | |
| font-size: 50px; | |
| white-space: pre; | |
| color: white; | |
| float: left; | |
| position: relative; | |
| } | |
| #test { | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| position: absolute; | |
| top: 0; right: 2px; bottom: 0; left: 0; | |
| color: green; | |
| } | |
| span { | |
| color: red; | |
| } | |
| </style> | |
| <p>Test passes if there are three green dots below and <strong>no red</strong>.</p> | |
| <!--Starting the line with an space because the first character on the line is clipped rather than ellided, so we need the tested grapheme cluster to be non-first--> | |
| <!-- | |
| sizer shrinkwraps to the size of a space, plus the grapheme cluster, plus the ellipsis. | |
| test is 2px shorter than that, so it can only fit part of the grapheme cluster. | |
| The whole grapheme cluster should be removed, not just its second character. | |
| --> | |
| <div id=sizer> กำ…<div id=test> <span>กำfiller text to make things overflow</span></div><div> |