<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abimanyu P</title>
    <description>The latest articles on DEV Community by Abimanyu P (@abimanyu_p_9e75124634d2a4).</description>
    <link>https://dev.to/abimanyu_p_9e75124634d2a4</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4023005%2F38a6ca5d-5dfa-4f27-be2c-c310ab542392.png</url>
      <title>DEV Community: Abimanyu P</title>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abimanyu_p_9e75124634d2a4"/>
    <language>en</language>
    <item>
      <title>HTML, CSS and Bootstrap Interview Questions</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Thu, 20 Aug 2026 02:49:45 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/html-css-and-bootstrap-interview-questions-57ed</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/html-css-and-bootstrap-interview-questions-57ed</guid>
      <description>&lt;h2&gt;
  
  
  HTML Interview Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What is HTML?
&lt;/h3&gt;

&lt;p&gt;HTML stands for HyperText Markup Language. It is used to create the structure of a webpage. We use HTML to create headings, paragraphs, images, links, buttons, forms, tables and other elements.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What are semantic tags?
&lt;/h3&gt;

&lt;p&gt;Semantic tags tell us what the content is about. Some examples are &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For example, instead of using a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; for navigation, we can use &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;. It makes the code easier to understand and also helps accessibility and SEO.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. What is the difference between div and span?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;div&lt;/code&gt; is normally a block-level element and &lt;code&gt;span&lt;/code&gt; is normally an inline element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;This is a div&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;span&amp;gt;&lt;/span&gt;This is a span&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A div normally starts from a new line, while a span stays in the same line. But we can change their behavior using CSS.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. What is the difference between id and class?
&lt;/h3&gt;

&lt;p&gt;An &lt;code&gt;id&lt;/code&gt; is normally used for one unique element, while a &lt;code&gt;class&lt;/code&gt; can be used for multiple elements.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"header"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"card"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"card"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We use &lt;code&gt;#&lt;/code&gt; to select an id and &lt;code&gt;.&lt;/code&gt; to select a class in CSS.&lt;/p&gt;

&lt;h2&gt;
  
  
  CSS Interview Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5. What is the CSS Box Model?
&lt;/h3&gt;

&lt;p&gt;The CSS box model explains how the size of an HTML element is calculated.&lt;/p&gt;

&lt;p&gt;It contains:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content → Padding → Border → Margin&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Understanding the box model is very important because it helps us understand why an element is taking more or less space than expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. What is CSS specificity?
&lt;/h3&gt;

&lt;p&gt;Sometimes multiple CSS rules are applied to the same element. Specificity decides which rule gets higher priority.&lt;/p&gt;

&lt;p&gt;A simple order to remember is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inline style &amp;gt; ID &amp;gt; Class &amp;gt; Element&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.text&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a paragraph has the &lt;code&gt;text&lt;/code&gt; class, the class selector normally has higher specificity than the element selector.&lt;/p&gt;

&lt;p&gt;This becomes especially important when we work with Bootstrap and try to override its styles.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. What is Flexbox?
&lt;/h3&gt;

&lt;p&gt;Flexbox is a CSS layout system used to arrange elements in a row or column.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some important Flexbox properties are:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;justify-content&lt;/span&gt;
&lt;span class="nt"&gt;align-items&lt;/span&gt;
&lt;span class="nt"&gt;flex-direction&lt;/span&gt;
&lt;span class="nt"&gt;flex-wrap&lt;/span&gt;
&lt;span class="nt"&gt;gap&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Flexbox is very useful for creating navigation bars, cards, buttons and for centering elements.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. What is the difference between justify-content and align-items?
&lt;/h3&gt;

&lt;p&gt;This is one of the questions that can easily confuse beginners.&lt;/p&gt;

&lt;p&gt;In the default &lt;code&gt;flex-direction: row&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;justify-content&lt;/code&gt; works on the main axis, which is normally horizontal.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;align-items&lt;/code&gt; works on the cross axis, which is normally vertical.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can be used to center an element horizontally and vertically.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. What is flex-wrap?
&lt;/h3&gt;

&lt;p&gt;Normally, flex items try to stay in one line. If we want the items to move to the next line when there is not enough space, we use &lt;code&gt;flex-wrap&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;flex-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;wrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is very useful when creating responsive card layouts.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. What is the difference between relative and absolute positioning?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;position: relative&lt;/code&gt; keeps the element in the normal document flow and can also create a positioning reference for its descendants.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;position: absolute&lt;/code&gt; removes the element from the normal document flow and positions it relative to the nearest positioned ancestor.&lt;/p&gt;

&lt;p&gt;A common example is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.parent&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.child&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, the child is positioned relative to the parent.&lt;/p&gt;

&lt;h3&gt;
  
  
  11. What are media queries?
&lt;/h3&gt;

&lt;p&gt;Media queries allow us to apply different CSS styles depending on conditions such as screen width.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@media&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;768px&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is one of the main techniques used to make websites responsive.&lt;/p&gt;

&lt;h3&gt;
  
  
  12. What is responsive web design?
&lt;/h3&gt;

&lt;p&gt;Responsive web design means making a website work properly on different screen sizes like mobile, tablet and desktop.&lt;/p&gt;

&lt;p&gt;We can use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexbox&lt;/li&gt;
&lt;li&gt;CSS Grid&lt;/li&gt;
&lt;li&gt;Media queries&lt;/li&gt;
&lt;li&gt;Relative units&lt;/li&gt;
&lt;li&gt;Responsive images&lt;/li&gt;
&lt;li&gt;Bootstrap's responsive grid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main goal is that the website should adapt instead of creating a completely separate website for every device.&lt;/p&gt;

&lt;h3&gt;
  
  
  13. What is the difference between %, vw, em and rem?
&lt;/h3&gt;

&lt;p&gt;These are different relative CSS units.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;%&lt;/code&gt; is usually relative to another size such as the parent's size.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;vw&lt;/code&gt; means viewport width.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;em&lt;/code&gt; is relative to the font size of the relevant element or context.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rem&lt;/code&gt; is relative to the root HTML element's font size.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We should choose the unit based on what we are trying to achieve instead of using one unit everywhere.&lt;/p&gt;

&lt;h3&gt;
  
  
  14. What is the difference between display: none, visibility: hidden and opacity: 0?
&lt;/h3&gt;

&lt;p&gt;These three can make an element invisible, but they behave differently.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;display: none&lt;/code&gt; removes the element from the layout.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;visibility: hidden&lt;/code&gt; hides the element but its space is still reserved.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;opacity: 0&lt;/code&gt; makes the element completely transparent, but the element normally remains in the layout and can still interact with the user depending on other CSS.&lt;/p&gt;

&lt;p&gt;This is a very common practical interview question.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bootstrap Interview Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  15. What is Bootstrap?
&lt;/h3&gt;

&lt;p&gt;Bootstrap is a frontend framework that provides ready-made CSS classes and components.&lt;/p&gt;

&lt;p&gt;For example, instead of writing all the CSS for a button ourselves, we can use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn btn-primary"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    Click Me
&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bootstrap helps us build websites faster, especially when creating responsive layouts.&lt;/p&gt;

&lt;h3&gt;
  
  
  16. What is the Bootstrap grid system?
&lt;/h3&gt;

&lt;p&gt;Bootstrap uses a &lt;strong&gt;12-column grid system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-6"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;A&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-6"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;B&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, each column takes 6 out of 12 columns, so we get two equal sections.&lt;/p&gt;

&lt;p&gt;If we use &lt;code&gt;col-2&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12 ÷ 2 = 6&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So six &lt;code&gt;col-2&lt;/code&gt; elements can fit into one row when enough space is available.&lt;/p&gt;

&lt;h3&gt;
  
  
  17. What are container, row and col in Bootstrap?
&lt;/h3&gt;

&lt;p&gt;These are commonly used together to create a Bootstrap layout.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-6"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            Content
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-6"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            Content
        &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;container&lt;/code&gt; provides the main layout container.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;row&lt;/code&gt; creates the row.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;col-*&lt;/code&gt; controls how much width each column takes in the 12-column grid.&lt;/p&gt;

&lt;h3&gt;
  
  
  18. What are Bootstrap responsive classes?
&lt;/h3&gt;

&lt;p&gt;Bootstrap provides responsive classes that allow an element to have different widths at different breakpoints.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-12 col-md-6 col-lg-4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can mean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Small screens → 12 columns&lt;/li&gt;
&lt;li&gt;Medium screens → 6 columns&lt;/li&gt;
&lt;li&gt;Large screens → 4 columns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes responsive layouts much easier to create.&lt;/p&gt;

&lt;h3&gt;
  
  
  19. How can we override Bootstrap CSS?
&lt;/h3&gt;

&lt;p&gt;We can write our own CSS after loading Bootstrap.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"bootstrap.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"style.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we can write our custom style in &lt;code&gt;style.css&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.my-button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If there is a conflict, CSS specificity, source order and sometimes &lt;code&gt;!important&lt;/code&gt; can affect which style wins.&lt;/p&gt;

&lt;p&gt;We should not use &lt;code&gt;!important&lt;/code&gt; everywhere because it can make the CSS difficult to manage.&lt;/p&gt;

&lt;h3&gt;
  
  
  20. What is the difference between Bootstrap and CSS?
&lt;/h3&gt;

&lt;p&gt;CSS is the actual styling language used to style webpages.&lt;/p&gt;

&lt;p&gt;Bootstrap is a framework built mainly using CSS, along with JavaScript components.&lt;/p&gt;

&lt;p&gt;With normal CSS, we write our own styles:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Bootstrap, we can use ready-made classes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn btn-primary"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    Click
&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So Bootstrap doesn't replace CSS completely. Understanding CSS is still important even when using Bootstrap.&lt;/p&gt;

</description>
      <category>interview</category>
      <category>html</category>
      <category>css</category>
      <category>bootstrap</category>
    </item>
    <item>
      <title>web page hosting</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Mon, 17 Aug 2026 03:23:26 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/web-page-hosting-28bi</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/web-page-hosting-28bi</guid>
      <description>&lt;h1&gt;
  
  
  How to Host a Website Using GitLab Pages
&lt;/h1&gt;

&lt;p&gt;If you have a website made with HTML and CSS, you can host it for free using &lt;strong&gt;GitLab Pages&lt;/strong&gt;. GitLab Pages takes the files from your GitLab repository and publishes them as a website. For this, you need to create a &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; file. This file tells GitLab how to deploy your website. After pushing the file to your repository, GitLab creates a pipeline. When the pipeline finishes successfully, GitLab Pages gives you a URL which you can open in a browser to see your live website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Pipeline
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;pipeline&lt;/strong&gt; is the process GitLab uses to run the instructions written in &lt;code&gt;.gitlab-ci.yml&lt;/code&gt;. If the pipeline fails, the website will not be deployed correctly. Sometimes the pipeline can fail because of an invalid YAML file, incorrect indentation, &lt;code&gt;unverified account&lt;/code&gt; or a problem in the deployment commands. Another common problem is trying to create a &lt;code&gt;public&lt;/code&gt; folder when the folder already exists. For a simple HTML and CSS website, the important thing is that the &lt;code&gt;public&lt;/code&gt; folder contains your website files and &lt;code&gt;index.html&lt;/code&gt; should be directly inside it.&lt;/p&gt;

&lt;p&gt;For example, the structure should look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public/
├── index.html
├── style.css
└── images/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;index.html&lt;/code&gt; file is important because it is the main page GitLab Pages looks for when someone opens the website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hosting More Than One Website
&lt;/h2&gt;

&lt;p&gt;You can host multiple websites using GitLab Pages, but if the websites are completely different projects, it is better to create a &lt;strong&gt;separate GitLab project for each website&lt;/strong&gt;. For example, you can have one project called &lt;code&gt;youtube-clone&lt;/code&gt; and another project called &lt;code&gt;portfolio&lt;/code&gt;. Each project can have its own HTML, CSS, &lt;code&gt;.gitlab-ci.yml&lt;/code&gt;, pipeline and Pages deployment. This makes the projects easier to manage and prevents one website from affecting another website.&lt;br&gt;
So, GitLab is not only a place to store your code. With GitLab Pages and CI/CD pipelines, you can also use it to turn your HTML and CSS project into a live website that can be accessed through the internet.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>webtesting</category>
      <category>tutorial</category>
      <category>howto</category>
    </item>
    <item>
      <title>JavaScript Variables</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Fri, 14 Aug 2026 03:40:33 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/javascript-variables-2d82</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/javascript-variables-2d82</guid>
      <description>&lt;h1&gt;
  
  
  JavaScript Variables
&lt;/h1&gt;

&lt;p&gt;A variable in JavaScript is a place where we can store some data and use it later in our program. We can store a name, age, number, text, or many other types of data inside a variable. For example, &lt;code&gt;let name = "John";&lt;/code&gt; stores the name John and &lt;code&gt;let age = 20;&lt;/code&gt; stores the number 20. We can then use these values whenever we need them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;John&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;JavaScript has three keywords for creating variables: &lt;strong&gt;&lt;code&gt;let&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;const&lt;/code&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;code&gt;var&lt;/code&gt;&lt;/strong&gt;. They all create variables, but the way they work is different.&lt;/p&gt;

&lt;h2&gt;
  
  
  let, const and var
&lt;/h2&gt;

&lt;h3&gt;
  
  
  let
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;let&lt;/code&gt; is used when we want to create a variable whose value can be changed later. For example, if a person's age is 20 today and becomes 21 later, we can use &lt;code&gt;let&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is allowed because &lt;code&gt;let&lt;/code&gt; variables can be reassigned. But we cannot declare the same &lt;code&gt;let&lt;/code&gt; variable again in the same scope.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Error&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So we can simply remember &lt;strong&gt;&lt;code&gt;let&lt;/code&gt; = the value can be changed&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  const
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;const&lt;/code&gt; is used when we don't want to reassign a variable after creating it. For example, if we create a variable for a value that should not be replaced, we can use &lt;code&gt;const&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;3.14&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;pi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;3.14159&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Error&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A &lt;code&gt;const&lt;/code&gt; variable must also have a value when it is created, so this will give an error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Error&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One thing that can be confusing is arrays and objects. A &lt;code&gt;const&lt;/code&gt; array or object can still have its contents changed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Apple&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Banana&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="nx"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Mango&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This works because we are changing the contents of the array, not assigning a completely new array to the variable. But trying to replace the whole array will give an error.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Orange&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="c1"&gt;// Error&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So we can remember &lt;strong&gt;&lt;code&gt;const&lt;/code&gt; = the variable cannot be reassigned&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  var
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;var&lt;/code&gt; is the older way of creating variables in JavaScript. It can be reassigned just like &lt;code&gt;let&lt;/code&gt;, and it can also be declared again with the same name.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This works without an error. However, this old behavior can sometimes cause unexpected problems, especially in larger programs. Because of this, modern JavaScript normally uses &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt; instead of &lt;code&gt;var&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scope
&lt;/h2&gt;

&lt;p&gt;Another important difference between these three is &lt;strong&gt;scope&lt;/strong&gt;. Scope simply means the area of the program where a variable can be accessed. &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt; are &lt;strong&gt;block scoped&lt;/strong&gt;, which means they only work inside the &lt;code&gt;{ }&lt;/code&gt; block where they were created.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Error&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Error&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But &lt;code&gt;var&lt;/code&gt; does not follow block scope in the same way.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is one of the important reasons why &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt; are safer and easier to work with in modern JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Errors
&lt;/h2&gt;

&lt;p&gt;There are a few common errors that can happen when working with these variables. If we try to declare the same &lt;code&gt;let&lt;/code&gt; or &lt;code&gt;const&lt;/code&gt; variable twice in the same scope, JavaScript gives a &lt;strong&gt;SyntaxError&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// SyntaxError&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we try to use a &lt;code&gt;let&lt;/code&gt; or &lt;code&gt;const&lt;/code&gt; variable before its declaration, we get a &lt;strong&gt;ReferenceError&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// ReferenceError&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This happens because &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt; have a period called the &lt;strong&gt;Temporal Dead Zone&lt;/strong&gt;, where the variable exists but cannot be accessed before its declaration.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;var&lt;/code&gt; behaves differently because of &lt;strong&gt;hoisting&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This does not give a ReferenceError. It prints &lt;code&gt;undefined&lt;/code&gt;. The declaration of &lt;code&gt;var&lt;/code&gt; is hoisted, but its value is assigned only when JavaScript reaches the assignment.&lt;/p&gt;

&lt;p&gt;We can also get a &lt;strong&gt;TypeError&lt;/strong&gt; when we try to reassign a &lt;code&gt;const&lt;/code&gt; variable.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// TypeError&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>variables</category>
    </item>
    <item>
      <title>Java Scripts</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Fri, 14 Aug 2026 02:47:48 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/java-scripts-2k0l</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/java-scripts-2k0l</guid>
      <description>&lt;h1&gt;
  
  
  JavaScript and Its History
&lt;/h1&gt;

&lt;p&gt;JavaScript is a programming language mainly used to make websites interactive and dynamic. HTML is used to create the structure of a webpage and CSS is used to design it, while JavaScript is used to add actions and behavior to the webpage. For example, we can use JavaScript to create buttons that perform an action, validate forms, create animations, change HTML and CSS, and many other things. JavaScript can also be used outside the browser for backend development using Node.js.&lt;/p&gt;

&lt;h2&gt;
  
  
  History of JavaScript
&lt;/h2&gt;

&lt;p&gt;JavaScript was created in 1995 by Brendan Eich while he was working at Netscape. The language was created very quickly and was first called Mocha. Later it was renamed LiveScript and finally JavaScript. Even though the names Java and JavaScript are similar, they are two different programming languages.&lt;/p&gt;

&lt;p&gt;As JavaScript became popular, there was a need for a common standard. This is where &lt;strong&gt;ECMA International&lt;/strong&gt; comes in. ECMA International is an organization that creates technology standards. It created the standard for JavaScript called &lt;strong&gt;ECMAScript&lt;/strong&gt;. JavaScript follows the ECMAScript standard.&lt;/p&gt;

&lt;p&gt;The first ECMAScript standard was released in 1997. Later, many new versions were released. One of the most important versions was &lt;strong&gt;ES6 (ECMAScript 2015)&lt;/strong&gt;, which introduced features like &lt;code&gt;let&lt;/code&gt;, &lt;code&gt;const&lt;/code&gt;, arrow functions, classes, promises, and modules.&lt;/p&gt;

&lt;p&gt;Today JavaScript is not only used for webpages. It is also used for backend development, mobile applications, desktop applications, and many other areas. Because of this, JavaScript has become one of the most important languages in modern web development.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>history</category>
    </item>
    <item>
      <title>CSS Selectors</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Tue, 11 Aug 2026 04:47:58 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/css-selectors-24l1</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/css-selectors-24l1</guid>
      <description>&lt;h2&gt;
  
  
  CSS Selectors
&lt;/h2&gt;

&lt;p&gt;CSS selectors are used to &lt;strong&gt;select HTML elements&lt;/strong&gt; and apply styles to them. We already know basic selectors like &lt;code&gt;class&lt;/code&gt;, &lt;code&gt;id&lt;/code&gt;, and element selectors. But CSS has many more selectors that help us select elements more precisely.&lt;/p&gt;

&lt;p&gt;For example, instead of giving every paragraph the same style, we can select only the paragraph that comes after a heading, or only the input with a particular type.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Child and Sibling Selectors
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Child Selector &lt;code&gt;&amp;gt;&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;&amp;gt;&lt;/code&gt; selector selects only the &lt;strong&gt;direct child&lt;/strong&gt; of an element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Hello&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;section&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;World&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, only &lt;code&gt;Hello&lt;/code&gt; becomes red because it is directly inside the &lt;code&gt;div&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;World&lt;/code&gt; paragraph is not selected because it is inside the &lt;code&gt;section&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Descendant Selector
&lt;/h3&gt;

&lt;p&gt;A space between two selectors means that the second element is somewhere &lt;strong&gt;inside&lt;/strong&gt; the first element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This selects all &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; elements inside the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;, even if there are other elements between them.&lt;/p&gt;

&lt;p&gt;So remember:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt;     &lt;span class="c"&gt;/* p anywhere inside div */&lt;/span&gt;
&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt;   &lt;span class="c"&gt;/* p directly inside div */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Adjacent Sibling &lt;code&gt;+&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;+&lt;/code&gt; selector selects the element that comes &lt;strong&gt;immediately after&lt;/strong&gt; another element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Heading&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Hello&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;World&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only &lt;code&gt;Hello&lt;/code&gt; is selected because it is immediately after the &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  General Sibling &lt;code&gt;~&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;~&lt;/code&gt; selector selects all matching siblings that come after an element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If there are three &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; elements after the &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt;, all three will be selected.&lt;/p&gt;

&lt;p&gt;The difference is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt;   &lt;span class="c"&gt;/* only the next p */&lt;/span&gt;
&lt;span class="nt"&gt;h2&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt;   &lt;span class="c"&gt;/* all p elements after h2 */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2. Attribute Selectors
&lt;/h2&gt;

&lt;p&gt;Attribute selectors are very useful when working with forms, links and images.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;[attribute]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This selects elements that have a particular attribute.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;input&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;required&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only the input with the &lt;code&gt;required&lt;/code&gt; attribute is selected.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;[attribute="value"]&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;We can also select an element based on the value of its attribute.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;input&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;"text"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;lightblue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only the text input is selected.&lt;/p&gt;

&lt;p&gt;There are also some useful variations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;href&lt;/span&gt;&lt;span class="o"&gt;^=&lt;/span&gt;&lt;span class="s1"&gt;"https"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;   &lt;span class="c"&gt;/* href starts with https */&lt;/span&gt;

&lt;span class="nt"&gt;img&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;src&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;".jpg"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;   &lt;span class="c"&gt;/* src ends with .jpg */&lt;/span&gt;

&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;href&lt;/span&gt;&lt;span class="o"&gt;*=&lt;/span&gt;&lt;span class="s1"&gt;"google"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;  &lt;span class="c"&gt;/* href contains google */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These become very useful when working with many elements that have different attributes.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Pseudo-Classes
&lt;/h2&gt;

&lt;p&gt;Pseudo-classes select an element based on its &lt;strong&gt;state or position&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:hover&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;:hover&lt;/code&gt; is applied when the mouse pointer is over an element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is commonly used for buttons and links.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:focus&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;:focus&lt;/code&gt; is useful for input fields. It works when the user clicks on an input or moves to it using the keyboard.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;input&lt;/span&gt;&lt;span class="nd"&gt;:focus&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes it easier for the user to know which input they are currently using.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:active&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;:active&lt;/code&gt; works while an element is being activated, such as while pressing a button.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="nd"&gt;:active&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;scale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0.95&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can make a button look like it is being pressed.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:first-child&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Selects an element if it is the &lt;strong&gt;first child&lt;/strong&gt; of its parent.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;One&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Two&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Three&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="nd"&gt;:first-child&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;One&lt;/code&gt; becomes red because it is the first child.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:last-child&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Works in the opposite way.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="nd"&gt;:last-child&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;Three&lt;/code&gt; becomes blue because it is the last child.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:nth-child()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This selector is very useful when we want to select a child based on its position.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="nd"&gt;:nth-child&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;2&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This selects the second &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;We can also use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="nd"&gt;:nth-child&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;odd&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;lightgray&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="nd"&gt;:nth-child&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;even&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is commonly used for tables and lists.&lt;/p&gt;

&lt;p&gt;We can even select every third item:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="nd"&gt;:nth-child&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;3&lt;/span&gt;&lt;span class="nt"&gt;n&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So &lt;code&gt;:nth-child()&lt;/code&gt; is a very useful selector when working with lists, grids and tables.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:not()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;:not()&lt;/code&gt; means &lt;strong&gt;except this&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="nd"&gt;:not&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;.special&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;gray&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This selects all &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; elements except the ones having the &lt;code&gt;special&lt;/code&gt; class.&lt;/p&gt;

&lt;p&gt;It is useful when we want to style almost everything but leave a few elements different.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:is()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;:is()&lt;/code&gt; allows us to group selectors.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nt"&gt;h3&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can write:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:is&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is especially useful when selectors become complicated.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:has()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;:has()&lt;/code&gt; is a powerful modern selector. It allows us to select an element based on something inside it.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"card"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"photo.jpg"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;My Card&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.card&lt;/span&gt;&lt;span class="nd"&gt;:has&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;.card&lt;/code&gt; is selected because it contains an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is useful when we want to style a parent depending on what it contains.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:checked&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This is useful for checkboxes and radio buttons.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"checkbox"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;input&lt;/span&gt;&lt;span class="nd"&gt;:checked&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;accent-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The style is applied when the checkbox is checked.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;:disabled&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Used to select disabled form elements.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="nd"&gt;:disabled&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can make a disabled button look different from a normal button.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Pseudo-Elements
&lt;/h2&gt;

&lt;p&gt;Pseudo-elements allow us to style a &lt;strong&gt;specific part of an element&lt;/strong&gt; or add generated content.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;::before&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;::before&lt;/code&gt; adds content before the element's actual content.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;"★ "&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the HTML contains:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;My Heading&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It can appear like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;★ My Heading
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is commonly used for icons, decorations and shapes.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;::after&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;::after&lt;/code&gt; does the same thing but adds the generated content after the element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="nd"&gt;::after&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;" →"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It can appear like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;My Heading →
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;::before&lt;/code&gt; and &lt;code&gt;::after&lt;/code&gt; are very useful for creating small decorative elements without adding extra HTML.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;::first-letter&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Selects the first letter of a text element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="nd"&gt;::first-letter&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;40px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bold&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can be used to create a large first letter like we sometimes see in magazines and articles.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;::selection&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This controls how text looks when the user selects it with the mouse.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;::selection&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now selected text will have a black background and white text.&lt;/p&gt;




</description>
      <category>html</category>
      <category>selectors</category>
      <category>css</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Responsive Web Design</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Sat, 08 Aug 2026 11:14:26 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/responsive-web-design-5cfj</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/responsive-web-design-5cfj</guid>
      <description>&lt;h2&gt;
  
  
  What is Responsive Web Design?
&lt;/h2&gt;

&lt;p&gt;Responsive web design means making a website that can adjust itself according to the screen size. A website can be opened on a laptop, tablet, or mobile phone, so the website should not look broken on smaller screens.&lt;/p&gt;

&lt;p&gt;For example, a website may have three boxes in one row on a laptop. But on a mobile screen, those three boxes can come one below another. This makes the website easier to use on different devices.&lt;/p&gt;

&lt;p&gt;We can use CSS Flexbox, Grid, relative units and media queries to make a website responsive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Relative Units and Media Queries
&lt;/h2&gt;

&lt;p&gt;When making a responsive website, using only fixed sizes like &lt;code&gt;500px&lt;/code&gt; may cause problems on smaller screens. Instead, we can use relative units such as &lt;code&gt;%&lt;/code&gt;, &lt;code&gt;vw&lt;/code&gt;, &lt;code&gt;em&lt;/code&gt; and &lt;code&gt;rem&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here &lt;code&gt;50%&lt;/code&gt; means the box will take half of its parent's width. &lt;code&gt;50vw&lt;/code&gt; means half of the browser's width. &lt;code&gt;em&lt;/code&gt; and &lt;code&gt;rem&lt;/code&gt; are mainly useful for creating flexible font sizes and spacing.&lt;/p&gt;

&lt;p&gt;We can also use media queries to change the CSS when the screen becomes smaller.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@media&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;600px&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;.box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the box will take the full width when the screen is 600px or smaller.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>adventofcode</category>
      <category>seo</category>
    </item>
    <item>
      <title>Semantic Tags in HTML</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Thu, 06 Aug 2026 03:57:02 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/semantic-tags-in-html-4675</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/semantic-tags-in-html-4675</guid>
      <description>&lt;h2&gt;
  
  
  What are Semantic Tags?
&lt;/h2&gt;

&lt;p&gt;When we create a webpage, we don't just want it to look good. We also want the browser and other developers to understand what each part of the page is. This is where semantic tags help us. The word semantic means having meaning. These tags describe the purpose of the content instead of just creating a box like a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Semantic Tags
&lt;/h2&gt;

&lt;p&gt;HTML provides different semantic tags for different parts of a webpage.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; – Used for the top section of the webpage.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; – Contains navigation links like Home, About, and Contact.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; – Holds the main content of the webpage.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; – Groups related content together.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; – Used for a complete piece of content like a blog or news article.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt; – Contains extra information such as related links or advertisements.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; – Used for the bottom section of the webpage, usually containing copyright or contact details.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Semantic Tags?
&lt;/h2&gt;

&lt;p&gt;Semantic tags make HTML code clean and easy to read. When another developer opens the code, they can quickly understand the structure of the webpage. Search engines like Google can also understand the content better, which helps with SEO. They also improve accessibility because screen readers can identify different sections of the webpage and help visually impaired users navigate the page more easily. Instead of using many &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tags everywhere, semantic tags make the code more meaningful and easier to maintain.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>semantictag</category>
      <category>beginners</category>
    </item>
    <item>
      <title>HTML video,audio and iframe tags</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Tue, 04 Aug 2026 17:49:36 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/html-videoaudio-and-iframe-tags-541m</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/html-videoaudio-and-iframe-tags-541m</guid>
      <description>&lt;h2&gt;
  
  
  &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; Tag :
&lt;/h2&gt;

&lt;p&gt;Websites become more interesting when they contain videos. HTML provides the &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; tag to add videos directly to a web page without using any extra software. We can play tutorial videos, product demos, movies, or any other video by using this tag. The &lt;code&gt;controls&lt;/code&gt; attribute displays play, pause, volume, and fullscreen buttons so users can easily control the video. We can also use attributes like &lt;code&gt;autoplay&lt;/code&gt;, &lt;code&gt;loop&lt;/code&gt;, and &lt;code&gt;muted&lt;/code&gt; depending on our needs. The &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; tag is supported by all modern browsers, making it the best choice for displaying videos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;video&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"500"&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"sample.mp4"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/mp4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    Your browser does not support the video tag.
&lt;span class="nt"&gt;&amp;lt;/video&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; Tag :
&lt;/h2&gt;

&lt;p&gt;Sometimes a website only needs sound instead of a video. In that case, HTML provides the &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; tag. It can be used to play songs, podcasts, voice recordings, or notification sounds. By adding the &lt;code&gt;controls&lt;/code&gt; attribute, the browser displays play, pause, and volume controls automatically. We can also use attributes like &lt;code&gt;loop&lt;/code&gt;, &lt;code&gt;autoplay&lt;/code&gt;, and &lt;code&gt;muted&lt;/code&gt; when required. Since the audio player is built into the browser, users can listen to the sound without installing any additional software.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;audio&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"song.mp3"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"audio/mpeg"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    Your browser does not support the audio tag.
&lt;span class="nt"&gt;&amp;lt;/audio&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; Tag :
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; tag is used to display another web page inside our current web page. It is commonly used to embed YouTube videos, Google Maps, online documents, and other websites. Instead of downloading the content, the browser loads it directly from its original source. This makes it easy to include useful content from other websites without creating it ourselves. The &lt;code&gt;width&lt;/code&gt; and &lt;code&gt;height&lt;/code&gt; attributes control the size of the iframe, and &lt;code&gt;allowfullscreen&lt;/code&gt; lets users watch videos in fullscreen mode.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;iframe&lt;/span&gt;
    &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"560"&lt;/span&gt;
    &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"315"&lt;/span&gt;
    &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://www.youtube.com/embed/VIDEO_ID"&lt;/span&gt;
    &lt;span class="na"&gt;allowfullscreen&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>html</category>
      <category>explainlikeimfive</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Picture Tag in HTML</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Tue, 04 Aug 2026 03:39:53 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/picture-tag-in-html-1ok0</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/picture-tag-in-html-1ok0</guid>
      <description>&lt;h2&gt;
  
  
  What is picture Tag?
&lt;/h2&gt;

&lt;p&gt;Normally, we use the &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag to display an image on a webpage. But sometimes one image is not enough because the same image may look good on a computer but not on a mobile phone. The &lt;code&gt;&amp;lt;picture&amp;gt;&lt;/code&gt; tag solves this problem. It allows us to keep different versions of the same image and lets the browser choose the best one depending on the screen size. This helps the webpage look better on every device.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works?
&lt;/h2&gt;

&lt;p&gt;Inside the &lt;code&gt;&amp;lt;picture&amp;gt;&lt;/code&gt; tag, we use one or more &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; tags and one &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag. The &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; tags contain different images with conditions, and the browser checks these conditions from top to bottom. When it finds the first matching condition, it displays that image. If none of the conditions match, the browser uses the image inside the &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag as the default image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;picture&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;srcset=&lt;/span&gt;&lt;span class="s"&gt;"mobile.jpg"&lt;/span&gt; &lt;span class="na"&gt;media=&lt;/span&gt;&lt;span class="s"&gt;"(max-width:600px)"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;srcset=&lt;/span&gt;&lt;span class="s"&gt;"tablet.jpg"&lt;/span&gt; &lt;span class="na"&gt;media=&lt;/span&gt;&lt;span class="s"&gt;"(max-width:900px)"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"desktop.jpg"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Nature"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/picture&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  max-width and min-width
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;media&lt;/code&gt; attribute decides when an image should be used. It mainly works with &lt;code&gt;max-width&lt;/code&gt; and &lt;code&gt;min-width&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;max-width&lt;/code&gt;&lt;/strong&gt; means &lt;strong&gt;this width or smaller&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;min-width&lt;/code&gt;&lt;/strong&gt; means &lt;strong&gt;this width or bigger&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;source srcset="mobile.jpg" media="(max-width:600px)"&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This means if the screen width is &lt;strong&gt;600px or less&lt;/strong&gt;, the browser will show &lt;code&gt;mobile.jpg&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Another example,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;source srcset="desktop.jpg" media="(min-width:900px)"&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This means if the screen width is &lt;strong&gt;900px or more&lt;/strong&gt;, the browser will show &lt;code&gt;desktop.jpg&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why &lt;code&gt;&amp;lt;picture&amp;gt;&lt;/code&gt; Tag?
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;picture&amp;gt;&lt;/code&gt; tag makes a website more responsive. Mobile users can download smaller images, which helps the page load faster, while desktop users can see larger and clearer images. It also gives us more control over how images are displayed on different screen sizes.&lt;/p&gt;

</description>
      <category>html</category>
      <category>webdev</category>
      <category>pictags</category>
      <category>webcomponents</category>
    </item>
    <item>
      <title>Bootstrap</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Tue, 04 Aug 2026 02:07:28 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/bootstrap-1c59</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/bootstrap-1c59</guid>
      <description>&lt;h2&gt;
  
  
  What is Bootstrap?
&lt;/h2&gt;

&lt;p&gt;Bootstrap is a CSS framework. It is used to build websites faster without writing everything from the beginning. It already has many ready-made classes for buttons, cards, forms, grids, navigation bars and many more. We only need to add the class names in our HTML. This saves time and makes the website look good with less code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"btn btn-primary"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Click Me&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, "btn" makes it a button and "btn-primary" gives it a blue color. We did not write any CSS for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bootstrap Grid System
&lt;/h2&gt;

&lt;p&gt;Bootstrap has a grid system with 12 columns. We can divide these columns to create different layouts. For example, if we want 4 equal boxes in one row, each box should take 3 columns because "3 + 3 + 3 + 3 = 12".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"row"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Box 1&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Box 2&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Box 3&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"col-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Box 4&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we want 6 boxes in one row, we use "col-2" because "2 × 6 = 12".&lt;/p&gt;

&lt;h2&gt;
  
  
  Bootstrap Utility Classes
&lt;/h2&gt;

&lt;p&gt;Bootstrap also gives many utility classes. These classes help us change spacing, colors, display, flex, width and many other things without writing CSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"bg-success text-white p-3 rounded"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    Hello Bootstrap
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;"bg-success" gives a green background.&lt;/li&gt;
&lt;li&gt;"text-white" changes the text to white.&lt;/li&gt;
&lt;li&gt;"p-3" adds padding.&lt;/li&gt;
&lt;li&gt;"rounded" makes the corners smooth.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Flex in Bootstrap
&lt;/h2&gt;

&lt;p&gt;Bootstrap makes Flexbox very easy. We only need to use classes instead of writing CSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"d-flex gap-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;Apple&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;Orange&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;Mango&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;"d-flex" places the items in one row and "gap-3" gives space between them. If there are many items and we don't want them to shrink, we can use "flex-shrink-0" and "overflow-auto" to make them scroll.&lt;/p&gt;

</description>
      <category>bootstrap</category>
      <category>css</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>CSS Positioning</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Mon, 03 Aug 2026 05:22:02 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/css-positioning-3gmh</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/css-positioning-3gmh</guid>
      <description>&lt;p&gt;When we create a webpage, every element comes one below another by default. But sometimes we need to move an element to a different place. For this, CSS provides the position property. It has five values: static, relative, absolute, fixed, and sticky. Each one works differently, so it is important to know when to use them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Static Position&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"static" is the default position of every HTML element. The elements stay in the normal order of the webpage. If we use "top", "left", "right", or "bottom", nothing will happen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.box&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;static&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Relative Position&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"relative" moves an element from its original position. The original space is still kept, so other elements do not move into that space.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.box&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;&amp;lt;div class="box"&amp;gt;Hello&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In this example, the box moves 20px down and 30px to the right, but its original space is still reserved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Absolute Position&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"absolute" removes the element from the normal page flow. It is placed relative to the nearest parent that has "position: relative", "absolute", "fixed", or "sticky".&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;div class="container"&amp;gt;&lt;br&gt;
    &amp;lt;div class="box"&amp;gt;Hello&amp;lt;/div&amp;gt;&lt;br&gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.box&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, the box appears 20px from the top and 20px from the right inside the container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Fixed Position&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A "fixed" element is always placed relative to the browser window. Even if we scroll the page, it stays in the same place.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.header&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;fixed&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is commonly used for navigation bars or floating buttons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Sticky Position&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"sticky" works like "relative" at first. When we scroll and the element reaches the value given in "top", it sticks there until its parent ends.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.navbar&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;sticky&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is useful for section headings or navigation bars that should stay visible while scrolling.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsojcwvfmvz8ef41925x6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsojcwvfmvz8ef41925x6.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>csspositioning</category>
      <category>webdev</category>
      <category>css</category>
    </item>
    <item>
      <title>Creating a YouTube Web Page Using HTML and CSS</title>
      <dc:creator>Abimanyu P</dc:creator>
      <pubDate>Wed, 29 Jul 2026 04:41:10 +0000</pubDate>
      <link>https://dev.to/abimanyu_p_9e75124634d2a4/creating-a-youtube-web-page-using-html-and-css-1mc</link>
      <guid>https://dev.to/abimanyu_p_9e75124634d2a4/creating-a-youtube-web-page-using-html-and-css-1mc</guid>
      <description>&lt;h2&gt;
  
  
  Building the Layout
&lt;/h2&gt;

&lt;p&gt;A YouTube web page looks simple, but it contains many small sections that should work together correctly. The first step is creating the page structure using HTML. The page contains a top navigation bar, a left sidebar, and a video content section. After creating the structure, CSS is used to arrange these sections in the correct position. Flexbox is very useful because it can place the sidebar and the content area side by side and also helps make the layout responsive.&lt;/p&gt;

&lt;p&gt;While designing the page, different CSS properties are used for spacing, alignment, colors, borders, and sizing. The &lt;code&gt;box-sizing: border-box&lt;/code&gt; property helps keep the width and height under control because padding and borders are included inside the given size. The &lt;code&gt;display: block&lt;/code&gt; property makes an element take the full available width and start from a new line, which is useful for arranging different sections of the page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scrolling and Styling
&lt;/h2&gt;

&lt;p&gt;One important part of the YouTube layout is scrolling. The sidebar and the video content should scroll separately. This can be done by giving both sections their own height and using &lt;code&gt;overflow-y: auto&lt;/code&gt;. The page itself should not scroll, so the body uses &lt;code&gt;overflow: hidden&lt;/code&gt;. The scrollbar can also be hidden using browser-specific CSS while keeping the scrolling functionality active.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt; &lt;span class="nc"&gt;.content&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100vh&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;repeat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nl"&gt;overflow-y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="py"&gt;scrollbar-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;thin&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another useful topic is CSS selectors. The universal selector (&lt;code&gt;*&lt;/code&gt;) applies styles to every element, but those styles can be overridden using classes, IDs, or selectors with higher specificity. IDs should always be unique even though browsers still apply styles when the same ID is used on multiple elements. Classes are the correct choice when the same style is needed for many elements. Hover effects can be added using the &lt;code&gt;:hover&lt;/code&gt; pseudo-class because inline CSS cannot create hover styles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with Bootstrap Code
&lt;/h2&gt;

&lt;p&gt;While copying icons or code from Bootstrap, some built-in classes may already contain predefined styles. Sometimes these styles override newly created classes because of CSS specificity or the order in which CSS files are loaded. This problem can be solved by loading the custom CSS file after Bootstrap, creating a more specific selector, or using &lt;code&gt;!important&lt;/code&gt; only when it is really needed.&lt;/p&gt;

&lt;p&gt;HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"badge rounded-pill text-bg-secondary nav-el"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Secondary&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;span&lt;/span&gt;&lt;span class="nc"&gt;.nav-el&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;14px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creating a YouTube clone gives a better understanding of page layout, scrolling, selectors, hover effects, CSS specificity, and styling techniques. Every small problem helps improve debugging skills and shows how different HTML and CSS properties work together to build a complete web page.&lt;/p&gt;

</description>
      <category>css</category>
      <category>frontend</category>
      <category>html</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
