- From: Brian Manthos <brianman@microsoft.com>
- Date: Mon, 18 Jul 2011 22:27:34 +0000
- To: Tab Atkins Jr. <jackalmage@gmail.com>, Brad Kemper <brad.kemper@gmail.com>
- CC: Behnam Esfahbod ZWNJ <behnam@zwnj.org>, WWW-Style <www-style@w3.org>
- Message-ID: <9710FCC2E88860489239BE0308AC5D170866FB@TK5EX14MBXC266.redmond.corp.microsoft.co>
I revisited Behnam's rendering and still believe it aligns with the angular specification directly. You're right thought that you have to use a different rectangle for than the original box. I happened to be making a sample page to demonstrate when I saw Brad's mail come in. His approach sounds similar to what I ended up with. In case it's useful for the discussion, here's (attached and pasted below) what I came up with. I think with liberal calc() usage (but perhaps a CSS.next version of calc), you might be able express the equations noted in my css comments. Cheers, -Brian <!doctype html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=10"> <style> div { background-image: -moz-linear-gradient(right bottom, red, white, blue); background-image: -ms-linear-gradient(right bottom, red, white, blue); background-image: -o-linear-gradient(right bottom, red, white, blue); background-image: -webkit-linear-gradient(right bottom, red, white, blue); background-image: linear-gradient(right bottom, red, white, blue); color: aqua; display: inline-block; font-size: 14pt; height: 85px; outline: 1px solid black; margin: 5px; width: 640px; vertical-align: top; } div:nth-child(2) { background-image: -moz-linear-gradient(-1.438756565rad, blue, white, red); background-image: -ms-linear-gradient(-1.438756565rad, blue, white, red); background-image: -o-linear-gradient(-1.438756565rad, blue, white, red); background-image: -webkit-linear-gradient(-1.438756565rad, blue, white, red); background-image: linear-gradient(-1.438756565rad, blue, white, red); } div:nth-child(4) { height: 345px; width: 190px; } div:nth-child(5) { background-image: -moz-linear-gradient(-0.503399384rad, blue, white, red); background-image: -ms-linear-gradient(-0.503399384rad, blue, white, red); background-image: -o-linear-gradient(-0.503399384rad, blue, white, red); background-image: -webkit-linear-gradient(-0.503399384rad, blue, white, red); background-image: linear-gradient(-0.503399384rad, blue, white, red); height: 345px; width: 190px; } div:nth-child(6) { height: 345px; width: 626.44px; /* 345px * (345px / 190px) */ } div:nth-child(7) { height: 345px; width: 190px; background-position: center; background-size: 626.44px 345px; } div:nth-child(8) { height: 345px; width: 190px; /* box diagonal = sqrt(345^2 + 190^2) = 393.86px */ background-position: center; background-size: 626.44px 345px; /* positioning diag = 715.16px */ /* red offset = ((715.16 - 393.86)/2) * (715.16 / 626.44) = 183.40px */ /* blue offset = (715.16 - 183.40) = 531.76 */ background-image: -moz-linear-gradient(right bottom, red 183.40px, white, blue 531.76px); background-image: -ms-linear-gradient(right bottom, red 183.40px, white, blue 531.76px); background-image: -o-linear-gradient(right bottom, red 183.40px, white, blue 531.76px); background-image: -webkit-linear-gradient(right bottom, red 183.40px, white, blue 531.76px); background-image: linear-gradient(right bottom, red 183.40px, white, blue 531.76px); } </style> </head> <body> <div>CSS3 Linear Gradient: right bottom (spec)</div> <div>CSS3 Linear Gradient: right bottom (angle)</div> <hr/> <div>CSS3 Linear Gradient: right bottom (spec)</div> <div>CSS3 Linear Gradient: right bottom (angle)</div> <div>CSS3 Linear Gradient: right bottom (RRR)</div> <div>CSS3 Linear Gradient: right bottom (RRR, centered)</div> <div>CSS3 Linear Gradient: right bottom (RRR, centered, stops adjust)</div> <hr/> RRR = Reverse Ratio Rect </html>
Attachments
- text/html attachment: Behnam1.htm
Received on Monday, 18 July 2011 22:28:06 UTC