CSS priority messed up
<p>For proper CSS priority setting, I searched around a bit and found nothing similar of sort. I vaguely remember someone posting about CSS priority in the comments,a long time ago, but I do not recall at all. Hence, I'm asking this question - for one part, to get my answer - and to archive this answer for future reference for others(also inclusive of myself incase this happens again).</p>

<h2>Here's my snippet:</h2>

<p><div class="snippet" data-lang="js" data-hide="true">
<div class="snippet-code snippet-currently-hidden">
<pre class="snippet-code-css lang-css prettyprint-override"><code>.ContainerTitle {
  background: #fff;
  float: left;
  padding: 15px;
  padding-left: 15px;
  border: solid 1px #000;
  font-size: Large;
  color: #000;
  text-align: left;
  cursor: pointer;
  transition: all .1s ease-out;
}
.DownloadThis,
.ViewThis {
  display: inline-block;
  padding: 20px;
  padding-bottom: 10px;
  border: solid 1px #fff;
  width: 40px;
}
/*PROBLEM BELOW HERE HELP!!! */

.showHint {
  margin-top: 20px;
  background: #f1f1f1;
}
.ViewThis:hover .showHint:after {
  content: '*Hint: View Online';
}
.DownloadThis:hover .showHint:after {
  content: '*Hint: Download';
}
/*PROBLEM ABOVE HERE HELP!!! */

.DownloadThis {
  background: #1D9C73;
  color: #fff;
}
.ViewThis {
  background: #7D529E;
  color: #fff;
}
.DownloadThis:hover,
.ViewThis:hover {
  border: solid 1px #000;
  background: #fff;
}
.DownloadThis:hover {
  color: #1D9C73;
}
.ViewThis:hover {
  color: #7D529E;
}
.ContainerTitle:before,
.DownloadThis:before,
.ViewThis:before {
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  padding-left: 6px;
  padding-right: 8px;
  font-size: 32px;
}
.ContainerTitle:before {
  content: '\f0f6';
  font-size: 24px;
}
.DownloadThis:before {
  content: '\f019';
}
.ViewThis:before {
  content: '\f06e';
}</code></pre>
<pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" /&gt;
&lt;div class="ContainerTitle"&gt;SYLLABUS:
  &lt;div class="DownloadThis"&gt;&lt;/div&gt;
  &lt;div class="ViewThis"&gt;&lt;/div&gt;
  &lt;div class="showHint"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="ContainerTitle"&gt;NOTE:
  &lt;div class="DownloadThis"&gt;&lt;/div&gt;
  &lt;div class="ViewThis"&gt;&lt;/div&gt;
  &lt;p class="showHint"&gt;&lt;/p&gt;
&lt;/div&gt;</code></pre>
</div>
</div>
</p>

<p>I want to show Hint with the help of showHint class when I hover over the desired classes with this code</p>

<pre><code>.ViewThis:hover .showHint:after{content:'*Hint: View Online';}
.DownloadThis:hover .showHint:after{content:'*Hint: Download';}
</code></pre>

<p>but, for some reason, it is <strong>not working!</strong></p>

<blockquote>
  <p>I assume it is because I messed up the priority in CSS setting. </p>
</blockquote>

<hr>

<hr>

<p>I want it to achieve an effect similar to this(but while hovering over <strong>.DownloadThis</strong> and <strong>.ViewThis .</strong> <em>If a <strong>different generic message</strong> appears when I hover over <strong>.ContainerTitle</strong> that'd be awesome too!</em>):
<div class="snippet" data-lang="js" data-hide="true">
<div class="snippet-code snippet-currently-hidden">
<pre class="snippet-code-css lang-css prettyprint-override"><code>.ContainerTitle {
  background: #fff;
  float: left;
  padding: 15px;
  padding-left: 15px;
  border: solid 1px #000;
  font-size: Large;
  color: #000;
  text-align: left;
  cursor: pointer;
  transition: all .1s ease-out;
}
.DownloadThis,
.ViewThis {
  display: inline-block;
  padding: 20px;
  padding-bottom: 10px;
  border: solid 1px #fff;
  width: 40px;
}
.showHint {
  margin-top: 20px;
  background: #f1f1f1;
}
.ContainerTitle:hover .showHint:after {
  content: '*Hint: I want to display text like this!';
}
.DownloadThis {
  background: #1D9C73;
  color: #fff;
}
.ViewThis {
  background: #7D529E;
  color: #fff;
}
.DownloadThis:hover,
.ViewThis:hover {
  border: solid 1px #000;
  background: #fff;
}
.DownloadThis:hover {
  color: #1D9C73;
}
.ViewThis:hover {
  color: #7D529E;
}
.ContainerTitle:before,
.DownloadThis:before,
.ViewThis:before {
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  padding-left: 6px;
  padding-right: 8px;
  font-size: 32px;
}
.ContainerTitle:before {
  content: '\f0f6';
  font-size: 24px;
}
.DownloadThis:before {
  content: '\f019';
}
.ViewThis:before {
  content: '\f06e';
}</code></pre>
<pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" /&gt;
&lt;div class="ContainerTitle"&gt;SYLLABUS:
  &lt;div class="DownloadThis"&gt;&lt;/div&gt;
  &lt;div class="ViewThis"&gt;&lt;/div&gt;
  &lt;div class="showHint"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="ContainerTitle"&gt;NOTE:
  &lt;div class="DownloadThis"&gt;&lt;/div&gt;
  &lt;div class="ViewThis"&gt;&lt;/div&gt;
  &lt;p class="showHint"&gt;&lt;/p&gt;
&lt;/div&gt;</code></pre>
</div>
</div>
</p>

<blockquote>
  <p><strong>Also, I would like to know why the hover on .ContainerTitle would work while it fails to work on .DownloadThis and .ViewThis ?</strong><br/><br/>
  Is the answer related to the fact that both .DownloadThis and .ViewThis are chid of .ContainerTitle? If so how does this type of relation affect containers? I request this information so that I will not repeat the same mistake in the future.</p>
</blockquote>