Answer to the 2nd part of your question..
"Why HTML is neither a programming language nor a scripting language?"
HTML is a markup language.
It encapsulates data within tags for the browser to read and interpret web page content.
It just defines the purpose of the data on the webpage.
It however does not have any of the below properties of a programming language(to name a few)..
* It has no programming/functional logic
* It does not understand any conditional statements.
* It cannot evaluate expressions and do computation (like for eg: the sum of 2 numbers)
To summarize,
HTML => defines structure of the web page
CSS => defines the style
Javascript => provides scripting support on the web page