February 16, 2021

Top 20 CSS (Cascading Style Sheets ) Interview Questions & Answers


Ques. 1): What is CSS?

Answer: CSS stands for Cascading Stylesheet. Cascading Style Sheets (CSS) is a simple mechanism for adding style (e.g., fonts, colors, spacing) to HTML documents or web pages. CSS handles the look and feel part of a web page. Using CSS, you can control the color of the text, the style of fonts, the spacing between paragraphs, how columns are sized and laid out, what background images or colors are used, layout designs, variations in display for different devices and screen sizes as well as a variety of other effects.


Ques. 2): What are the different types of CSS?

Answer: Below are the different types of CSS –

      Embedded – Adding the CSS styles in <style> attribute.

      Inline – Adding the CSS to the HTML elements.

      Linked/External – Adding the External CSS file to the HTML document.


Ques. 3): Explain the differences between CSS and CSS3.

Answer: Just like HTML5 is the latest standard rolled out for HTML, similarly, CSS3 is the latest standard rolled out for CSS3 that carries many advanced features and it was under development since 2005. It’s backwards-compatible with older versions of CSS, and has new properties that debug previous quirks and extend CSS2 features, and it’s even got some JavaScript-like capabilities.

CSS3 has also addressed a number of mobile development concerns, accounting for responsive design and making up for issues caused by Adobe Flash incompatibility on mobile devices. In combination with JavaScript, CSS3 has a lot of the functionality of Flash now–animation- and interactivity-wise. Some of these are listed below.

1.       Mobile-first mentality

2.       Modular code

3.       Support for web fonts

4.       Faster development and load times

5.       New Color and Images Effects

6.       Bug fixes and improvements


Ques. 4): How is a CSS file included or referred to in an HTML document?

Answer: An HTML document can include an external stylesheet using the <link> tag. Here is an example,

<link rel="stylesheet" type="text/css" href="theme.css">

In the above snippet, the rel attribute specifies the relation between the HTML document and the file linked. Here the value stylesheet means that the refered file is a stylesheet for the HTML document. The type attribute also does the same thing. Finally, the href attribute defines the path to the actual file on the server. Here the filename is theme.css and the path is relative to the current HTML document.


Ques. 5): What are CSS custom properties?

Answer: CSS variables or custom properties are entities defined by CSS authors that contain specific values to be reused throughout a document. They are set using custom property notation. For example,

--main-color: black;

And are accessed using the var() function. For example,

color: var(--main-color);

You can use them without the need of a preprocessor. They cascade. You can set a variable inside any selector to set or override its current value. When their values change (e.g. media query or other state), the browser repaints as needed. You can access and manipulate them in JavaScript.


Ques. 6): What is inline CSS?

Answer: Inline CSS allows us to add CSS styles to only a particular element in the DOM. These CSS styles only affect the element that they are defined on in the HTML document. The term inline comes from the fact that the styles are written directly within the HTML tag using the style attribute.

Using the style attribute overrides the styles applied by all other CSS files on the same element. Inline CSS styles take precedence over all other styles at the cost of making the HTML document difficult to read and harder to maintain. An example of inline CSS is

<h1 style="color:blue; margin-left:30px;">This is a heading</h1>

In the above example, using the style attribute, some styles are specified on the h1 element but it makes the document dirty. These styles will only affect this h1 element only and all other h1 elements will stay the way they are.


Ques. 7): How does absolute positioning work in CSS?

Answer: In absolute positioning, the element is removed from the normal document flow, and no space is created for the element in the page layout. It is positioned relative to its closest positioned ancestor if any; otherwise, it is placed relative to the initial containing block. Its final position is determined by the values of top, right, bottom, and left.


Ques. 8): List out some of the properties in added in CSS3?

Answer: Below are the some of the properties in CSS3-

        Border Images

        New Web fonts

        Multi Column layout

        Box Shadows

        Text Shadows

        Transform property


Ques. 9): How do you target something inside or around another element?

Answer: To target something that’s next to something else or target something only if it’s inside a particular container, there is a way.

If you’re wanting to style occurrences of a certain class inside another class, you can write the following:

.nav .nav-item { ... }

The above targets any .nav-item inside .nav.

If you only want those that are immediately inside the .nav as opposed to any level deep, you can add the > character, like so:

.nav > .nav-item { ... }

Want to target a button only if it’s next to another button? The + character has got you covered:

.button + .button { ... }


Ques. 10): What is the difference between “display:none” and “visibility:hidden” in CSS?


    “Display:none” – This will just hide the element and does not take any space of the element.

    “visibility:hidden” – This also hides the element and will take space for the element and this will affect the entire layout of the document.


Ques. 11): What is a CSS selector?

Answer: A CSS selector allows us to select the required elements in an HTML document that need to be styled in a certain way. It is also referred to as a connection between the stylesheet and HTML files. There are different types of CSS selectors, however, the simplest ones are element, class and id selectors.


Ques. 12): What would be the difference between “width:auto” and “width:100%” in CSS?

Answer: “width:auto” reaches to the full width and it will subtract borders, paddings, margins etc. from the available space where as “width:100%” will force the element to be as wide as its parent element and will add additional spacing which can cause some problems.


Ques. 13): What are the advantages and disadvantages of using embedded stylesheets?

Answer: The advantages of Embedded Style Sheets are as follows.

    It is possible to generate classes for use on multiple tag types in the document.

    In comparison to In External Style Sheets, no extra download is compulsory to import the information.

    The disadvantages of Embedded Style Sheets are as follows.

    Controlling the styles for multiple files from one file is not possible.


Ques. 14): What is the exclamation (!) symbol used to in CSS?

Answer: The exclamation symbol (!) is generally used to denote a style as important. The styles that are marked as !important override the styles that are not. For example, if there are two CSS classes applied on the same element. Class A add a color red to the text but class B adds a green color. Now, generally, the style that is applied later will persist. But if either of the classes has the !important declaration will never be overridden by other styles.

The !important rule is a way to make your CSS cascade but also have the rules you feel are most crucial always be applied. A rule that has the !important property will always be applied no matter where that rule appears in the CSS document.


Ques. 15): What is an ID selector?

Answer: ID selector is an individually identified (named) selector to which a specific style is declared. Using the ID attribute the declared style can then be associated with one and only one HTML element per document as to differentiate it from all other elements. ID selectors are created by a character # followed by the selector's name. The name can contain characters a-z, A-Z, digits 0-9, period, hyphen, escaped characters, Unicode characters 161-255, as well as any Unicode character as a numeric code, however, they cannot start with a dash or a digit.

#abc123 {

color: red;

background: black



Ques. 16): How are attributes used to style HTML elements in CSS?

Answer: There are a few attributes that apply to all tags, like class and id, but a lot of tags have their own ones. For example, input tags can have a type (text, number, radio, etc) and a tags can have href.

You can target elements with particular attributes by using square brackets: [attribute="value"].

For example, you can target all input fields that are of type radio like so:

input[type="radio"] {

     background-color: #eee;



Ques. 17): What changes would you normally add to your print-stylesheet?

Answer: A print-stylesheet needs to make sure that the document looks clean and is easily readable when the document is printed. This requires some fanciness and beauty-elements to be taken away from the document to make it easier on the eyes when printed. Some most common things we do in a print-stylesheet are listed below.

Remove unwanted items - Usually it's just your organisation logo and page content that you'll want to appear on the printed version of the web page. You'll normally want to remove the header, left column and right column. You may also want to remove the footer (or some of it) from the printed version, unless it contains your contact details. You may also want to remove certain images and adverts, especially animated images as these won't make sense when printed.

Format the page - There's nothing worse than printing off a web page to find the last few words of each line cut off. It's also annoying (and a waste of paper) when the left and right columns are left in, leaving a very narrow space for the content so the web page prints on to 15 pieces of paper.

Generally speaking, the three CSS commands you'll need are: width: 100%; margin: 0; float: none;

These commands should be applied to any containing elements (<div>s for a CSS layout and <table>s for table layouts) to ensure the content spans the full width of the paper.

Change the font - It is personal preference, but some print stylesheets do change the font size (often to 12pt) but this isn't generally a very good idea. If users increase text size on the screen then the text will print in this larger font size... unless you specify a fixed font size in the print stylesheet.

Links - Print-outs are often in black and white so do make sure that links have a decent colour contrast. If not, assign links a slightly darker colour in the printout.


Ques. 18): Explain the term “pseudo-class” in reference to CSS3.

Answer: Pseudo classes are bolted on to selectors to specify a state or relation to the selector. They take the form of selector:pseudo_class { property: value; }, simply with a colon in between the selector and the pseudo class. Some of the pseudo classes are link, visited, hover, active, focus etc.


Ques. 19): What are web safe fonts and fallback fonts?

Answer: Not all operating systems and browsers have the same fonts installed. Web safe fonts are fonts that are commonly pre-installed on many computer systems, such as Arial and Times New Roman. In case the browser or operating system doesn’t recognize the first font you set (e.g. Ubuntu), you should choose a web safe fallback font to display (e.g. Arial), followed by a generic font family (e.g. sans-serif).

If your fallback font doesn’t display either, the browser can pick a generic font in the sans-serif family.


Ques. 20): What are pseudo classes and what are they used for?

Answer: Pseudo classes are similar to pseudo elements, but instead of styling a part of an element, they apply styles when an element is in a certain state. For example, you could style a button differently based on whether the user has their mouse pointer over it, or when they click the button.

Another common use case is to style only certain occurrences of elements in a row. For example, styling the first tab in a series of tabs, or every second tab.

They all start with a single colon and look like this:

.link:hover { ... }

.link:active { ... }

.tab:first-child { ... }

.tab:last-child { ... }

.avatar:nth-child(2n) { ... }




No comments:

Post a Comment