What is CSS?
The beginning of the WEB was mostly an academic concept to share academic writings among themselves. As we can guess, the scientists were not worried about the look and shape of their paper, as long as they can read the paper on the screen.
HTML was never intended to contain tags for formatting a web page. It was created to describe the content of a web page,
On the other hand, as Internet and HTML grew, people began to create more colorful and artistic web pages including many styles.
When tags like <font>, and color attributes were added to the HTML around mid 90’s, it started a nightmare for web developers. Development of large websites, where fonts and color information were added to every single page, became a long and expensive process.
To solve this problem, the World Wide Web Consortium (W3C) created CSS. CSS stands for Cascading Style Sheets and it is the language we use to style a Web page.
Cascading style sheets (CSS) set the presentation of HTML pages. CSS sits on top of the HTML code, like a template, and defines the design for each element on the page: Font, font color, background — web designers can set all of these design elements with CSS.
Additionally.
- It describes how HTML elements are to be displayed on screen, paper, or in other media
- It saves a lot of work. It can control the layout of multiple web pages all at once
- Most of the time HTML and CSS codes are separated, because External stylesheets are stored in CSS files.
With all its good and helpful sides, there are some developers critical about CSS. Some finds it confusing on the following issues:
- global scope,
- specificity and limited inheritance,
- the box model (much better with flexbox and CSS grid),
- margins/paddings (got better with box-sizing: border-box;),
- lack of debug tools ( getting better with browser dev tools)
These troublesome areas led discussions towards offering the idea of applying styles to elements through JavaScript as dynamic inline elements. There were suggestions on replacing style.css files with style.js ones. Although those discussions not over yet, for the foreseeable future, full stack developers will need to learn and understand the CSS.
So can you avoid CSS? Basically no. If you want to web development, you’ll eventually need to get your hands dirty and learn some CSS. It’s a safe bet that you’ll need CSS skills to excel as a front-end developer, and once get skills on CSS you will be a preferable full-stack developer at most companies.