<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>John Kurlak's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/kurlak/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/kurlak/feed.xml</link>
    <description>This is my blog on web development and computer science.</description>
    <lastBuildDate>Fri, 15 May 2015 06:01:08 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Filling the remaining height of a container while handling overflow in CSS (IE8+, Firefox, Chrome, Safari)</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/filling-the-remaining-height-of-a-container-while-handling-overflow-in-css-ie8-firefox-chrome-safari</link>
      <pubDate>Fri, 20 Feb 2015 08:44:00 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2015/02/20/filling-the-remaining-height-of-a-container-while-handling-overflow-in-css-ie8-firefox-chrome-safari/</guid>
      <description><![CDATA[The issue
I want to have a container with two elements inside of it, stacked on top of each...]]></description>
      <content:encoded><![CDATA[<p><span style="text-decoration: underline;"><strong>The issue</strong></span></p>
<p>I want to have a container with two elements inside of it, stacked on top of each other.&nbsp; I don't know how tall the top element is, so I want it to take up as much vertical space as the content it holds.&nbsp; I don't know how tall the bottom element is, so I want it to take up whatever space remains, and if it has more content, I want it to have a vertical scrollbar.</p>
<p>&nbsp;</p>
<p>In other words, I want something like this:</p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/55/03/5148.problem.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-55-03/5148.problem.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/55/03/5148.problem.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-55-03/5148.problem.png" alt="" width="361" height="267" border="0" /></a></p>
<p>&nbsp;I searched everywhere online and could not find a cross-browser, CSS-only solution.</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>The solution</strong></span></p>
<p>To solve this problem, I had to use <span style="font-family: courier new,courier;">display: table</span>.&nbsp; The problem with tables is that it's hard to limit the height of them: if their content is too tall, the table will grow in height.&nbsp;&nbsp;I found two suggestions to overcome this online.&nbsp; The first suggestion was to give the container for the table <span style="font-family: courier new,courier;">overflow: hidden</span> or <span style="font-family: courier new,courier;">overflow: auto</span>.&nbsp; Any content that overflows will either be hidden or&nbsp;reachable via a scrollbar.&nbsp; The problem with this&nbsp;approach is that the header&nbsp;is inside of the scrollable area, which is not desired.&nbsp; The other suggestion is give the table <span style="font-family: courier new,courier;">display: block</span>, which allows you to limit its height.&nbsp; The problem with that solution is that then we no longer inherit the wonderful properties of tables that we need.</p>
<p>The solution I ended up coming up with started with the table approach.&nbsp; The very basic table approach is to make the container have <span style="font-family: courier new,courier;">display: table</span> and to give each of the elements in the table<span style="font-family: courier new,courier;"> display: table-row</span>.&nbsp; At that point, the issue comes when the content of the bottom element is too tall for the container.&nbsp; If the content is taller than the container, the table's height will grow.&nbsp; We don't want the table's height to grow.&nbsp; Setting <span style="font-family: courier new,courier;">height</span> and <span style="font-family: courier new,courier;">max-height</span> don't work.&nbsp; To limit the height of the bottom row in the table, I had to take the content out of the regular flow.&nbsp; If there is no content in the bottom row, then the bottom row will take up the correct amount of space.&nbsp; The easiest way to take content out of the flow of a page is to wrap it in another element and give&nbsp;that element&nbsp;<span style="font-family: courier new,courier;">position: absolute</span>.&nbsp; The problem with <span style="font-family: courier new,courier;">position: absolute </span>is that now our content isn't restricted to the boundaries of the bottom row.&nbsp; To fix this, we have to scope <span style="font-family: courier new,courier;">position: absolute</span>.&nbsp; We do that by making the table row have <span style="font-family: courier new,courier;">position: relative</span>.&nbsp; Unfortunately, making the bottom row <span style="font-family: courier new,courier;">position: relative </span>doesn't work because <span style="font-family: courier new,courier;">position: relative</span> doesn't work on table rows.&nbsp; To overcome this, I added yet another wrapper around the absolutely-positioned content.&nbsp; I put <span style="font-family: courier new,courier;">position: relative </span>on this new wrapper and gave it <span style="font-family: courier new,courier;">width: 100%</span> and <span style="font-family: courier new,courier;">height: 100%</span>.&nbsp; Now, the absolutely-positioned element is positioned with respect to the dimensions of the bottom row.&nbsp; Thus, we can give it <span style="font-family: courier new,courier;">top: 0</span>, <span style="font-family: courier new,courier;">bottom: 0</span>, <span style="font-family: courier new,courier;">left: 0</span>, and <span style="font-family: courier new,courier;">right: 0</span> and it will fill the space of the bottom row.&nbsp;&nbsp;If we want the content to show a scrollbar, we just add <span style="font-family: courier new,courier;">overflow: auto</span>.&nbsp; And that does the trick!&nbsp; Unfortunately, it only works in IE11+.</p>
<p>If you don't need to support below IE11, then here's the full code:</p>
<p><strong>HTML</strong></p>
<p>&lt;div class="table container"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;div class="table-row header"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the header whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the header whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the header whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&nbsp;&nbsp;&nbsp; &lt;div class="table-row body"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="body-content-wrapper"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="body-content"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&lt;/div&gt;</p>
<p><strong>CSS</strong></p>
<p>.table {<br />&nbsp;&nbsp;&nbsp; display: table;<br />}</p>
<p>.table-row {<br />&nbsp;&nbsp;&nbsp; display: table-row;<br />}</p>
<p>.container {<br />&nbsp;&nbsp;&nbsp; width: 400px;<br />&nbsp;&nbsp;&nbsp; height: 300px;<br />}</p>
<p>.header {<br />&nbsp;&nbsp;&nbsp; background: cyan;<br />}</p>
<p>.body {<br />&nbsp;&nbsp;&nbsp; background: yellow;<br />&nbsp;&nbsp;&nbsp; height: 100%;<br />}</p>
<p>.body-content-wrapper {<br />&nbsp;&nbsp;&nbsp; width: 100%;<br />&nbsp;&nbsp;&nbsp; height: 100%;<br />&nbsp;&nbsp;&nbsp; position: relative;<br />}</p>
<p>.body-content {<br />&nbsp;&nbsp;&nbsp; position: absolute;<br />&nbsp;&nbsp;&nbsp; top: 0;<br />&nbsp;&nbsp;&nbsp; bottom: 0;<br />&nbsp;&nbsp;&nbsp; left: 0;<br />&nbsp;&nbsp;&nbsp; right: 0;<br />&nbsp;&nbsp;&nbsp; overflow: auto;<br />}</p>
<p>And&nbsp;a working example on&nbsp;<strong><a title="JSFiddle" href="https://jsfiddle.net/7xrbqmba/">JSFiddle</a></strong>.&nbsp;</p>
<p>I wasn't satisfied with the IE support for this solution.&nbsp; Thus, I decided to dive further.&nbsp; So the issue with IE10 and below is that the body-content-wrapper needs to have <span style="font-family: courier new,courier;">display: table-cell</span>.&nbsp; As soon as I add <span style="font-family: courier new,courier;">display: table-cell</span>, the bottom content no longer renders.&nbsp; The reason for this is that <span style="font-family: courier new,courier;">position: relative</span> is undefined for table-cell elements (see: <a href="https://stackoverflow.com/a/17527089/55732">https://stackoverflow.com/a/17527089/55732</a>).&nbsp; I was able to get around this by adding yet another wrapper around the content for the <span style="font-family: courier new,courier;">table-cell</span>.&nbsp; And that seems to work in IE8+!</p>
<p>Here's the full code:</p>
<p><strong>HTML</strong></p>
<p>&lt;div class="table container"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;div class="table-row header"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the header whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the header whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the header whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&nbsp;&nbsp;&nbsp; &lt;div class="table-row body"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="table-cell body-content-outer-wrapper"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="body-content-inner-wrapper"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="body-content"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;This is the scrollable content whose height is unknown&lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />&lt;/div&gt;</p>
<p><strong>CSS</strong></p>
<p>.table {<br />&nbsp;&nbsp;&nbsp; display: table;<br />}</p>
<p>.table-row {<br />&nbsp;&nbsp;&nbsp; display: table-row;<br />}</p>
<p>.table-cell {<br />&nbsp;&nbsp;&nbsp; display: table-cell;<br />}</p>
<p>.container {<br />&nbsp;&nbsp;&nbsp; width: 400px;<br />&nbsp;&nbsp;&nbsp; height: 300px;<br />}</p>
<p>.header {<br />&nbsp;&nbsp;&nbsp; background: cyan;<br />}</p>
<p>.body {<br />&nbsp;&nbsp;&nbsp; background: yellow;<br />&nbsp;&nbsp;&nbsp; height: 100%;<br />}</p>
<p>.body-content-outer-wrapper {<br />&nbsp;&nbsp;&nbsp; height: 100%;<br />}</p>
<p>.body-content-inner-wrapper {<br />&nbsp;&nbsp;&nbsp; height: 100%;<br />&nbsp;&nbsp;&nbsp; position: relative;<br />&nbsp;&nbsp;&nbsp; overflow: auto;<br />}</p>
<p>.body-content {<br />&nbsp;&nbsp;&nbsp; position: absolute;<br />&nbsp;&nbsp;&nbsp; top: 0;<br />&nbsp;&nbsp;&nbsp; bottom: 0;<br />&nbsp;&nbsp;&nbsp; left: 0;<br />&nbsp;&nbsp;&nbsp; right: 0;<br />}</p>
<p><span style="font-family: arial,helvetica,sans-serif;">And a working example on <strong><a href="https://jsfiddle.net/352ntoz2/">JSFiddle</a></strong>.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Vertically Centering Multiple Lines of Text in CSS</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/vertically-centering-multiple-lines-of-text-in-css</link>
      <pubDate>Tue, 13 May 2014 20:23:00 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2014/05/13/vertically-centering-multiple-lines-of-text-in-css/</guid>
      <description><![CDATA[It used to be pretty difficult to vertically center a paragraph of text within its container using...]]></description>
      <content:encoded><![CDATA[<p>It used to be pretty difficult to vertically center a paragraph of text within its container using CSS. &nbsp;Fortunately, CSS 3 makes it a bit easier:</p>
<pre class="scroll"><code class="css">p {<br /> position: relative;<br /> top: 50%;<br /> -ms-transform: translateY(-50%);<br /> -webkit-transform: translateY(-50%);<br /> transform: translateY(-50%);<br />}&nbsp;</code></pre>
<p>Here's an <a title="example on JSBin" href="https://jsbin.com/zujinejo/2/edit?html,css,output">example on JSBin</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Hiding Vertical Scrollbars with Pure CSS in Chrome, IE (6+), Firefox, Opera, and Safari</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/hiding-vertical-scrollbars-with-pure-css-in-chrome-ie-6-firefox-opera-and-safari</link>
      <pubDate>Sun, 03 Nov 2013 10:56:00 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2013/11/03/hiding-vertical-scrollbars-with-pure-css-in-chrome-ie-6-firefox-opera-and-safari/</guid>
      <description><![CDATA[I just spent the past day trying to figure out the best way to hide scrollbars using pure CSS in the...]]></description>
      <content:encoded><![CDATA[<p>I just spent the past day trying to figure out the best way to hide scrollbars using pure CSS in the latest versions of every browser. &nbsp;I wanted to be able to still scroll within the element, however, so using:</p>
<pre class="scroll"><code class="css">.element { overflow: hidden; }</code></pre>
<p>&nbsp;was not an option. &nbsp;I looked at how Facebook hides their scrollbars in the chat window, I looked at recommendations made on StackOverflow, and I invented a lot of solutions on my own. &nbsp;Eventually, I arrived at a solution that I like.</p>
<p>&nbsp;</p>
<p>So first, a little background... my preliminary research revealed the following:</p>
<ul>
<li>There is a CSS rule that can hide scrollbars in Webkit-based browsers (Chrome and Safari). &nbsp;That rule is:&nbsp;
<pre class="scroll"><code class="css">.element::-webkit-scrollbar { width: 0 !important }</code></pre>
</li>
<li>There is a CSS rule that can hide scrollbars in IE 10+. &nbsp;That rule is:&nbsp;
<pre class="scroll"><code class="css">.element { -ms-overflow-style: none; }</code></pre>
</li>
<li>There <em>used to be</em>&nbsp;a CSS rule that could hide scrollbars in Firefox, but it has since been deprecated. &nbsp;That rule was:&nbsp;
<pre class="scroll"><code class="css">.element { overflow: -moz-scrollbars-none; }</code></pre>
</li>
</ul>
<p>&nbsp;</p>
<p><span style="white-space: pre;">The StackOverflow-recommended approach was to give my element scrollbars, wrap it in a</span></p>
<p><span style="white-space: pre;">containing element, and make the </span><span style="white-space: pre;">containing element element smaller, </span><span style="white-space: pre;">and give it:</span></p>
<pre class="scroll"><code class="css">overflow: hidden;</code></pre>
<p>&nbsp;</p>
<p><span style="white-space: pre;">This is the approach Facebook uses for their chat window. However, there are two problems with</span></p>
<p><span style="white-space: pre;">this approach:</span></p>
<ol>
<li>We have to hard-code in the width of a scrollbar, but this width can vary from browser to browser</li>
<li>In Webkit browsers like Chrome and Safari, if we highlight text and drag to the right, it scrolls the inner element to the left and the scrollbars are revealed</li>
</ol>
<div style="padding-left: 60px;">See this screenshot from Facebook, after I clicked and dragged to the right:</div>
<div style="padding-left: 60px;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/55/03/7587.Untitled-3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-55-03/7587.Untitled_2D00_3.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/55/03/7587.Untitled-3.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-55-03/7587.Untitled_2D00_3.png" alt="" border="0" /></a></div>
<p style="padding-left: 60px;">&nbsp;</p>
<p>I searched StackOverflow to see if there were any fixes to the clicking and dragging issue. &nbsp;I found a JavaScript solution that seemed to work, but it was kind of hacky. &nbsp;Essentially, you bind to the scroll event for your element and set the <span style="font-family: 'courier new', courier;">scrollLeft</span> to 0 every time the scroll event fires. &nbsp;That seems to work, but if the browser lags at all, it can look glitchy. &nbsp;I continued searching for a better solution.</p>
<p>One solution I found recommended setting:</p>
<pre class="scroll"><code class="css">.element:active { pointer-events: none; }</code></pre>
<p>That prevented Webkit users from scrolling to the right when clicking and dragging to the right on text, but it also prevented them from scrolling down when clicking and dragging down on the text. &nbsp;Clearly that wouldn't be a good solution.</p>
<p>&nbsp;</p>
<p>Then I thought: what if instead of covering the scrollbars with a containing element, I used an <span style="font-family: 'courier new', courier;">::after</span> element to just put a white box overtop of the scrollbar? &nbsp;That seemed to work, but it required that I knew how wide the scrollbar was. &nbsp;After a little tweaking, I found a way to create an element that was just as wide as a scrollbar and covered the existing scrollbar. &nbsp;Essentially, what I did was create an element that was nothing but a vertical scrollbar. &nbsp;Then I put an <span style="font-family: 'courier new', courier;">::after</span> element on that that covered it with a solid color. &nbsp;Finally, I moved the whole piece overtop of the existing scrollbar. &nbsp;This method was pretty simple, but it still left a lot to be desired. &nbsp;What if I didn't want the extra white space to the right of my scrollable element? &nbsp;I continued searching for a better solution...</p>
<p>&nbsp;</p>
<p>Next, I tried to see if there would be some hacky way to hide scrollbars in Firefox. &nbsp;I could already hide them in Chrome, Safari, and IE, so Firefox was the last remaining puzzle piece. &nbsp;I stumbled upon the <span style="font-family: 'courier new', courier;">-moz-appearance</span> CSS property and tried a number of options. &nbsp;One thing that almost worked was:</p>
<pre class="scroll"><code class="css">.element { -moz-appearance: menuimage; }</code></pre>
<p>This removed the scrollbars from the element, but unfortunately, it also restricted the width and height of my element. &nbsp;I couldn't find any way to change the size. &nbsp;After many hours, I gave up on hiding scrollbars in Firefox.</p>
<p>&nbsp;</p>
<p>Then another idea came to mind. &nbsp;What if the used the <span style="font-family: 'courier new', courier;">transform</span> property of CSS to mess with the scrollbars somehow? &nbsp;The <span style="font-family: 'courier new', courier;">transform</span>&nbsp;property affects everything in the element, including the scrollbars! &nbsp;I decided that the <span style="font-family: 'courier new', courier;">scale</span> option would be my best bet. &nbsp;What I ended up doing was scaling the x axis of the scrollbar element by a factor of about 0.001. &nbsp;This made the scrollbar so thin that it disappeared. &nbsp;Then, I wrapped the text content in another element and scaled the x axis of that element by a factor of 1000. &nbsp;That seemed to work! &nbsp;However, text highlighting was glitchy in Firefox with this approach.</p>
<p>&nbsp;</p>
<p>I then thought of another idea that involved using <span style="font-family: 'courier new', courier;">transform</span>. &nbsp;What if I mirrored the element with the scrollbar, and then mirrored the text inside? &nbsp;That would put the scrollbar on the left instead of the right. &nbsp;I did that, and then I gave the element with the scrollbar a negative margin of 17px (the width of my scrollbar). &nbsp;The scrollbar disappeared since it went outside the region of the containing element (which had <span style="font-family: 'courier new', courier;">overflow: hidden;</span>). &nbsp;As an added bonus, when I highlighted text in Webkit and dragged to the left, the scrollbar didn't scroll into view! &nbsp;Unfortunately, this solution required me to know exactly how wide the scrollbar was. &nbsp;I was looking for a solution that didn't require me to hardcode the width of the scrollbar.</p>
<p>&nbsp;</p>
<p>Then, I found that I could set <span style="font-family: 'courier new', courier;">position: absolute;</span> and<span style="font-family: 'courier new', courier;"> right: 0;</span> and it would move the scrollbar out of view without having to know the width. &nbsp;That solution worked well in all browsers but IE. &nbsp;For some reason, when the scrollbar gets reversed, IE removes the margin between the text and the scrollbar. &nbsp;What ended up happening was that the left side of the text was getting chopped off. &nbsp;So then I added a Webkit-specific rule to reverse the scrollbars only when the user was using a Webkit browser. &nbsp;This solution worked in all browsers and can be seen <a title="here" href="https://jsfiddle.net/E78q3/" target="_blank">here</a>.</p>
<p>&nbsp;</p>
<p>But then I got to thinking... wait a minute, why not just hide the scrollbar for Webkit browsers and use the <span style="font-family: 'courier new', courier;">overflow: hidden;</span> solution for all other browsers? &nbsp;But of course! &nbsp;How simple! &nbsp; I did make some changes to the original <span style="font-family: 'courier new', courier;">overflow: hidden;</span> solution, however. &nbsp;I set the desired width on both the element that contains the text and the outermost container. &nbsp;Then I set <span style="font-family: 'courier new', courier;">position: absolute;</span> and<span style="font-family: 'courier new', courier;"> left: 0;</span> on the text element so that the scrollbar would be out of view. &nbsp;This approach doesn't need to know the width of the scrollbar ahead of time in order to work. &nbsp;That solution works for all browsers too, and can be seen&nbsp;<a title="here" href="https://jsfiddle.net/2Kwsc/">here</a>.</p>
<p>&nbsp;</p>
<p>And here is the full code:</p>
<p><strong>HTML</strong></p>
<pre class="scroll"><code class="html">&lt;div class="outer-container"&gt;<br /> &lt;div class="inner-container"&gt;<br /> &lt;div class="element"&gt;<br /> Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br /> Integer vehicula quam nibh, eu tristique tellus dignissim<br /> quis. Integer condimentum ultrices elit ut mattis.<br /> Praesent rhoncus tortor metus, nec pellentesque enim<br /> mattis nec. Nulla vitae turpis ut dui consectetur<br /> pellentesque quis vel est. Curabitur rutrum, mauris ut<br /> mollis lobortis, sem est congue lectus, ut sodales nunc<br /> leo a libero. Cras quis sapien in mi fringilla tempus<br /> condimentum quis velit. Aliquam id aliquam arcu. Morbi<br /> tristique aliquam rutrum. Duis tincidunt, orci suscipit<br /> cursus molestie, purus nisi pharetra dui, tempor<br /> dignissim felis turpis in mi. Vivamus ullamcorper arcu<br /> sit amet mauris egestas egestas. Vestibulum turpis neque,<br /> condimentum a tincidunt quis, molestie vel justo. Sed<br /> molestie nunc dapibus arcu feugiat, ut sollicitudin metus<br /> sagittis. Aliquam a volutpat sem. Quisque id magna<br /> ultrices, lobortis dui eget, pretium libero. Curabitur<br /> aliquam in ante eu ultricies.<br /> <br /> Quisque vitae tincidunt purus. Vivamus feugiat bibendum<br /> erat, nec interdum urna porta sed. Nunc lobortis neque<br /> orci, ut suscipit nisl congue feugiat. Vivamus feugiat<br /> tellus quis cursus sollicitudin. Curabitur dolor massa,<br /> dictum ut ipsum in, porttitor pellentesque ante. Aenean<br /> egestas cursus tempor. Maecenas semper tortor sit amet<br /> egestas cursus. Mauris porttitor quis nisi ut tincidunt.<br /> Curabitur adipiscing eleifend nibh. Praesent mauris leo,<br /> consequat vitae orci eget, vestibulum bibendum nisi.<br /> Aliquam tempus diam ut tortor cursus, eget sodales augue<br /> adipiscing. Nulla at dignissim libero.<br /> &lt;/div&gt;<br /> &lt;/div&gt;<br /> &lt;/div&gt;</code></pre>
<p>&nbsp;</p>
<p><strong>CSS</strong></p>
<pre class="scroll"><code class="css">.element, .outer-container {<br /> width: 200px;<br /> height: 200px;<br />}<br /> <br />.outer-container {<br /> border: 5px solid purple;<br /> position: relative;<br /> overflow: hidden;<br />}<br /> <br />.inner-container {<br /> position: absolute;<br /> left: 0;<br /> overflow-x: hidden;<br /> overflow-y: scroll;<br />}<br /> <br />.inner-container::-webkit-scrollbar {<br /> display: none;<br />}<br /> </code></pre>
<p>&nbsp;</p>
<p>I hope this helps someone! &nbsp;Enjoy :)</p>]]></content:encoded>
    </item>
    <item>
      <title>JsonRequestBehavior.AllowGet Not Working?</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/jsonrequestbehavior-allowget-not-working</link>
      <pubDate>Thu, 17 Jan 2013 12:13:54 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2013/01/17/jsonrequestbehavior-allowget-not-working/</guid>
      <description><![CDATA[Today, I got the following error:
This request has been blocked because sensitive information could...]]></description>
      <content:encoded><![CDATA[<p>Today, I got the following error:</p>
<p><em>This request has been blocked because sensitive information could be disclosed to third party web sites when this is used in a GET request. To allow GET requests, set JsonRequestBehavior to AllowGet.</em></p>
<p>When I looked in my controller, I found:</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">return Json(response, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">JsonRequestBehavior</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.AllowGet);</span></span></p>
<p>That's strange...</p>
<p>A quick run of the debugger revealed the issue: an exception was being thrown!&nbsp; So, if JsonRequestBehavior.AllowGet seems to not be working, first check to make sure your code isn't throwing an exception!</p>
<p>&nbsp;</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Detecting if the User has Set Your Website as His or Her Homepage (IE-only)</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/detecting-if-the-user-has-set-your-website-as-his-or-her-homepage-ie-only</link>
      <pubDate>Tue, 15 Jan 2013 07:47:14 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2013/01/15/detecting-if-the-user-has-set-your-website-as-his-or-her-homepage-ie-only/</guid>
      <description><![CDATA[I learned today that Internet Explorer has an API for detecting whether the user has set your...]]></description>
      <content:encoded><![CDATA[<p>I learned today that Internet Explorer has an API for detecting whether the user has set your website as his or her homepage.&nbsp; More details are available here:</p>
<p><a href="https://msdn.microsoft.com/de-de/library/ms531418%28v=vs.85%29.aspx">https://msdn.microsoft.com/de-de/library/ms531418%28v=vs.85%29.aspx</a></p>
<p><a href="https://samples.msdn.microsoft.com/workshop/samples/author/behaviors/homepage1.htm">https://samples.msdn.microsoft.com/workshop/samples/author/behaviors/homepage1.htm</a></p>
<p>&nbsp;</p>
<p>I made a quick Fiddle to demonstrate:</p>
<p><a href="https://jsfiddle.net/GY5Ha/">https://jsfiddle.net/GY5Ha/</a></p>
<p>&nbsp;</p>
<p>Worth noting is that the isHomepage method will always return false if the document that is calling the isHomepage method is not on the same domain.&nbsp; So my Fiddle will always alert false.</p>]]></content:encoded>
    </item>
    <item>
      <title>Distinguishing between min-height and height in CSS</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/distinguishing-between-min-height-and-height-in-css</link>
      <pubDate>Thu, 13 Dec 2012 06:36:02 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2012/12/13/distinguishing-between-min-height-and-height-in-css/</guid>
      <description><![CDATA[Suppose we set the height of the body of a page to be 100%.&nbsp; Then what happens is that the...]]></description>
      <content:encoded><![CDATA[<p>Suppose we set the height of the body of a page to be 100%.&nbsp; Then what happens is that the body's height takes up 100% of the viewable area.&nbsp; If the content is taller than 100% of the screen (i.e., a scrollbar is needed), then body tag will not extend to that height.&nbsp; So how do we get around this limitation?&nbsp; We set min-height instead of height.&nbsp; min-height sets the height of the page to be 100% of the viewable area when the content is smaller than the screen height.&nbsp; If the content is bigger then the screen height, then its actual height is used.</p>]]></content:encoded>
    </item>
    <item>
      <title>Expanding a Column to Fill the Remaining Horizontal Space</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/expanding-a-column-to-fill-the-remaining-horizontal-space</link>
      <pubDate>Tue, 18 Sep 2012 09:08:00 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2012/09/18/expanding-a-column-to-fill-the-remaining-horizontal-space/</guid>
      <description><![CDATA[When you have two columns on a page, there is a pretty simple (though non-obvious) way to make the...]]></description>
      <content:encoded><![CDATA[<p>When you have two columns on a page, there is a pretty simple (though non-obvious) way to make the second column fill up the remaining width of the parent.&nbsp; First, you must float the first column to the left and set its width.&nbsp; Then, instead of floating or setting a width on the second column, change its overflow to anything but visible (e.g.,&nbsp;auto or hidden).</p>
<p>Also worth noting is that you have to trigger hasLayout for IE6 and IE7.&nbsp; Adding zoom: 1 to the right column will do the trick.</p>
<p>Essentially, changing the overflow puts the right column in its own "block formatting context."&nbsp; A block formatting context doesn't allow sibling or ancestor floats to intrude on it and doesn't allow sibling floats to escape it.&nbsp; The right column will belong to its own block that fills the rest of that remaining space.</p>]]></content:encoded>
    </item>
    <item>
      <title>Making An Element Fill 100% Height In Pure CSS</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/making-an-element-fill-100-height-in-pure-css</link>
      <pubDate>Wed, 12 Sep 2012 14:47:00 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2012/09/12/making-an-element-fill-100-height-in-pure-css/</guid>
      <description><![CDATA[A common problem that web developers have is trying to make an element span 100% of its parent...]]></description>
      <content:encoded><![CDATA[<p>A common problem that web developers have is trying to make an element span 100% of its parent container's height.&nbsp; Most solutions to this problem involve JavaScript that is bound to resize events, load events, etc.&nbsp; I am writing this blog post to tell you that there is a better way!&nbsp; This new method works in most modern browsers, all the way down to IE7.&nbsp; The basic idea is that you absolutely position the element and then simultaneously set its top and bottom positions to 0.&nbsp; By relatively positioning the element's parent, you can limit the element's reach&nbsp;to the boundaries of its parent.</p>
<p>&nbsp;</p>
<p>Here's a <a title="Fiddle" href="https://jsfiddle.net/7t4RT/">Fiddle</a>&nbsp;of the trick.</p>]]></content:encoded>
    </item>
    <item>
      <title>Awesome PNG Compression Tool</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/awesome-png-compression-tool</link>
      <pubDate>Tue, 28 Aug 2012 07:06:11 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2012/08/28/awesome-png-compression-tool/</guid>
      <description><![CDATA[Compressing images can save a lot of valuable bandwidth.&nbsp; One tool I really like for...]]></description>
      <content:encoded><![CDATA[<p>Compressing images can save a lot of valuable bandwidth.&nbsp; One tool I really like for compressing images is <a title="PNGGauntlet" href="https://www.pnggauntlet.com/">PNGGauntlet</a>.&nbsp; Give it a try!</p>]]></content:encoded>
    </item>
    <item>
      <title>Opening the Internet Explorer Developer Tools Dialog on Modal Windows</title>
      <link>https://docs.microsoft.com/archive/blogs/kurlak/opening-the-internet-explorer-developer-tools-dialog-on-modal-windows</link>
      <pubDate>Mon, 27 Aug 2012 08:48:00 GMT</pubDate>
      <dc:creator><![CDATA[John Kurlak]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/kurlak/2012/08/27/opening-the-internet-explorer-developer-tools-dialog-on-modal-windows/</guid>
      <description><![CDATA[As you may have noticed, Internet Explorer's Developer Tools window (press F12 to get there) cannot...]]></description>
      <content:encoded><![CDATA[<p>As you may have noticed, Internet Explorer's Developer Tools window (press F12 to get there) cannot be opened for modal windows.&nbsp; Here's a quick workaround:</p>
<ol>
<li>Open Internet Explorer</li>
<li>Click the "Tools" gear (Alt+X)</li>
<li>Select "Internet options"</li>
<li>Select the "Security" tab</li>
<li>Click the "Custom level..." button</li>
<li>Disable the "Allow websites to open windows without address or status bars" option</li>
<li>Hit OK</li>
<li>Hit OK</li>
<li>Now find a modal window and press F12</li>
</ol>]]></content:encoded>
    </item>
  </channel>
</rss>