When I set <b></b> it will not work bold text.
Good: That means your CSS is doing what it's supposed to:
html, body, strong, b {
font-family: inherit;
font-style: inherit;
}
(Saying both "html" and "body" seems overkill, since how often do you have html outside the body?)
But why would you want to do this? The effect is to obliterate bold all the time, everywhere, unless you attach
{font-weight: bold;}
to some specific element
and don't use a supplementary <b> tag (which would normally come inside any other element). Are you protecting against someone else coming along and absent-mindedly sticking in a <b>?
By default, all header <h1-6> elements are bold, left-aligned-- and probably much smaller than you want.
It's true that sometimes you'll use CSS to make things do the opposite of the default. In ebooks I often have this package:
.ital {font-weight: italic;}
em {font-weight: normal;}
but using it with bold seems odd.