ã€ã³ãã
CSS text-wrap: balance | CSS and UI | Chrome for Developers
A classic typography technique of hand-authoring line breaks for balanced text blocks, comes to CSS.
https://developer.chrome.com/docs/css-ui/css-text-wrap-balance?hl=entext-wrap: balance ãŸã èããããšããªã人ããããããããªããã
äžèšã®Googleææžã§ç¢ºèªã§ããããã«ãChrome 114ãã察å¿ãããCSS Text Level4ã«å±ããCSSããããã£ã ã
ã©ããªæ©èœãªã®ãããŸãèŠãŠã¿ããã
text-wrap: balance ãšã¯ïŒ
See the Pen Animated comparison of balanced and unbalanced headlines by web.dev (@web-dot-dev) on CodePen.
åºå ž: https://developer.chrome.com/docs/css-ui/css-text-wrap-balance2024幎3ææç¹ã§ãSafariã§ãªããChrome 114以äžã§ããã°æ£ãã衚瀺ãããã¯ãã ã
ãããŸã§èŠã段éã§ã¯ãèšèã®æå³ãšãµã³ãã«ãåèã«ãããšãtext-wrap: balanceã¯ããã¹ãã®æ¹è¡ããã©ã³ã¹ãã調æŽããŠãããæ©èœã ãšäºæ³ã§ããã ããã
ãšããããäœãéåæãèŠããéšåãããã
ä»ã®æç¢ºãªããããã£ãšã¯ç°ãªããããã©ã³ã¹ããšããèšèãã³ã³ãã¥ãŒã¿ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ã«ãããŠã¯äžæè°ã«æããããã
ChromeããŒãžã®ç޹仿ã以äžã®ããã«ãã説æãããŠããªãã
you can request the browser to figure out the best balanced line wrapping solution for the text
ã©ããªåºæºã§ãã©ã³ã¹ãåã£ãŠããã®ãããããæ°ã«ãªã£ãã
ãã€ãã³ã°åã®æºåäœæãšããŠããã®æ©èœã®ä»æ§ãšèµ·æºã«ã€ããŠèª¿ã¹ãŠã¿ããã
W3C WGã«æžãããŠããtext-wrappingã®ä»æ§ãèŠãŠã¿ããã
https://www.w3.org/TR/css-text-4/#text-wrapping
éèŠãªéšåãèŠãŠã¿ããšä»¥äžã®éãã ã
ãªãã»ã©ïŒããçšåºŠå
·äœçãªæ±ºå®æ¹æ³ã説æãããŠããã
æ®ãã¹ããŒã¹ã®ãµã€ãºãå¹³åã«è¿ã¥ãããã«æ¹è¡ã決å®ãããšããããšã ãç°¡åã«èšãã°ãæ¹è¡ã決å®ããéã«ãæ¹è¡åŸã®æ®ãã¹ããŒã¹ã®ãµã€ãºã䌌éãããã«ãããšããããšã ã
ã§ã¯ãããæ·±ãæãäžããåã«ãæ®ã£ãçåãããã
ãã®æ©èœã¯ã©ãããçãŸããã®ã ãããïŒ
èµ·æº
ãšã¯èšã£ãŠãããããŸã§æ·±ãæ ¹æºãããããã§ã¯ãªããâŠ
以åã¯ãªãŒãããªãã£ã®ããã«<wbr>ã¿ã°ã­ã䜿ã£ãŠæåã§æ¹è¡ã調æŽããŠããã
ãããã¯JavaScriptã§æ¹è¡ã調æŽããã©ã€ãã©ãªã䜿çšããŠããã
Attention Required! | Cloudflare
No description available
https://open.nytimes.com/headline-balancing-act-6e92d3d6119ãã¥ãŒãšãŒã¯ã»ã¿ã€ã ãºã«ãããšããã®æ©èœã¯æ°èã®èŠåºãããã©ã³ã¹ããæŽããããã«äœ¿ãããŠããããã ãïŒé¢é£JSã³ãŒã https://github.com/nytimes/text-balancerïŒ\ ä»ã®äŸãšããŠã¯ https://github.com/adobe/balance-text ã https://github.com/shuding/react-wrap-balancer ãªã©ãããã
AndroidåŽã§ã¯ãã§ã«é©çšãããŠããéšåããããïŒhttps://cs.android.com/android/platform/superproject/+/master:frameworks/minikin/include/minikin/LineBreaker.h;l=38;drc=5ca657189aac546af0aafaba11bbc9c5d889eab3?hl=jaïŒ
ç·åçã«ãåºåãæ°èããŠã§ãããŒãžãªã©ã§ããã¹ãã®å¯èªæ§ãåäžãããããã«äœ¿ãããŠããæ©èœã ãšèšããã
ãã€ãã³ã°
倧äœã©ããªæ©èœãªã®ããã©ãããæ¥ãã®ãåãã£ãã®ã§ãããã§åŒãè¿ããŠã倧äžå€«ã ã
ããããã¯ããã®æ©èœã®æåããæåŸãŸã§èŠãŠããã
é¢é£ããããã¥ã¡ã³ãè³æããèŠãŠãããã
blink-devã°ã«ãŒãã¡ãŒã«
Intent to Ship: CSS healine balancing
ãKoji Ishiiããblink-devã°ã«ãŒãã«æçš¿ããã¡ãŒã«ã ãäžã«ç¶ããŠã°ã«ãŒãéã®è°è«ãå±éãããŠããã ãŸãã¯Kojiã®ã¡ãŒã«ããèŠãŠãããã
Specification
https://w3c.github.io/csswg-drafts/css-text-4/#valdef-text-wrap-balance\ csswg-draftsã«ã¢ããããŒããããŠãã仿§æžã ã
Design doc
https://docs.google.com/document/d/16-T9gqCagJxcST6hcnneSb7qGunxXa37_UHYqMqhPL0/edit?usp=sharing ãKoji Ishiiããäœæããæè¡ã®ãã¶ã€ã³ããã¥ã¡ã³ãã ãããã»ã©é·ãã¯ãªããå®è£ ã«é¢ãã説æãäžå¿ãšãªã£ãŠãããåŸã§ç¢ºèªãããšããŠãç¶ããŠã¡ãŒã«ãèŠãŠãããã
TAG review
https://github.com/w3ctag/design-reviews/issues/822
ããã§ããTAGã¯Technical Architecture Groupã®ç¥ã§ãW3Cã®æè¡çãªåé¡ã«å¯Ÿããã¬ãã¥ãŒãè¡ãã°ã«ãŒãã ã
ãã®IssueãéããŠtext-wrap: balanceã«å¯Ÿããã¬ãã¥ãŒãè¡ãããã
åºæ¬çãªå
容ã¯å
ã»ã©èŠã仿§æžããã¶ã€ã³ããã¥ã¡ã³ããšåãã§ããªã³ã¯ãåãã ã
远å çãªå
容ãšããŠãã¹ãã«é¢ããæ
å ±ãããã
ãã¹ãã¯W3Cã管çããwpt.fyiïŒWeb Platform Tests DashboardïŒã§è¡ãããŠããã WPTã¯Web Platform Testã®ç¥ã§ããŠã§ããã©ãããã©ãŒã ã®æšæºããã¹ããããã¹ãã¹ã€ãŒãã ã
åãã¹ãã±ãŒã¹ã¯HTMLãã¡ã€ã«ã«åãããŠããããã®ãããªåœ¢ã§æ ŒçŽãããŠããã
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-text-4/#valdef-text-wrap-balance">
<link rel="match" href="reference/text-wrap-balance-overflow-001-ref.html">
<style>
.container {
font-family: monospace;
font-size: 20px;
inline-size: 15ch;
border: 1px solid;
overflow-wrap: break-word;
text-wrap: balance;
}
</style>
<div class="container">CONTROLLING YOUR BU</div>
<div class="container">CONTROLLING YOUR BU BU</div>
ãã¡ããã©ã€ãã§ç¢ºèªããããšãã§ããã https://wpt.live/css/css-text/white-space/text-wrap-balance-overflow-001.html
é¢é£PR https://github.com/web-platform-tests/interop/issues/561
ããªãè±ç·ããŠããŸã£ãæ°ããããããšããããã¡ãŒã«ã«æ»ããã
Interoperability and Compatibility
çžäºéçšæ§ãšäºææ§ã«ã€ããŠã®è©±ãåºãŠããããã¯ããšã³ã·ã¹ãã ã®ããã«ã¯ä»ã®ãã©ãŠã¶ãšã®äºææ§ãéèŠã ã Kojiãåãã©ãŠã¶ãããžã§ã¯ãã«å¯ŸããŠè©²åœæ©èœã«ã€ããŠã®ã¹ã¿ã³ã¹ãæ±ããIssueãæ·»ä»ãããŠããã å®éã®ãšã³ãžã³ã®ãããžã§ã¯ãã§ã¯ãªããstandards-positionsã®IssueãéããŠè©²åœæ©èœã«å¯Ÿããã¹ã¿ã³ã¹ãæ±ãããã®ã ã
MozillaïŒhttps://github.com/mozilla/standards-positions/issues/755ïŒ
ãã®ã¬ãã¥ãŒã®ã³ã¡ã³ããšããŠãMozillaåŽã仿§æžãèŠãŠäœæããIssueãšPRã¯ãããã以äžã§ç¢ºèªã§ããã
- standard position IssueïŒhttps://bugzilla.mozilla.org/show_bug.cgi?id=1731541ïŒ
- é¢é£PRã®äžéšïŒhttps://phabricator.services.mozilla.com/D187543ïŒ
WebKitïŒhttps://github.com/WebKit/standards-positions/issues/143ïŒ
Appleã®WebKitåŽã¯ããã§ãã°ããã©ããã³ã°ããŠããã https://bugs.webkit.org/show_bug.cgi?id=249840
é¢é£PRã¯ãã¡ãã§ç¢ºèªã§ããã\
Provide an initial implementation of `text-wrap: balance` by RWDavid · Pull Request #16723 · WebKit/WebKit
2d299a2 Provide an initial implementation of `text-wrap: balance` https://bugs.webkit.org/show_bug.cgi?id=249840 rdar://problem/103663513 Reviewed by Alan Baradlay. This patch implements `text-wr...
https://github.com/WebKit/WebKit/pull/16723Appleã®å ŽåãEWSïŒEarly Warning SystemïŒãéããŠããŒãžåã«åç°å¢ïŒOSå¥ïŒã®ãã«ãçµæã確èªã§ããã
ããã§æ±ãå
容ã§ã¯ãªãã®ã§ãåèªã§èŠããŠã¿ãŠã»ããã
EWSãªã³ã¯ïŒhttps://ews-build.webkit.org/#/builders/26/builds/15587ïŒ\
EWSïŒhttps://github.com/webkit-early-warning-systemïŒ
ãããŸã§ã®éã®ããæŽçããŠã¿ããã
Kojiã®ã¡ãŒã«ãPrimary SourceãšããŠããã®æ©èœã®ä»æ§ããã¶ã€ã³ããã¥ã¡ã³ããTAGã¬ãã¥ãŒããã¹ããåãã©ãŠã¶ã®äºææ§ã«é¢ããIssueãèŠãŠããã ãŸããåãã©ãŠã¶ããšã«è©²åœæ©èœã«å¯Ÿããã¹ã¿ã³ã¹ãæ±ããIssueãšPRã確èªããã
æ¬æèªäœã¯ãã®ãããã§è¯ãã ãããã¡ãŒã«ãåãåã£ãblink-devã°ã«ãŒãã®ãããšãã®å 容ãèŠãŠãããã
ãšæã£ãã®ã ããå
容ãããªãé·ãããããããèŠãå¿
èŠãããã ãããã
äž»ã«ããã©ãŒãã³ã¹äžã®åé¡ããä»ã®ããããã£ãšã®é¢ä¿ïŒwhite-spaceïŒãå®è£
ã®æç¢ºæ§ãæ©èœã®å¶åŸ¡ïŒæçµè¡ã®é·ãã4emã«ããã®ãå
šäœã®è¡ã®æäœ15%ã«ããã®ããªã©ïŒã«ã€ããŠã®è°è«ãè¡ãããã
倧ããåãäžããããIssueã ãèŠçŽããŠã¿ããã
text-wrapã¯æ¹è¡ãå¶åŸ¡ããããããã£ã ããããã¯æ¢åã®white-spaceãšè¡çªããæ©èœã ããã®ãããäž¡è
ã®æŽçãå¿
èŠã ãšãã話ã«ãªã£ãã
white-spaceããããã£ã¯ç©ºçœåŠçãšæ¹è¡æ¹åŒãå¶åŸ¡ããããtext-wrap: balanceã®ãããªå€ã䜿ãå Žåã¯ãæ¹è¡ã®ãã©ã³ã¹ãåã远å çãªåäœãæ±ããããã
解決çãšããŠãwhite-spaceããããã£ãtext-wrapã®å€ãå
å
ã§ããããã«ãã€ãŸãã·ã§ãŒããã³ããšããŠæ©èœããããã«ããæ¹æ³ãææ¡ãããã
é¡äŒŒã®éå»ã®äºäŸãšããŠbaseline-sourceãããããã®å Žåãvertical-alignãšè¡çªããåé¡ããã£ããããã解決ããããã«vertical-alignã®å€ãšããŠbaseline-sourceã䜿çšã§ããããã«ããæ¹æ³ãææ¡ãããã [baseline-source] Set baseline-source to auto when vertical-align set.
å°ãâŠç«ã¡æ¢ãŸã£ãŠâŠ
ããããŠãã£ãšèŠãŠããããäžã€ã®æ©èœãã©ãã»ã©å€ãã®éçšãçµãŠãã©ãŠã¶ã«å®è£
ãããããåãã£ãã
ããããæ¬æ¥ã®æ
ã¯text-wrap: balanceã®ä»æ§ãšå®è£
ã«ã€ããŠã ã£ãã
é¢é£ãã仿§ãäœæ¥ã«ã€ããŠèŠãŠãããã¡ã«ããããŸã§æ¥ãŠããŸã£ãã®ã§ãå®è£
ã«ã€ããŠãŸãšããæ°åãå°œããŠããŸã£ãã
仿§æžãèªãã§ãããã¡ã«ãç¡æ°ã®ãã€ããŒããã¹ãã®æ²Œã«ã¯ãŸã£ãŠããŸã£ãããã ã
ããã§ããåãšã³ãžã³ã®IssueãPRãã©ãã§ç®¡çãããŠãããããã¹ãã¯ã©ãã§è¡ãããŠããããæ°ã«ãªã人ãžã®éããã¹ãšãªãã°å¹žãã ã
ãšããããã§ãä»åã®ãã¹ãã¯ãããŸã§ã«ããŠã次åã®ãã¹ãã§ã¯å®éã®å®è£ ã«ã€ããŠèŠãŠããããšã«ãããïŒè³æèª¿æ»ã¯æžãã§ããããå¿é ãªããïŒ
ã§ã¯ãŸãã