{"id":241,"date":"2009-02-20T17:44:12","date_gmt":"2009-02-21T01:44:12","guid":{"rendered":"http:\/\/blog.mozilla.org\/webdev\/?p=241"},"modified":"2017-03-08T14:50:08","modified_gmt":"2017-03-08T22:50:08","slug":"cross-browser-inline-block","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/","title":{"rendered":"Cross-Browser Inline-Block"},"content":{"rendered":"<p>Ah, inline-block, that elusive and oh so tempting display declaration that promises so much, yet delivers so little. Too many times have I received PSD files like this:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" title=\"Gallery Design\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/gallery-view.jpg\" alt=\"Gallery Design\" width=\"450\" height=\"410\" \/><\/p>\n<p>and begin to cry.<\/p>\n<p>Normally, this type of layout would be a cakewalk. Fixed width, fixed height, float:left and you&#8217;re done. Buuuuut, the design needs to work with variable amounts of content, which means if one of these blocks has more content than the others, it will break the layout:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" title=\"Broken Layout with float:left\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/float-broken.jpg\" alt=\"Broken Layout with float:left\" width=\"450\" height=\"404\" \/><\/p>\n<p>Because the first gallery item is taller than the rest, the 5th item is floated left against it instead of below it. Basically we want a layout with the flexibility of a table, but proper, semantic markup.<\/p>\n<p>We start with a simple page with an unordered list and display set to inline-block:<\/p>\n<pre>&lt;ul&gt;\r\n    &lt;li&gt;\r\n        &lt;h4&gt;This is awesome&lt;\/h4&gt;\r\n        &lt;img src=\"http:\/\/farm4.static.flickr.com\/3623\/3279671785_d1f2e665b6_s.jpg\"\r\n        alt=\"lobster\" width=\"75\" height=\"75\"\/&gt;\r\n    &lt;\/li&gt;\r\n...\r\n&lt;ul&gt;\r\n\r\n&lt;style&gt;\r\n    li {\r\n        width: 200px;\r\n        min-height: 250px;\r\n        border: 1px solid #000;\r\n        display: inline-block;\r\n        margin: 5px;\r\n    }\r\n&lt;\/style&gt;<\/pre>\n<p>And it looks <em>ok<\/em> in Firefox 3, Safari 3 and Opera:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" title=\"Step 1\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/step1.jpg\" alt=\"Step 1\" width=\"450\" height=\"288\" \/><\/p>\n<p>Obviously, something is wrong with the vertical alignment. Well, not exactly wrong, because this is the correct behavior, but it&#8217;s not what we want.<\/p>\n<p>What&#8217;s going on here is the <a href=\"http:\/\/dev.w3.org\/csswg\/css3-linebox\/#baseline\">baseline<\/a> of each &lt;li&gt; is being aligned with the baseline of the parent &lt;ul&gt;. What&#8217;s a baseline, you ask? A picture is worth a thousand words:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" title=\"Baseline\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/baseline.gif\" alt=\"Baseline\" width=\"295\" height=\"61\" \/><\/p>\n<p>The baseline is the black line running through the text above. Putting it as simply as possible, the <a href=\"http:\/\/www.w3.org\/TR\/CSS21\/visudet.html#propdef-vertical-align\">default vertical-align value<\/a> on inline or inline-block element is baseline, which means the element&#8217;s baseline will be aligned with its parent&#8217;s baseline. Here&#8217;s the first inline-block attempt with baselines shown:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" title=\"Baseline illustration\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/baseline-inline-block.jpg\" alt=\"Baseline illustration\" width=\"450\" height=\"168\" \/><\/p>\n<p>As you can see, each baseline is aligned with the baseline for the text &#8216;This is the baseline&#8217;. That text is <strong>not<\/strong> in a &lt;li&gt;, but simply a text node of the parent &lt;ul&gt;, to illustrate where the parent&#8217;s baseline is.<\/p>\n<p>Anyway, the fix for this is simple: vertical-align:top, which results in a great looking grid:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-262\" title=\"Inline block 2\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-2.jpg\" alt=\"Inline block 2\" width=\"450\" height=\"324\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-2.jpg 450w, https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-2-300x216.jpg 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>Except it still doesn&#8217;t work in Firefox 2, IE 6 and 7.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-269\" title=\"inline-block-ff2\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-ff2.jpg\" alt=\"inline-block-ff2\" width=\"450\" height=\"537\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-ff2.jpg 450w, https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-ff2-251x300.jpg 251w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>Let&#8217;s start with Firefox 2.<\/p>\n<p>Firefox 2 doesn&#8217;t support inline-block, but it does support a Mozilla specific display property &#8216;-moz-inline-stack&#8217;, which displays just like inline-block.  And when we add it before display:inline-block, FF2 ignores that declaration and keeps -moz-inline-stack because it doesn&#8217;t support inline-block. Browsers that support inline-block will use it and ignore previous display property.<\/p>\n<pre>&lt;style&gt;\r\n    li {\r\n        width: 200px;\r\n        min-height: 250px;\r\n        border: 1px solid #000;\r\n        display: -moz-inline-stack;\r\n        display: inline-block;\r\n        vertical-align: top;\r\n        margin: 5px;\r\n    }\r\n&lt;\/style&gt;<\/pre>\n<p>Unfortunately, it has a small bug:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-263\" title=\"Inline Block in Firefox 2\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-3.jpg\" alt=\"Inline Block in Firefox 2\" width=\"450\" height=\"250\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-3.jpg 450w, https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-3-300x166.jpg 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>Honestly, I don&#8217;t know what causes this bug. But there is quick fix. Wrap everything inside the &lt;li&gt; with a &lt;div&gt;.<\/p>\n<pre>&lt;li&gt;\r\n        &lt;div&gt;\r\n            &lt;h4&gt;This is awesome&lt;\/h4&gt;\r\n            &lt;img src=\"http:\/\/farm4.static.flickr.com\/3623\/3279671785_d1f2e665b6_s.jpg\"\r\n            alt=\"lobster\" width=\"75\" height=\"75\"\/&gt;\r\n        &lt;\/div&gt;\r\n&lt;\/li&gt;<\/pre>\n<p>This seems to &#8216;reset&#8217; everything inside the &lt;li&gt;&#8217;s and makes them display appropriately.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-262\" title=\"Inline block 2\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-2.jpg\" alt=\"Inline block 2\" width=\"450\" height=\"324\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-2.jpg 450w, https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-2-300x216.jpg 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>Now, on to IE 7. IE 7 does not support inline-block, but we can trick it into rendering the &lt;li&gt;s as if they were inline-block. How? <em><a href=\"http:\/\/haslayout.net\/haslayout\">hasLayout<\/a><\/em>, a magical property of IE that allows for all sorts of fun! You can&#8217;t set hasLayout explicity on an element with hasLayout:true; or anything easy like that, but you can trigger it with other declarations like zoom:1.<\/p>\n<p>Technically, what hasLayout means is an element with hasLayout set to true is responsible for rendering itself and its children (combine that with a min-height and width, and you get something very similar to display:block). It&#8217;s kinda like magical fairy dust you can sprinkle on rendering issues and make them disappear.<\/p>\n<p>When we add zoom:1 and *display:inline (<a href=\"http:\/\/www.ejeliot.com\/blog\/63\">star hack to target IE6 &amp; 7<\/a>) to the &lt;li&gt;s, we make IE 7 display them as if they were inline-block:<\/p>\n<pre>&lt;style&gt;\r\n    li {\r\n        width: 200px;\r\n        min-height: 250px;\r\n        border: 1px solid #000;\r\n        display: -moz-inline-stack;\r\n        display: inline-block;\r\n        vertical-align: top;\r\n        margin: 5px;\r\n        zoom: 1;\r\n        *display: inline;\r\n    }\r\n&lt;\/style&gt;<\/pre>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-267\" title=\"inline-block-ie7\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-ie7.jpg\" alt=\"inline-block-ie7\" width=\"450\" height=\"322\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-ie7.jpg 450w, https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-ie7-300x214.jpg 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>Phew! Almost done. Just IE 6 left:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-272\" title=\"inline-block-ie6\" src=\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-ie6.jpg\" alt=\"inline-block-ie6\" width=\"450\" height=\"289\" srcset=\"https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-ie6.jpg 450w, https:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/inline-block-ie6-300x192.jpg 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>IE 6 doesn&#8217;t support min-height, but thanks to its improper handling of the height property, we can use that instead. Setting _height (<a href=\"http:\/\/www.ejeliot.com\/blog\/63\">IE6 underscore hack<\/a>) to 250px will give all &lt;li&gt;s a height of 250px, and if their content is bigger than that, they will expand to fit. All other browsers will ignore _height.<\/p>\n<p>So after all that work, here&#8217;s the final CSS and HTML:<\/p>\n<pre>&lt;style&gt;\r\n    li {\r\n        width: 200px;\r\n        min-height: 250px;\r\n        border: 1px solid #000;\r\n        display: -moz-inline-stack;\r\n        display: inline-block;\r\n        vertical-align: top;\r\n        margin: 5px;\r\n        zoom: 1;\r\n        *display: inline;\r\n        _height: 250px;\r\n    }\r\n&lt;\/style&gt;\r\n\r\n&lt;li&gt;\r\n        &lt;div&gt;\r\n            &lt;h4&gt;This is awesome&lt;\/h4&gt;\r\n            &lt;img src=\"http:\/\/farm4.static.flickr.com\/3623\/3279671785_d1f2e665b6_s.jpg\"\r\n            alt=\"lobster\" width=\"75\" height=\"75\"\/&gt;\r\n        &lt;\/div&gt;\r\n&lt;\/li&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ah, inline-block, that elusive and oh so tempting display declaration that promises so much, yet delivers so little. Too many times have I received PSD files like this: and begin to cry. Normally, this type of layout would be a &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1438,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[288],"tags":[],"coauthors":[264789],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cross-Browser Inline-Block - Mozilla Web Development<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"mozilla\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/\",\"name\":\"Cross-Browser Inline-Block - Mozilla Web Development\",\"isPartOf\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/gallery-view.jpg\",\"datePublished\":\"2009-02-21T01:44:12+00:00\",\"dateModified\":\"2017-03-08T22:50:08+00:00\",\"author\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/70ae25c16f09d053c6d8b5eac29dbda9\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#primaryimage\",\"url\":\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/gallery-view.jpg\",\"contentUrl\":\"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/gallery-view.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.mozilla.org\/webdev\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cross-Browser Inline-Block\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#website\",\"url\":\"https:\/\/blog.mozilla.org\/webdev\/\",\"name\":\"Mozilla Web Development\",\"description\":\"For make benefit of glorious tubes\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.mozilla.org\/webdev\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/70ae25c16f09d053c6d8b5eac29dbda9\",\"name\":\"mozilla\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/image\/e77ee64829d0c3831212656324f746d1\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/75d2017e019c87560fe5d148a64659dc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/75d2017e019c87560fe5d148a64659dc?s=96&d=mm&r=g\",\"caption\":\"mozilla\"},\"url\":\"https:\/\/blog.mozilla.org\/webdev\/author\/mozilla-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cross-Browser Inline-Block - Mozilla Web Development","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/","twitter_misc":{"Written by":"mozilla","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/","url":"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/","name":"Cross-Browser Inline-Block - Mozilla Web Development","isPartOf":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#primaryimage"},"image":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#primaryimage"},"thumbnailUrl":"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/gallery-view.jpg","datePublished":"2009-02-21T01:44:12+00:00","dateModified":"2017-03-08T22:50:08+00:00","author":{"@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/70ae25c16f09d053c6d8b5eac29dbda9"},"breadcrumb":{"@id":"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#primaryimage","url":"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/gallery-view.jpg","contentUrl":"http:\/\/blog.mozilla.org\/webdev\/files\/2009\/02\/gallery-view.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.mozilla.org\/webdev\/2009\/02\/20\/cross-browser-inline-block\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.mozilla.org\/webdev\/"},{"@type":"ListItem","position":2,"name":"Cross-Browser Inline-Block"}]},{"@type":"WebSite","@id":"https:\/\/blog.mozilla.org\/webdev\/#website","url":"https:\/\/blog.mozilla.org\/webdev\/","name":"Mozilla Web Development","description":"For make benefit of glorious tubes","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.mozilla.org\/webdev\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/70ae25c16f09d053c6d8b5eac29dbda9","name":"mozilla","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.mozilla.org\/webdev\/#\/schema\/person\/image\/e77ee64829d0c3831212656324f746d1","url":"https:\/\/secure.gravatar.com\/avatar\/75d2017e019c87560fe5d148a64659dc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/75d2017e019c87560fe5d148a64659dc?s=96&d=mm&r=g","caption":"mozilla"},"url":"https:\/\/blog.mozilla.org\/webdev\/author\/mozilla-2\/"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/241"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/users\/1438"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/comments?post=241"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/posts\/241\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/media?parent=241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/categories?post=241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/tags?post=241"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/webdev\/wp-json\/wp\/v2\/coauthors?post=241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}