You would need to unhide it for the all the possible queries that might return a list of posts and/or pages. And that includes all type of archives (yearly, monthly, daily, hourly), authors list of posts or pages, search result, categories, taxonomies, custom post type lists, tag archives and I’m sure I’m missing some.
You would need to add a selector for each of those body[class=””] selector s and, after you finish the list, add all of them {display: inline-block;}
Something like…
.archive .post .entry-title, .archive .page .entry-title,
.search .post .entry-title, .search .page .entry-title,
.category .post .entry-title, .category .page .entry-title,
.taxonomy .post .entry-title, .taxonomy .page .entry-title,
.author .post .entry-title, .author .page .entry-title
/* you might continue this selectors list for quite a bit and than... */
{display: inline-block;}
Well, I guess I don’t have to tell you that in an environment as flexible as WP that’s more than counter-productive. Much more.
Instead, the right approach is to find a more particular selector for the instances where you want to hide the titles. I understand you want to hide the titles only on single pages and on single posts. If that is correct, you need body.single-post and body.page selectors before your .entry-title. More than that, a good practice to add the id of a structural element of the page, usually a content container/wrapper in the selector. This gives the rule precedence over class-based selectors, no matter how precise they would be. #main-wrapper is perfect for that job. So the final solution would look like this:
body.single-post #main-wrapper h1.entry-title,
body.page #main-wrapper h1.entry-title {display: none;}
The solution above will even allow you to display custom lists of posts or pages (search results, categories, etc) inside single pages or single posts, through the use of plugins or functions) as long as their output doesn’t make the .entry-title a h1 (usually the lists are either a’s or li’s…)
Hope I haven’t been too technical.