{"id":33178,"date":"2017-09-26T03:01:31","date_gmt":"2017-09-25T17:01:31","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=33178"},"modified":"2024-09-08T16:58:34","modified_gmt":"2024-09-08T06:58:34","slug":"css-3d-transformation-matrix-making-of-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/css-3d-transformation-matrix-making-of-tutorial\/","title":{"rendered":"CSS 3D Transformation Matrix Making Of Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/making_of.jpg\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"CSS 3D Transformation Matrix Making Of Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/\/HTMLCSS\/making_of.jpg\" title=\"CSS 3D Transformation Matrix Making Of Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">CSS 3D Transformation Matrix Making Of Tutorial<\/p><\/div>\n<p>It was &#8220;line ball&#8221; as to whether the &#8220;making of&#8221; our <a title='CSS 3D Transformation Matrix Primer Tutorial' href='#css3dtmpt'>CSS 3D Transformation Matrix Primer Tutorial<\/a> some time back was harder than the programming involved in its &#8220;cut to the chase&#8221; web application&#8217;s code.  This, we find, embarrassing, though we find CSS styling a lot harder than Javascript DOM as far as the client side of web applications &#8220;production&#8221; goes.<\/p>\n<p>The thing about that tutorial&#8217;s &#8230;<\/p>\n<blockquote onclick=\"window.open('http:\/\/www.rjmprogramming.com.au\/PHP\/nala.php','_blank');\" style='cursor:pointer;background-color:transparent;'>\n<div style=\"vertical-align:top;color:red;width:100%;text-align:right; background: -webkit-linear-gradient(#BBB, white) bottom repeat; background: linear-gradient(#BBB, white) bottom repeat; \"><b><i>&#8220;Nala! Put down that<br \/> matrix3d(0.7751,1.854,0,0,<br \/> 0,1.3861,0,0, 0,0,1,0,<br \/> -0.0004308,0.003552,0,1)<br \/> &#8216;deformed&#8217; soft toy, we think<br \/> you&#8217;ll find belongs to Luna &#8230; <br \/>Naaaalllllaaaa!&#8221;<\/i><\/b><\/p>\n<div style=\"margin-top:-165px;margin-right:290px;text-align:right;height:195px;color:transparent;background:URL('http:\/\/www.rjmprogramming.com.au\/Mac\/PhotoBooth_flickr.jpg');background-position:-140px -400px;background-repeat:no-repeat;  -webkit-filter: brightness(220%);filter: brightness(220%);\"><i>Nala! Put down that matrix3d(0.775105,1.85444,0,0, 0,1.386120,0,0, 0,0,1,0,<br \/> -0.000430821,0.00355248,0,1)<br \/> &#8220;deformed&#8221; soft toy, that<br \/> we think you&#8217;ll find belongs to Luna &#8230; Naaaalllllaaaa!<\/i>\n<\/div>\n<\/div>\n<div style=\"margin-top:30px;\"> &#8230; and don&#8217;t think that&#8217;s going to cut the mustard at the next World Symposium of Transformation Matr<strike>esses<\/strike>ices 2017 &#8230; &#8220;The Future Is Ahead of One<font size=1>sies<\/font>&#8220;.<\/div>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<p> &#8230; &#8220;making of&#8221; picture (we are going to refer to as &#8220;production&#8221; in blurb below) is that it took a long while to get it looking this way, as basically the <i>blockquote<\/i> element we wanted it to end up as, so that a little of a <i>blockquote<\/i>&#8216;s shadowing could be hinted at with this work.  But let&#8217;s show you its HTML (with inline CSS) innards and explain more &#8230;<\/p>\n<p>&lt;<i>blockquote<\/i> <b>onclick=&#8221;window.open(&#8216;http:\/\/www.rjmprogramming.com.au\/PHP\/nala.php&#8217;,&#8217;_blank&#8217;);&#8221;<\/b> style=&#8217;<font color=green>cursor:pointer;<\/font><font color=brown>background-color:transparent;<\/font>&#8216;&gt;&lt;div style=&#8221;<font color=magenta>vertical-align:top;<\/font>color:red;<font color=magenta>width:100%;text-align:right;<\/font> <font color=brown>background: -webkit-linear-gradient(#BBB, white) bottom repeat; background: linear-gradient(#BBB, white) bottom repeat;<\/font> <font color=orange>&#8220;&gt;&lt;b&gt;&lt;i&gt;&#8221;Nala! Put down that&lt;br&gt; matrix3d(0.7751,1.854,0,0,&lt;br&gt; 0,1.3861,0,0, 0,0,1,0,&lt;br&gt; -0.0004308,0.003552,0,1)&lt;br&gt; &#8216;deformed&#8217; soft toy, we think&lt;br&gt; you&#8217;ll find belongs to Luna &#8230; &lt;br&gt;Naaaalllllaaaa!&#8221;&lt;\/i&gt;&lt;\/b&gt;<\/font>&lt;div style=&#8221;<font color=purple>margin-top:-165px;margin-right:290px;<\/font>text-align:right;<font color=purple>height:195px;<\/font><font color=brown>color:transparent;<\/font><font color=red>background:URL(&#8216;http:\/\/www.rjmprogramming.com.au\/Mac\/PhotoBooth_flickr.jpg&#8217;);<\/font><font color=purple>background-position:-140px -400px;<\/font><font color=blue>background-repeat:no-repeat;  -webkit-filter: brightness(220%);filter: brightness(220%);<\/font><font color=orange>&#8220;&gt;&lt;i&gt;Nala! Put down that matrix3d(0.775105,1.85444,0,0, 0,1.386120,0,0, 0,0,1,0,&lt;br&gt; -0.000430821,0.00355248,0,1)&lt;br&gt; &#8220;deformed&#8221; soft toy, that&lt;br&gt; we think you&#8217;ll find belongs to Luna &#8230; Naaaalllllaaaa!&lt;\/i&gt;<\/font><br \/>\n&lt;\/div&gt;&lt;\/div&gt;&lt;div style=&#8221;<font color=purple>margin-top:30px;<\/font>&#8220;&gt;<font color=orange> &#8230; and don&#8217;t think that&#8217;s going to cut the mustard at the next World Symposium of Transformation Matr&lt;strike&gt;esses&lt;\/strike&gt;ices 2017 &#8230; &#8220;The Future Is Ahead of One&lt;font size=1&gt;sies&lt;\/font&gt;&#8221;.<\/font>&lt;\/div&gt;&lt;\/blockquote&gt;<font color=cyan>&lt;br&gt;&lt;br&gt;<\/font><br \/>\n<br \/>\n<font color=cyan>&lt;p&gt;&nbsp;&lt;\/p&gt;<\/font><\/p>\n<ul>\n<li><font color=red>The photograph is shown as a background image to an HTML div element<\/font><\/li>\n<li><font color=brown>Background and colour is based on a linear gradient overriding other background transparencies<\/font><\/li>\n<li><font color=purple>The ideal positioning (and cropping) of the background image may be a &#8220;suck it and see&#8221; operation<\/font><\/li>\n<li><font color=blue>A brightness filter is used to add more light to the &#8220;production&#8221;&#8216;s background photograph<\/font><\/li>\n<li><font color=green>Add a &#8220;link&#8221; feel to the &#8220;production&#8221; by using the normal &#8220;link&#8221; cursor<\/font><\/li>\n<li><font color=orange>The &#8220;production&#8221;&#8216;s wording<\/font><\/li>\n<li><font color=magenta>Top and right div element vertical and horizontal alignment is crucial to make sense of the <font color=purple>positioning<\/font><\/font><\/li>\n<li><font color=cyan>Spacing<\/font><\/li>\n<li><b>When clicking on any part of the &#8220;production&#8221; you get played a Nala video<\/b><\/li>\n<\/ul>\n<p>Looking back, the insistence on the use of <i>blockquote<\/i> may have added to the complexity, and the need for two div elements to become involved.<\/p>\n<p>Here are some links, we give thanks for, related to this &#8230;<\/p>\n<ul>\n<li><a target=\"_blank\" title='CSS3 overflow-y property' href='https:\/\/www.w3schools.com\/cssref\/css3_pr_overflow-y.asp' rel=\"noopener\">CSS3 overflow-y property<\/a><\/li>\n<li><a target=\"_blank\" title='overflow-y Google search' href='https:\/\/www.google.com.au\/search?q=overflow-y&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-b-ab&#038;gfe_rd=cr&#038;dcr=0&#038;ei=RLuwWaDcIeXDXvD2g8gF' rel=\"noopener\">overflow-y Google search<\/a><\/li>\n<li><a target=\"_blank\" title='Using CSS, can you apply a gradient mask to fade to the background over text? - Stack Overflow' href='https:\/\/stackoverflow.com\/questions\/9525215\/using-css-can-you-apply-a-gradient-mask-to-fade-to-the-background-over-text' rel=\"noopener\">Using CSS, can you apply a gradient mask to fade to the background over text? &#8211; Stack Overflow<\/a><\/li>\n<li><a target=\"_blank\" title='background image mask out bits on the right - Google search' href='https:\/\/www.google.com.au\/search?q=background+image+mask+out+bits+on+the+right&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-b-ab&#038;gfe_rd=cr&#038;dcr=0&#038;ei=rqCwWc3LMqjM8gfAk7ywDA' rel=\"noopener\">background image mask out bits on the right &#8211; Google search<\/a><\/li>\n<li><a target=\"_blank\" title='matrix3d() - CSS | MDN' href='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/transform-function\/matrix3d' rel=\"noopener\">matrix3d() &#8211; CSS | MDN<\/a><\/li>\n<li><a target=\"_blank\" title='webkit-brightness - Google search' href='https:\/\/www.google.com.au\/search?q=webkit-brightness&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-b-ab&#038;gfe_rd=cr&#038;dcr=0&#038;ei=5qywWeCoM63M8geQmbLIDw' rel=\"noopener\">webkit-brightness &#8211; Google search<\/a><\/li>\n<li><a target=\"_blank\" title='Offset a background image from the right using CSS - Stack Overflow' href='https:\/\/stackoverflow.com\/questions\/5142405\/offset-a-background-image-from-the-right-using-css' rel=\"noopener\"><\/a><\/li>\n<li><a target=\"_blank\" title='Positioning Offset Background Images | CSS-Tricks' href='https:\/\/css-tricks.com\/positioning-offset-background-images\/' rel=\"noopener\">Offset a background image from the right using CSS &#8211; Stack Overflow<\/a><\/li>\n<li><a target=\"_blank\" title='background-offset - Google search' href='https:\/\/www.google.com.au\/search?q=background-offset&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-b-ab&#038;gfe_rd=cr&#038;dcr=0&#038;ei=cqKwWfitCovp8weXiYngBg' rel=\"noopener\">background-offset &#8211; Google search<\/a><\/li>\n<li><a target=\"_blank\" title='\"background image mask out bits on the right\" - Google search' href='https:\/\/www.google.com.au\/search?client=firefox-b-ab&#038;dcr=0&#038;q=%22background+image+mask+out+bits+on+the+right%22&#038;oq=%22background+image+mask+out+bits+on+the+right%22&#038;gs_l=psy-ab.3...7322.9565.0.9744.2.2.0.0.0.0.196.196.0j1.1.0....0...1.1.64.psy-ab..1.0.0.NVse71R4wHA' rel=\"noopener\">&#8220;background image mask out bits on the right&#8221; &#8211; Google search<\/a><\/li>\n<li><a target=\"_blank\" title='CSS Clipping and Masking: Examples and Observations - Vanseo Design' href='http:\/\/vanseodesign.com\/css\/clipping-and-masking-examples\/' rel=\"noopener\">CSS Clipping and Masking: Examples and Observations &#8211; Vanseo Design<\/a><\/li>\n<li><a target=\"_blank\" title='CSS Clipping and Masking \u2014 Show and Hide Parts of Images and Elements' href='http:\/\/vanseodesign.com\/css\/clipping-and-masking\/' rel=\"noopener\">CSS Clipping and Masking \u2014 Show and Hide Parts of Images and Elements<\/a><\/li>\n<li><a target=\"_blank\" title='css - \"Inline\" border of a div - Stack Overflow' href='https:\/\/stackoverflow.com\/questions\/29404093\/css-outline-left-and-right' rel=\"noopener\">css &#8211; &#8220;Inline&#8221; border of a div &#8211; Stack Overflow<\/a><\/li>\n<li><a target=\"_blank\" title='outline-right - Google search' href='https:\/\/www.google.com.au\/search?q=outline-right&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-b-ab&#038;gfe_rd=cr&#038;dcr=0&#038;ei=8Z6wWZfIN6vM8gezkLPABQ' rel=\"noopener\">outline-right &#8211; Google search<\/a><\/li>\n<li><a target=\"_blank\" title='css - \"Inline\" border of a div - Stack Overflow' href='https:\/\/stackoverflow.com\/questions\/41449861\/inline-border-of-a-div' rel=\"noopener\">css &#8211; &#8220;Inline&#8221; border of a div &#8211; Stack Overflow<\/a><\/li>\n<li><a target=\"_blank\" title='border inline - Google search' href='https:\/\/www.google.com.au\/search?q=border+inline&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-b-ab&#038;gfe_rd=cr&#038;dcr=0&#038;ei=rZ6wWZzIK7PM8geD3LvIBw' rel=\"noopener\">border inline &#8211; Google search<\/a><\/li>\n<\/ul>\n<hr>\n<p id='css3dtmpt'>Previous relevant <a target=\"_blank\" title='CSS 3D Transformation Matrix Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/css-3d-transformation-matrix-primer-tutorial\/' rel=\"noopener\">CSS 3D Transformation Matrix Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/more_transform.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"CSS 3D Transformation Matrix Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/transform_matrix.jpg\" title=\"CSS 3D Transformation Matrix Primer Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">CSS 3D Transformation Matrix Primer Tutorial<\/p><\/div>\n<p>The tutorial <a title='CSS3 3D Rotation and Transformation Primer Tutorial' href='#css33drtpt'>CSS3 3D Rotation and Transformation Primer Tutorial<\/a> discussed CSS styling regarding element transformations, and referred to the wonderful content of <a target=\"_blank\" title='' href='http:\/\/franklinta.com\/2014\/09\/08\/computing-css-matrix3d-transforms\/' rel=\"noopener\">Computing CSS matrix3d transforms | Franklin Ta<\/a>, involving matrix mathematics to transform HTML elements and the <a target=\"_blank\" title='CSS matrix3d() function information' href='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/CSS\/transform-function\/matrix3d' rel=\"noopener\">matrix3d()<\/a> CSS function &#8230; great stuff, thanks.  Also, coming at this topic of transformations from another angle, the previous <a target=\"_blank\" title='ImageMagick and Three Ps Charcoal Implode Quality Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/imagemagick-and-three-ps-charcoal-implode-quality-tutorial\/' rel=\"noopener\">ImageMagick and Three Ps Charcoal Implode Quality Tutorial<\/a> touches on this aspect of transformations, in its case &#8220;affine&#8221; transformations, whereby an actual image element is transformed and presented in a downloadable way.<\/p>\n<p>Today we recreate that work with the CSS matrix3d() function of Frank Ta to turn this into a web application where you can drag the edges of an HTML div element to derive the underlying CSS matrix3d() function parameter set would be used to recreate this HTML div display, perhaps elsewhere.  We also allow for the user to enter in an image URL that if they click a button will apply that image as the background image to the HTML div element, as you can see play out with today&#8217;s <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/transform_matrix.jpg\" title=\"Tutorial picture\" rel=\"noopener\">tutorial picture<\/a>.  The <a target=\"_blank\" href='http:\/\/jquery.org' title='jQuery Javascript library home page' rel=\"noopener\">jQuery<\/a> Javascript here helps the day enormously, though Frank used the <a target=\"_blank\" title='CoffeeScript' href='http:\/\/coffeescript.org\/' rel=\"noopener\">CoffeeScript<\/a> (compiled into Javascript) within the <a target=\"_blank\" title='CodePen' href='https:\/\/codepen.io\/' rel=\"noopener\">CodePen<\/a> &#8220;Front End Developer Playground and Code Editor&#8221; environment <font size=1>&#8230; worth taking a skeg &#8230;<\/font> when doing a cuter looking web application at that aforesaid mentioned link.<\/p>\n<p>Is the power of the modern device going to mean these types of transformations will &#8220;power&#8221; our online world, rather than trying to make the original media &#8220;fit the bill&#8221;, always?  We&#8217;d say, probably, but we&#8217;d also say &#8230; <\/p>\n<blockquote onclick=\"window.open('http:\/\/www.rjmprogramming.com.au\/PHP\/nala.php','_blank');\" style='cursor:pointer;background-color:transparent;'>\n<div style=\"vertical-align:top;color:red;width:100%;text-align:right; background: -webkit-linear-gradient(#BBB, white) bottom repeat; background: linear-gradient(#BBB, white) bottom repeat; \"><b><i>&#8220;Nala! Put down that<br \/> matrix3d(0.7751,1.854,0,0,<br \/> 0,1.3861,0,0, 0,0,1,0,<br \/> -0.0004308,0.003552,0,1)<br \/> &#8216;deformed&#8217; soft toy, we think<br \/> you&#8217;ll find belongs to Luna &#8230; <br \/>Naaaalllllaaaa!&#8221;<\/i><\/b><\/p>\n<div style=\"margin-top:-165px;margin-right:290px;text-align:right;height:195px;color:transparent;background:URL('http:\/\/www.rjmprogramming.com.au\/Mac\/PhotoBooth_flickr.jpg');background-position:-140px -400px;background-repeat:no-repeat;  -webkit-filter: brightness(220%);filter: brightness(220%);\"><i>Nala! Put down that matrix3d(0.775105,1.85444,0,0, 0,1.386120,0,0, 0,0,1,0,<br \/> -0.000430821,0.00355248,0,1)<br \/> &#8220;deformed&#8221; soft toy, that<br \/> we think you&#8217;ll find belongs to Luna &#8230; Naaaalllllaaaa!<\/i>\n<\/div>\n<\/div>\n<div style=\"margin-top:30px;\"> &#8230; and don&#8217;t think that&#8217;s going to cut the mustard at the next World Symposium of Transformation Matr<strike>esses<\/strike>ices 2017 &#8230; &#8220;The Future Is Ahead of One<font size=1>sies<\/font>&#8220;.<\/div>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<p>Why don&#8217;t you try this HTML and Javascript (mostly jQuery) and CSS web application <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/more_transform.html_GETME\" title=\"more_transform.html\" rel=\"noopener\">more_transform.html<\/a>&#8216;s <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/more_transform.html\" title=\"Click picture\" rel=\"noopener\">live run<\/a> to see what we mean?  It can be weird, and wonderful!<\/p>\n<hr>\n<p id='css33drtpt'>Previous relevant <a target=\"_blank\" title='CSS3 3D Rotation and Transformation Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/css3-3d-rotation-and-transformation-primer-tutorial\/' rel=\"noopener\">CSS3 3D Rotation and Transformation Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/rotate3d.html\" rel=\"noopener\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"CSS3 3D Rotation and Transformation Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/rotate3d.png\" title=\"CSS3 3D Rotation and Transformation Primer Tutorial\" id='zxcv' onmouseover=' this.src=this.src.replace(\".jpg\",\".PNG\").replace(\".png\",\".jpg\").replace(\".PNG\",\".png\"); '  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">CSS3 3D Rotation and Transformation Primer Tutorial<\/p><\/div>\n<blockquote><p>Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation semantics (the look and formatting) of a document written in a markup language. Its most common application is to style web pages written in HTML and XHTML, but the language can also be applied to any kind of XML document, including plain XML, SVG and XUL.<\/p><\/blockquote>\n<p><a target=\"_blank\" title='click picture' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/rotate3d.html' rel=\"noopener\">Tutorial<\/a> &#8230;<\/p>\n<p>Cascading Style Sheet methodology is a good technique in order to separate document content from document presentation.  For the same content, two different CSS approaches can produce vastly different browser outputs.<\/p>\n<p>With today&#8217;s tutorial we concentrate on CSS within HTML and specifically the CSS3 3D Rotation and Transformation functionality you can read about <a target=\"_blank\" title='CSS3 3D Transforms' href='http:\/\/www.w3schools.com\/css\/css3_3dtransforms.asp' rel=\"noopener\">CSS3 3D Transforms<\/a> at w3schools.<\/p>\n<p>With the transformations section there are 16 elements in a 4&#215;4 matrix to define, and so there is a fair degree of mathematical geometry that would be good to know here.  This mathematics is explained well at <a target=\"_blank\" title='' href='http:\/\/franklinta.com\/2014\/09\/08\/computing-css-matrix3d-transforms\/' rel=\"noopener\">Computing CSS matrix3d transforms | Franklin Ta<\/a> &#8230; thanks a lot.<\/p>\n<p>You can download source code and rename to <a target=\"_blank\" href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/rotate3d.html_GETME' title=\"rotate3d.html\" rel=\"noopener\">rotate3d.html<\/a> or you can use the <a target=\"_blank\" href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/rotate3d.html' title=\"rotate3d.html\" rel=\"noopener\">live run<\/a> to wake up all those ants on the footpath that have been thinking their life is just grand and dandy.<\/p>\n<p>Thanks to <a target=\"_blank\" title='CSS information from Wikipedia ... thanks' href='http:\/\/en.wikipedia.org\/wiki\/Cascading_Style_Sheets' rel=\"noopener\">Wikipedia<\/a> for the quote above.<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d10553' onclick='var dv=document.getElementById(\"d10553\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?tag=rotation\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d10553' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d32616' onclick='var dv=document.getElementById(\"d32616\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/matrix\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d32616' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d33178' onclick='var dv=document.getElementById(\"d33178\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/css\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d33178' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>It was &#8220;line ball&#8221; as to whether the &#8220;making of&#8221; our CSS 3D Transformation Matrix Primer Tutorial some time back was harder than the programming involved in its &#8220;cut to the chase&#8221; web application&#8217;s code. This, we find, embarrassing, though &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/css-3d-transformation-matrix-making-of-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[72,126,127,150,1857,281,342,431,433,451,576,590,929,997,2272,1212,1319,1802],"class_list":["post-33178","post","type-post","status-publish","format-standard","hentry","category-uncategorised","tag-align","tag-background","tag-background-image","tag-blockquote","tag-crop","tag-css","tag-div","tag-filter","tag-filters","tag-font","tag-html","tag-image","tag-photograph","tag-programming","tag-size","tag-styling","tag-tutorial","tag-vertical-align"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/33178"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=33178"}],"version-history":[{"count":8,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/33178\/revisions"}],"predecessor-version":[{"id":64618,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/33178\/revisions\/64618"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=33178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=33178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=33178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}