change html and css in template files in child theme

Yes, you can technically use your own HTML structure and get rid of all the IDs and selectors you don’t like. However, this is not how you build child themes. Child themes are meant to keep most of the underlying HTML structure of a theme – you can tweak it in some places, but if you’re completely overriding the parent theme, there’s no benefit at all in making a child theme and you should instead build a custom from-scratch theme.

You may wish to look for themes built specifically for extension, such as Underscores, where they include minimal markup and are basically blank canvases for you to style and tweak. Usually, you actually copy the code into a new custom theme rather than child-theming with this approach.

However, depending on your needs and coding expertise, you may realize more benefits from finding a parent theme that meets most of your needs and tweaking it in a child theme. “IDs and selectors you don’t like” typically don’t carry much bloat/weight in the scheme of things and it’s usually fairly easy to style as desired. It’s often more important to ensure the theme you select meets your needs as far as functionality and semantics – for example, does the theme use semantic HTML5 that will be accessible to all your users? Some extra IDs and classes are trivial compared to making sure the tags themselves are what you need for your purposes.