[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-config":3,"topic:flex-container-and-flex-items":6,"blog-categories":131,"course-tree":155},{"data":4},{"google_site_verification":5,"ga4_measurement_id":5,"site_name":5,"default_og_image":5,"twitter_handle":5},null,{"data":7},{"id":8,"title":9,"slug":10,"content":11,"course":12,"subcategory":15,"author":18,"reading_time_minutes":24,"cornerstone":25,"schema_type":26,"faq_json":5,"video_url":5,"canonical_url":27,"meta_title":28,"meta_description":29,"og_image":5,"toc_json":30,"code_examples":85,"quiz":5,"exercises":106,"published_at":5,"updated_at":122,"prev":123,"next":127},168,"Flex Container and Flex Items","flex-container-and-flex-items","\u003Ch2 id=\"flex-container-and-flex-items-explained\">Flex Container and Flex Items Explained\u003C\u002Fh2>\u003Cp>Every flex layout has two roles: the \u003Cstrong>flex container\u003C\u002Fstrong> (the parent that has \u003Ccode>display: flex\u003C\u002Fcode>) and the \u003Cstrong>flex items\u003C\u002Fstrong> (its direct children). Knowing which property belongs to which role is the single biggest time saver when learning \u003Cstrong>CSS Flexbox\u003C\u002Fstrong>. Half of all Flexbox bugs come from putting a property on the wrong element.\u003C\u002Fp>\u003Ch3 id=\"what-you-will-learn\">What You Will Learn\u003C\u002Fh3>\u003Cul>\u003Cli>How to create a flex container with \u003Ccode>display: flex\u003C\u002Fcode> and \u003Ccode>display: inline-flex\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>Which elements become flex items (and which do not)\u003C\u002Fli>\u003Cli>The complete list of container properties and item properties\u003C\u002Fli>\u003Cli>What stops working on flex items (float, clear, vertical-align)\u003C\u002Fli>\u003Cli>How nested flex containers work\u003C\u002Fli>\u003Cli>The \u003Ccode>min-width: auto\u003C\u002Fcode> gotcha that causes overflow\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"creating-a-flex-container\">Creating a Flex Container\u003C\u002Fh2>\u003Cpre>\u003Ccode class=\"language-css\">.container {\n  display: flex;          \u002F* block-level flex container *\u002F\n}\n\n.inline-container {\n  display: inline-flex;   \u002F* inline-level flex container *\u002F\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Both values create a flex formatting context for the children. The difference is only how the container itself sits in its own parent:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>display: flex\u003C\u002Fcode>: the container is block-level and takes the full available width.\u003C\u002Fli>\u003Cli>\u003Ccode>display: inline-flex\u003C\u002Fcode>: the container is inline-level and shrinks to fit its content, like an inline-block. Useful for badges, pill buttons and icon+text labels.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"what-becomes-a-flex-item\">What Becomes a Flex Item?\u003C\u002Fh2>\u003Cp>Only the \u003Cstrong>direct children\u003C\u002Fstrong> of a flex container become flex items. Grandchildren are not affected and behave normally inside their parent item.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;div class=\"container\"&gt;      &lt;!-- flex container --&gt;\n  &lt;div class=\"item\"&gt;         &lt;!-- flex item --&gt;\n    &lt;p&gt;Normal paragraph&lt;\u002Fp&gt;  &lt;!-- NOT a flex item --&gt;\n  &lt;\u002Fdiv&gt;\n  &lt;div class=\"item\"&gt;Two&lt;\u002Fdiv&gt; &lt;!-- flex item --&gt;\n&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3 id=\"special-cases\">Special Cases\u003C\u002Fh3>\u003Cul>\u003Cli>\u003Cstrong>Text directly inside the container\u003C\u002Fstrong> is wrapped into an anonymous flex item automatically.\u003C\u002Fli>\u003Cli>\u003Cstrong>Whitespace-only text\u003C\u002Fstrong> is ignored, so there are no inline-block style gaps.\u003C\u002Fli>\u003Cli>\u003Cstrong>Absolutely positioned children\u003C\u002Fstrong> do not participate in flex layout; they are taken out of flow.\u003C\u002Fli>\u003Cli>\u003Cstrong>Children with \u003Ccode>display: none\u003C\u002Fcode>\u003C\u002Fstrong> generate no flex item.\u003C\u002Fli>\u003Cli>\u003Cstrong>Margins do not collapse\u003C\u002Fstrong> between flex items, unlike block margins.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"properties-that-go-on-the-container\">Properties That Go on the Container\u003C\u002Fh2>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Property\u003C\u002Fth>\u003Cth>What it controls\u003C\u002Fth>\u003Cth>Common values\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>display\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Turns on flex layout\u003C\u002Ftd>\u003Ctd>\u003Ccode>flex\u003C\u002Fcode>, \u003Ccode>inline-flex\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>flex-direction\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Direction of the main axis\u003C\u002Ftd>\u003Ctd>\u003Ccode>row\u003C\u002Fcode>, \u003Ccode>row-reverse\u003C\u002Fcode>, \u003Ccode>column\u003C\u002Fcode>, \u003Ccode>column-reverse\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>flex-wrap\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Whether items can wrap to new lines\u003C\u002Ftd>\u003Ctd>\u003Ccode>nowrap\u003C\u002Fcode>, \u003Ccode>wrap\u003C\u002Fcode>, \u003Ccode>wrap-reverse\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>flex-flow\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Shorthand for direction + wrap\u003C\u002Ftd>\u003Ctd>\u003Ccode>row wrap\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>justify-content\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Space distribution on the main axis\u003C\u002Ftd>\u003Ctd>\u003Ccode>flex-start\u003C\u002Fcode>, \u003Ccode>center\u003C\u002Fcode>, \u003Ccode>space-between\u003C\u002Fcode>, \u003Ccode>space-around\u003C\u002Fcode>, \u003Ccode>space-evenly\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>align-items\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Alignment of items on the cross axis\u003C\u002Ftd>\u003Ctd>\u003Ccode>stretch\u003C\u002Fcode>, \u003Ccode>flex-start\u003C\u002Fcode>, \u003Ccode>center\u003C\u002Fcode>, \u003Ccode>flex-end\u003C\u002Fcode>, \u003Ccode>baseline\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>align-content\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Spacing of wrapped lines on the cross axis\u003C\u002Ftd>\u003Ctd>\u003Ccode>flex-start\u003C\u002Fcode>, \u003Ccode>center\u003C\u002Fcode>, \u003Ccode>space-between\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>gap\u003C\u002Fcode>, \u003Ccode>row-gap\u003C\u002Fcode>, \u003Ccode>column-gap\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Space between items\u003C\u002Ftd>\u003Ctd>\u003Ccode>16px\u003C\u002Fcode>, \u003Ccode>1rem\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2 id=\"properties-that-go-on-the-items\">Properties That Go on the Items\u003C\u002Fh2>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Property\u003C\u002Fth>\u003Cth>What it controls\u003C\u002Fth>\u003Cth>Default\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>flex-grow\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>How much of the free space this item takes\u003C\u002Ftd>\u003Ctd>\u003Ccode>0\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>flex-shrink\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>How willing the item is to shrink when space is short\u003C\u002Ftd>\u003Ctd>\u003Ccode>1\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>flex-basis\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Starting size before growing or shrinking\u003C\u002Ftd>\u003Ctd>\u003Ccode>auto\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>flex\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Shorthand: grow shrink basis\u003C\u002Ftd>\u003Ctd>\u003Ccode>0 1 auto\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>align-self\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Overrides \u003Ccode>align-items\u003C\u002Fcode> for one item\u003C\u002Ftd>\u003Ctd>\u003Ccode>auto\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>order\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Visual order of the item\u003C\u002Ftd>\u003Ctd>\u003Ccode>0\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Cp>\u003Cstrong>Memory trick:\u003C\u002Fstrong> container properties describe the \u003Cem>group\u003C\u002Fem> (direction, wrap, distribution, alignment). Item properties describe \u003Cem>one child\u003C\u002Fem> (how much it grows, shrinks, where it starts, whether it aligns differently).\u003C\u002Fp>\u003Ch3 id=\"the-flex-shorthand-you-will-use-daily\">The \u003Ccode>flex\u003C\u002Fcode> Shorthand You Will Use Daily\u003C\u002Fh3>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Declaration\u003C\u002Fth>\u003Cth>Meaning\u003C\u002Fth>\u003Cth>Typical use\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>flex: 1\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>grow 1, shrink 1, basis 0\u003C\u002Ftd>\u003Ctd>Equal-width columns, fill remaining space\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>flex: auto\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>grow 1, shrink 1, basis auto\u003C\u002Ftd>\u003Ctd>Grow from content size\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>flex: none\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>grow 0, shrink 0, basis auto\u003C\u002Ftd>\u003Ctd>Fixed-size item that never resizes\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>flex: 0 0 250px\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>no grow, no shrink, 250px wide\u003C\u002Ftd>\u003Ctd>Sidebar with a locked width\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2 id=\"what-stops-working-on-flex-items\">What Stops Working on Flex Items\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Ccode>float\u003C\u002Fcode> and \u003Ccode>clear\u003C\u002Fcode> have no effect on flex items.\u003C\u002Fli>\u003Cli>\u003Ccode>vertical-align\u003C\u002Fcode> has no effect; use \u003Ccode>align-items\u003C\u002Fcode> or \u003Ccode>align-self\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>\u003Ccode>display\u003C\u002Fcode> on an item is \"blockified\": an item set to \u003Ccode>inline\u003C\u002Fcode> behaves like \u003Ccode>block\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>\u003Ccode>::first-line\u003C\u002Fcode> and \u003Ccode>::first-letter\u003C\u002Fcode> do not apply to the container itself.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"nested-flex-containers\">Nested Flex Containers\u003C\u002Fh2>\u003Cp>A flex item can itself be a flex container. This is extremely common: a navbar (flex row) contains a link group (flex row) and each card in a list (flex row) contains its own content (flex column). Each container manages only its own direct children, so you can combine rows and columns freely.\u003C\u002Fp>\u003Ch2 id=\"the-min-width-auto-gotcha\">The min-width: auto Gotcha\u003C\u002Fh2>\u003Cp>Flex items have an automatic minimum size equal to their content. That means a long word, a wide image or a \u003Ccode>pre\u003C\u002Fcode> block can refuse to shrink and push the layout wider than its container. The fix is to allow the item to shrink:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-css\">.item {\n  min-width: 0;        \u002F* allow shrinking below content size *\u002F\n  overflow: hidden;    \u002F* or auto, to handle overflow *\u002F\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>This tiny fix solves a large share of \"why is my flex layout overflowing\" questions, especially with text truncation (\u003Ccode>text-overflow: ellipsis\u003C\u002Fcode>) inside flex items.\u003C\u002Fp>\u003Ch2 id=\"common-mistakes\">Common Mistakes\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cstrong>Applying \u003Ccode>justify-content\u003C\u002Fcode> to an item.\u003C\u002Fstrong> It belongs on the container.\u003C\u002Fli>\u003Cli>\u003Cstrong>Applying \u003Ccode>flex-grow\u003C\u002Fcode> to the container.\u003C\u002Fstrong> It belongs on the items.\u003C\u002Fli>\u003Cli>\u003Cstrong>Expecting nested elements to flex.\u003C\u002Fstrong> Add \u003Ccode>display: flex\u003C\u002Fcode> to that nested parent as well.\u003C\u002Fli>\u003Cli>\u003Cstrong>Using margin instead of gap.\u003C\u002Fstrong> \u003Ccode>gap\u003C\u002Fcode> is cleaner: no extra space after the last item.\u003C\u002Fli>\u003Cli>\u003Cstrong>Overusing \u003Ccode>order\u003C\u002Fcode>.\u003C\u002Fstrong> Screen readers and keyboard focus follow source order, so large visual reordering can hurt accessibility.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"key-takeaways\">Key Takeaways\u003C\u002Fh2>\u003Cul>\u003Cli>The container has \u003Ccode>display: flex\u003C\u002Fcode>; its direct children are the items.\u003C\u002Fli>\u003Cli>Container properties: \u003Ccode>flex-direction\u003C\u002Fcode>, \u003Ccode>flex-wrap\u003C\u002Fcode>, \u003Ccode>justify-content\u003C\u002Fcode>, \u003Ccode>align-items\u003C\u002Fcode>, \u003Ccode>align-content\u003C\u002Fcode>, \u003Ccode>gap\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>Item properties: \u003Ccode>flex-grow\u003C\u002Fcode>, \u003Ccode>flex-shrink\u003C\u002Fcode>, \u003Ccode>flex-basis\u003C\u002Fcode>, \u003Ccode>flex\u003C\u002Fcode>, \u003Ccode>align-self\u003C\u002Fcode>, \u003Ccode>order\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>Use \u003Ccode>min-width: 0\u003C\u002Fcode> to fix overflow caused by unshrinkable content.\u003C\u002Fli>\u003C\u002Ful>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font-family: sans-serif; }\n  .box { background: #ecf0f1; padding: 10px; margin-bottom: 12px; }\n  .flex { display: flex; gap: 8px; }\n  .inline-flex { display: inline-flex; gap: 8px; background: #ecf0f1; padding: 10px; }\n  .item { background: #3498db; color: #fff; padding: 12px 18px; border-radius: 6px; }\n&lt;\u002Fstyle&gt;\n&lt;p&gt;&lt;code&gt;display: flex&lt;\u002Fcode&gt; (block-level, full width)&lt;\u002Fp&gt;\n&lt;div class='box flex'&gt;&lt;div class='item'&gt;A&lt;\u002Fdiv&gt;&lt;div class='item'&gt;B&lt;\u002Fdiv&gt;&lt;\u002Fdiv&gt;\n&lt;p&gt;&lt;code&gt;display: inline-flex&lt;\u002Fcode&gt; (shrinks to content)&lt;\u002Fp&gt;\n&lt;div class='inline-flex'&gt;&lt;div class='item'&gt;A&lt;\u002Fdiv&gt;&lt;div class='item'&gt;B&lt;\u002Fdiv&gt;&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font-family: sans-serif; }\n  .container { display: flex; gap: 10px; background: #ecf0f1; padding: 10px; }\n  .item { background: #2ecc71; color: #fff; padding: 14px; border-radius: 6px; }\n  .item p { background: #27ae60; margin: 8px 0 0; padding: 6px; }\n&lt;\u002Fstyle&gt;\n&lt;div class='container'&gt;\n  &lt;div class='item'&gt;Item 1&lt;p&gt;I am a normal paragraph inside Item 1, not a flex item&lt;\u002Fp&gt;&lt;\u002Fdiv&gt;\n  &lt;div class='item'&gt;Item 2&lt;\u002Fdiv&gt;\n  Loose text becomes an anonymous flex item\n&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font-family: sans-serif; text-align: center; color: #fff; }\n  .container { display: flex; gap: 10px; background: #ecf0f1; padding: 10px; }\n  .item { padding: 16px; border-radius: 6px; }\n  .a { background: #e74c3c; flex: 1; }\n  .b { background: #3498db; flex: 2; }\n  .c { background: #f39c12; flex: 0 0 120px; }\n&lt;\u002Fstyle&gt;\n&lt;div class='container'&gt;\n  &lt;div class='item a'&gt;flex: 1&lt;\u002Fdiv&gt;\n  &lt;div class='item b'&gt;flex: 2&lt;\u002Fdiv&gt;\n  &lt;div class='item c'&gt;flex: 0 0 120px&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n&lt;p style='color:#333'&gt;Red takes 1 share, blue takes 2 shares of the remaining space, orange stays fixed at 120px.&lt;\u002Fp&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font-family: sans-serif; color: #fff; text-align: center; }\n  .container { display: flex; align-items: flex-start; gap: 10px; height: 180px; background: #ecf0f1; padding: 10px; }\n  .item { background: #8e44ad; padding: 16px; border-radius: 6px; }\n  .special { align-self: flex-end; background: #e67e22; }\n  .first { order: -1; background: #16a085; }\n&lt;\u002Fstyle&gt;\n&lt;div class='container'&gt;\n  &lt;div class='item'&gt;1&lt;\u002Fdiv&gt;\n  &lt;div class='item special'&gt;2 (align-self: flex-end)&lt;\u002Fdiv&gt;\n  &lt;div class='item'&gt;3&lt;\u002Fdiv&gt;\n  &lt;div class='item first'&gt;4 (order: -1)&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font-family: sans-serif; }\n  .card-list { display: flex; flex-direction: column; gap: 12px; max-width: 420px; }\n  .card { display: flex; align-items: center; gap: 14px; border: 1px solid #dcdde1; border-radius: 10px; padding: 12px; }\n  .avatar { flex: none; width: 48px; height: 48px; border-radius: 50%; background: #3498db; }\n  .info { display: flex; flex-direction: column; }\n  .info strong { font-size: 1rem; }\n  .info span { color: #7f8c8d; font-size: 0.85rem; }\n&lt;\u002Fstyle&gt;\n&lt;div class='card-list'&gt;\n  &lt;div class='card'&gt;&lt;div class='avatar'&gt;&lt;\u002Fdiv&gt;&lt;div class='info'&gt;&lt;strong&gt;Ayesha Khan&lt;\u002Fstrong&gt;&lt;span&gt;Frontend Developer&lt;\u002Fspan&gt;&lt;\u002Fdiv&gt;&lt;\u002Fdiv&gt;\n  &lt;div class='card'&gt;&lt;div class='avatar'&gt;&lt;\u002Fdiv&gt;&lt;div class='info'&gt;&lt;strong&gt;Ali Raza&lt;\u002Fstrong&gt;&lt;span&gt;UI Designer&lt;\u002Fspan&gt;&lt;\u002Fdiv&gt;&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\u003Cdiv class=\"try-it-yourself language-html\">\u003Cpre>\u003Ccode>&lt;style&gt;\n  body { font-family: sans-serif; }\n  .row { display: flex; gap: 10px; width: 320px; border: 2px dashed #7f8c8d; padding: 8px; }\n  .sidebar { flex: 0 0 90px; background: #ecf0f1; padding: 8px; }\n  .text { flex: 1; background: #dff9fb; padding: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; \u002F* min-width: 0; *\u002F }\n&lt;\u002Fstyle&gt;\n&lt;div class='row'&gt;\n  &lt;div class='sidebar'&gt;Side&lt;\u002Fdiv&gt;\n  &lt;div class='text'&gt;ThisIsAVeryLongUnbrokenTextThatWantsToOverflowTheContainer&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n&lt;p&gt;Uncomment &lt;code&gt;min-width: 0;&lt;\u002Fcode&gt; and see the text truncate properly.&lt;\u002Fp&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>",{"name":13,"slug":14},"CSS","css",{"name":16,"slug":17},"Flexbox Foundations","flexbox-foundations",{"slug":19,"display_name":20,"job_title":5,"short_bio":5,"expertise_tags":21,"headshot":5,"long_bio":5,"credentials":5,"twitter_url":5,"linkedin_url":5,"github_url":5,"personal_website_url":5,"other_sameas_urls":5,"topics":22,"posts":23},"badar-khalil","Badar Khalil",[],[],[],6,false,"Article","https:\u002F\u002Fwpfsharp.com\u002Ftopics\u002Fflex-container-and-flex-items","Flex Container and Flex Items: Complete CSS Guide","Understand the flex container and flex items in CSS Flexbox: display flex, inline-flex, container vs item properties, flex shorthand and min-width fix.",[31,41,45,53,57,65,69,73,77,81],{"id":32,"text":33,"level":34,"children":35},"flex-container-and-flex-items-explained","Flex Container and Flex Items Explained",2,[36],{"id":37,"text":38,"level":39,"children":40},"what-you-will-learn","What You Will Learn",3,[],{"id":42,"text":43,"level":34,"children":44},"creating-a-flex-container","Creating a Flex Container",[],{"id":46,"text":47,"level":34,"children":48},"what-becomes-a-flex-item","What Becomes a Flex Item?",[49],{"id":50,"text":51,"level":39,"children":52},"special-cases","Special Cases",[],{"id":54,"text":55,"level":34,"children":56},"properties-that-go-on-the-container","Properties That Go on the Container",[],{"id":58,"text":59,"level":34,"children":60},"properties-that-go-on-the-items","Properties That Go on the Items",[61],{"id":62,"text":63,"level":39,"children":64},"the-flex-shorthand-you-will-use-daily","The flex Shorthand You Will Use Daily",[],{"id":66,"text":67,"level":34,"children":68},"what-stops-working-on-flex-items","What Stops Working on Flex Items",[],{"id":70,"text":71,"level":34,"children":72},"nested-flex-containers","Nested Flex Containers",[],{"id":74,"text":75,"level":34,"children":76},"the-min-width-auto-gotcha","The min-width: auto Gotcha",[],{"id":78,"text":79,"level":34,"children":80},"common-mistakes","Common Mistakes",[],{"id":82,"text":83,"level":34,"children":84},"key-takeaways","Key Takeaways",[],[86,91,94,97,100,103],{"id":87,"language":88,"code":89,"is_editable":90},675,"html","\u003Cstyle>\n  body { font-family: sans-serif; }\n  .box { background: #ecf0f1; padding: 10px; margin-bottom: 12px; }\n  .flex { display: flex; gap: 8px; }\n  .inline-flex { display: inline-flex; gap: 8px; background: #ecf0f1; padding: 10px; }\n  .item { background: #3498db; color: #fff; padding: 12px 18px; border-radius: 6px; }\n\u003C\u002Fstyle>\n\u003Cp>\u003Ccode>display: flex\u003C\u002Fcode> (block-level, full width)\u003C\u002Fp>\n\u003Cdiv class='box flex'>\u003Cdiv class='item'>A\u003C\u002Fdiv>\u003Cdiv class='item'>B\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003Cp>\u003Ccode>display: inline-flex\u003C\u002Fcode> (shrinks to content)\u003C\u002Fp>\n\u003Cdiv class='inline-flex'>\u003Cdiv class='item'>A\u003C\u002Fdiv>\u003Cdiv class='item'>B\u003C\u002Fdiv>\u003C\u002Fdiv>",true,{"id":92,"language":88,"code":93,"is_editable":90},676,"\u003Cstyle>\n  body { font-family: sans-serif; }\n  .container { display: flex; gap: 10px; background: #ecf0f1; padding: 10px; }\n  .item { background: #2ecc71; color: #fff; padding: 14px; border-radius: 6px; }\n  .item p { background: #27ae60; margin: 8px 0 0; padding: 6px; }\n\u003C\u002Fstyle>\n\u003Cdiv class='container'>\n  \u003Cdiv class='item'>Item 1\u003Cp>I am a normal paragraph inside Item 1, not a flex item\u003C\u002Fp>\u003C\u002Fdiv>\n  \u003Cdiv class='item'>Item 2\u003C\u002Fdiv>\n  Loose text becomes an anonymous flex item\n\u003C\u002Fdiv>",{"id":95,"language":88,"code":96,"is_editable":90},677,"\u003Cstyle>\n  body { font-family: sans-serif; text-align: center; color: #fff; }\n  .container { display: flex; gap: 10px; background: #ecf0f1; padding: 10px; }\n  .item { padding: 16px; border-radius: 6px; }\n  .a { background: #e74c3c; flex: 1; }\n  .b { background: #3498db; flex: 2; }\n  .c { background: #f39c12; flex: 0 0 120px; }\n\u003C\u002Fstyle>\n\u003Cdiv class='container'>\n  \u003Cdiv class='item a'>flex: 1\u003C\u002Fdiv>\n  \u003Cdiv class='item b'>flex: 2\u003C\u002Fdiv>\n  \u003Cdiv class='item c'>flex: 0 0 120px\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cp style='color:#333'>Red takes 1 share, blue takes 2 shares of the remaining space, orange stays fixed at 120px.\u003C\u002Fp>",{"id":98,"language":88,"code":99,"is_editable":90},678,"\u003Cstyle>\n  body { font-family: sans-serif; color: #fff; text-align: center; }\n  .container { display: flex; align-items: flex-start; gap: 10px; height: 180px; background: #ecf0f1; padding: 10px; }\n  .item { background: #8e44ad; padding: 16px; border-radius: 6px; }\n  .special { align-self: flex-end; background: #e67e22; }\n  .first { order: -1; background: #16a085; }\n\u003C\u002Fstyle>\n\u003Cdiv class='container'>\n  \u003Cdiv class='item'>1\u003C\u002Fdiv>\n  \u003Cdiv class='item special'>2 (align-self: flex-end)\u003C\u002Fdiv>\n  \u003Cdiv class='item'>3\u003C\u002Fdiv>\n  \u003Cdiv class='item first'>4 (order: -1)\u003C\u002Fdiv>\n\u003C\u002Fdiv>",{"id":101,"language":88,"code":102,"is_editable":90},679,"\u003Cstyle>\n  body { font-family: sans-serif; }\n  .card-list { display: flex; flex-direction: column; gap: 12px; max-width: 420px; }\n  .card { display: flex; align-items: center; gap: 14px; border: 1px solid #dcdde1; border-radius: 10px; padding: 12px; }\n  .avatar { flex: none; width: 48px; height: 48px; border-radius: 50%; background: #3498db; }\n  .info { display: flex; flex-direction: column; }\n  .info strong { font-size: 1rem; }\n  .info span { color: #7f8c8d; font-size: 0.85rem; }\n\u003C\u002Fstyle>\n\u003Cdiv class='card-list'>\n  \u003Cdiv class='card'>\u003Cdiv class='avatar'>\u003C\u002Fdiv>\u003Cdiv class='info'>\u003Cstrong>Ayesha Khan\u003C\u002Fstrong>\u003Cspan>Frontend Developer\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fdiv>\n  \u003Cdiv class='card'>\u003Cdiv class='avatar'>\u003C\u002Fdiv>\u003Cdiv class='info'>\u003Cstrong>Ali Raza\u003C\u002Fstrong>\u003Cspan>UI Designer\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fdiv>\n\u003C\u002Fdiv>",{"id":104,"language":88,"code":105,"is_editable":90},680,"\u003Cstyle>\n  body { font-family: sans-serif; }\n  .row { display: flex; gap: 10px; width: 320px; border: 2px dashed #7f8c8d; padding: 8px; }\n  .sidebar { flex: 0 0 90px; background: #ecf0f1; padding: 8px; }\n  .text { flex: 1; background: #dff9fb; padding: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; \u002F* min-width: 0; *\u002F }\n\u003C\u002Fstyle>\n\u003Cdiv class='row'>\n  \u003Cdiv class='sidebar'>Side\u003C\u002Fdiv>\n  \u003Cdiv class='text'>ThisIsAVeryLongUnbrokenTextThatWantsToOverflowTheContainer\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cp>Uncomment \u003Ccode>min-width: 0;\u003C\u002Fcode> and see the text truncate properly.\u003C\u002Fp>",[107,115],{"id":108,"title":109,"slug":110,"prompt":111,"starter_code":112,"expected_output":113,"language":88,"order_index":114},233,"Equal Columns and a Fixed Sidebar","flexbox-equal-columns-fixed-sidebar","Make .layout a flex container with a 16px gap. The .sidebar must be exactly 200px wide and never grow or shrink. The two .col elements must share the remaining space equally. Use the flex shorthand on every item.","\u003Cstyle>\n  * { box-sizing: border-box; }\n  body { font-family: sans-serif; }\n  .layout > div { padding: 16px; color: #fff; }\n  .sidebar { background: #2c3e50; }\n  .col { background: #3498db; }\n\u003C\u002Fstyle>\n\u003Cdiv class='layout'>\n  \u003Cdiv class='sidebar'>Sidebar\u003C\u002Fdiv>\n  \u003Cdiv class='col'>Column 1\u003C\u002Fdiv>\n  \u003Cdiv class='col'>Column 2\u003C\u002Fdiv>\n\u003C\u002Fdiv>","Sidebar is 200px wide, two blue columns are equal width and fill the rest, 16px gap between all three.",1,{"id":116,"title":117,"slug":118,"prompt":119,"starter_code":120,"expected_output":121,"language":88,"order_index":34},234,"Fix the Overflowing Flex Item","flexbox-fix-overflowing-flex-item","The long title pushes the layout wider than the 360px container. Without changing the HTML, fix the CSS so the title is truncated with an ellipsis and the button stays fully visible on the right.","\u003Cstyle>\n  .bar { display: flex; align-items: center; gap: 10px; width: 360px; border: 2px dashed #7f8c8d; padding: 8px; font-family: sans-serif; }\n  .title { flex: 1; white-space: nowrap; }\n  button { flex: none; }\n\u003C\u002Fstyle>\n\u003Cdiv class='bar'>\n  \u003Cdiv class='title'>A_really_long_course_title_that_does_not_fit_inside_the_bar\u003C\u002Fdiv>\n  \u003Cbutton>Open\u003C\u002Fbutton>\n\u003C\u002Fdiv>","The title is cut with an ellipsis (...) inside the bar and the Open button stays visible inside the 360px container.","2026-10-01T16:23:43+00:00",{"id":124,"slug":125,"title":126},83,"css-syntax-how-browsers-apply-styles","CSS Syntax & How Browsers Apply Styles",{"id":128,"slug":129,"title":130},84,"setting-up-css-workspace-linking-files-live-server","Setting Up Your CSS Workspace: Linking Files & Live Server",{"data":132},[133,136,140,145,150],{"name":13,"slug":14,"description":134,"post_count":34,"subcategories":135},"Learn CSS with practical tutorials and examples covering layouts, Flexbox, Grid, responsive design, typography, positioning, animations, and more.",[],{"name":137,"slug":88,"description":138,"post_count":34,"subcategories":139},"HTML","Learn HTML with practical tutorials and examples for beginners. Explore HTML tags, elements, attributes, links, images, forms, semantic HTML, and more with clear explanations and real code examples.",[],{"name":141,"slug":142,"description":143,"post_count":114,"subcategories":144},"WPF","wpf","Learn WPF with practical tutorials and examples covering XAML, windows, controls, layouts, data binding, MVVM, commands, styles, templates, debugging, and modern WPF UI development.",[],{"name":146,"slug":147,"description":148,"post_count":114,"subcategories":149},"Python","python","Learn Python with practical tutorials covering strings, lists, functions, exceptions, files, packages, virtual environments, modules, classes, and beginner programming concepts.",[],{"name":151,"slug":152,"description":153,"post_count":114,"subcategories":154},"Java","java","Learn Java with practical tutorials and examples for beginners. Explore Java syntax, variables, data types, classes, objects, methods, inheritance, exceptions, collections, and more with clear explanations and real code examples.",[],{"data":156},[157,477],{"id":114,"name":137,"slug":158,"icon":5,"icon_url":5,"short_description":159,"meta_title":160,"meta_description":161,"og_image":162,"locale":163,"subcategories":164},"html-tutorial","Welcome to our HTML Tutorial for Beginners, a complete guide designed to help you learn HTML from the ground up.\n\nHTML, which stands for HyperText Markup Language, is the standard language used to structure content on the web. Whether you want to become a web developer, build your own website, or continue learning CSS and JavaScript, understanding HTML is an essential first step.\n\nThis HTML course takes you through the fundamentals step by step, using simple explanations and practical examples. ","HTML Tutorial for Beginners - Learn HTML Step by Step","Learn HTML from scratch with our beginner-friendly HTML tutorial. Understand HTML tags, elements, forms, tables, links, images, semantic HTML and more with practical examples.","https:\u002F\u002Fwpfsharp.com\u002Fstorage\u002Fcourses\u002Fog\u002F01M2GK0XN45C0B937NF9XFAD4S.webp","en",[165,189,225,249,325,359,373,401,425,441],{"id":114,"name":166,"slug":167,"order_index":114,"topics":168},"HTML Fundamentals & Setup","html-fundamentals-setup",[169,172,175,178,182,186],{"id":114,"title":170,"slug":171,"order_index":114,"cornerstone":25,"reading_time_minutes":114},"HTML Introduction & History","html-introduction-and-history",{"id":34,"title":173,"slug":174,"order_index":114,"cornerstone":25,"reading_time_minutes":34},"HTML Editors & Environment Setup","html-editors-and-environment-setup",{"id":39,"title":176,"slug":177,"order_index":39,"cornerstone":25,"reading_time_minutes":34},"HTML Basic Syntax & Document Structure","html-basic-syntax-document-structure",{"id":179,"title":180,"slug":181,"order_index":179,"cornerstone":25,"reading_time_minutes":34},4,"HTML Elements & Tags Explained","html-elements-tags-explained",{"id":183,"title":184,"slug":185,"order_index":183,"cornerstone":25,"reading_time_minutes":34},5,"HTML Attributes (Global & Standard)","html-attributes-global-standard",{"id":24,"title":187,"slug":188,"order_index":24,"cornerstone":25,"reading_time_minutes":34},"Understanding the DOCTYPE & HTML5 Boilerplate","understanding-doctype-html5-boilerplate",{"id":34,"name":190,"slug":191,"order_index":34,"topics":192},"Text & Content Basics","text-content-basics",[193,197,201,205,209,213,217,221],{"id":194,"title":195,"slug":196,"order_index":194,"cornerstone":25,"reading_time_minutes":34},7,"HTML Headings (H1–H6) & SEO Best Practices","html-headings-h1-h6-seo-best-practices",{"id":198,"title":199,"slug":200,"order_index":198,"cornerstone":25,"reading_time_minutes":34},8,"HTML Paragraphs & Line Breaks","html-paragraphs-line-breaks",{"id":202,"title":203,"slug":204,"order_index":202,"cornerstone":25,"reading_time_minutes":114},9,"HTML Text Formatting (Bold, Italic, Mark, etc.)","html-text-formatting-bold-italic-mark",{"id":206,"title":207,"slug":208,"order_index":206,"cornerstone":25,"reading_time_minutes":34},10,"HTML Styles (Inline CSS Basics)","html-styles-inline-css-basics",{"id":210,"title":211,"slug":212,"order_index":210,"cornerstone":25,"reading_time_minutes":34},11,"HTML Quotations & Citations (blockquote, q, cite)","html-quotations-citations-blockquote-q-cite",{"id":214,"title":215,"slug":216,"order_index":214,"cornerstone":25,"reading_time_minutes":34},12,"HTML Comments (Best Practices)","html-comments-best-practices",{"id":218,"title":219,"slug":220,"order_index":218,"cornerstone":25,"reading_time_minutes":34},13,"HTML Colors (Names, HEX, RGB, HSL)","html-colors-names-hex-rgb-hsl",{"id":222,"title":223,"slug":224,"order_index":222,"cornerstone":25,"reading_time_minutes":34},14,"HTML & CSS Integration (Inline, Internal, External)","html-css-integration-inline-internal-external",{"id":39,"name":226,"slug":227,"order_index":39,"topics":228},"Links, Media & Navigation","links-media-navigation",[229,233,237,241,245],{"id":230,"title":231,"slug":232,"order_index":230,"cornerstone":25,"reading_time_minutes":34},15,"HTML Links (Anchor Tags & Hyperlinks)","html-links-anchor-tags-hyperlinks",{"id":234,"title":235,"slug":236,"order_index":234,"cornerstone":25,"reading_time_minutes":34},16,"HTML Images (Alt Text, Lazy Loading, Formats)","html-images-alt-text-lazy-loading-formats",{"id":238,"title":239,"slug":240,"order_index":238,"cornerstone":25,"reading_time_minutes":114},17,"HTML Favicon Setup","html-favicon-setup",{"id":242,"title":243,"slug":244,"order_index":242,"cornerstone":25,"reading_time_minutes":34},18,"HTML Page Title & Meta Tags (SEO Essentials)","html-page-title-meta-tags-seo-essentials",{"id":246,"title":247,"slug":248,"order_index":246,"cornerstone":25,"reading_time_minutes":34},19,"HTML File Paths (Absolute vs Relative)","html-file-paths-absolute-vs-relative",{"id":179,"name":250,"slug":251,"order_index":179,"topics":252},"Structuring Content","structuring-content",[253,258,263,268,273,277,281,285,289,293,297,301,305,309,313,317,321],{"id":254,"title":255,"slug":256,"order_index":257,"cornerstone":25,"reading_time_minutes":34},24,"HTML Tables Explained: Rows, Columns & Merging Cells","html-tables-rows-columns-merging-cells",20,{"id":259,"title":260,"slug":261,"order_index":262,"cornerstone":25,"reading_time_minutes":34},25,"HTML Lists: Ordered, Unordered & Description Lists","html-lists-ordered-unordered-description",21,{"id":264,"title":265,"slug":266,"order_index":267,"cornerstone":25,"reading_time_minutes":34},26,"HTML Block vs Inline Elements Explained","html-block-vs-inline-elements",22,{"id":269,"title":270,"slug":271,"order_index":272,"cornerstone":25,"reading_time_minutes":114},27,"HTML Div & Span: Generic Containers Explained","html-div-and-span-containers",23,{"id":274,"title":275,"slug":276,"order_index":254,"cornerstone":25,"reading_time_minutes":34},28,"HTML Classes vs ID: Selectors Explained","html-classes-vs-id-selectors-explained",{"id":278,"title":279,"slug":280,"order_index":259,"cornerstone":25,"reading_time_minutes":114},29,"HTML Iframes: Embedding External Content","html-iframes-embedding-content",{"id":282,"title":283,"slug":284,"order_index":264,"cornerstone":25,"reading_time_minutes":34},30,"HTML Head Element Deep Dive","html-head-element-deep-dive",{"id":286,"title":287,"slug":288,"order_index":269,"cornerstone":25,"reading_time_minutes":34},31,"HTML Layout Techniques: Header, Nav & Footer","html-layout-techniques-header-nav-footer",{"id":290,"title":291,"slug":292,"order_index":274,"cornerstone":25,"reading_time_minutes":34},32,"Responsive HTML Design: Mobile-First Approach","responsive-html-design-mobile-first-approach",{"id":294,"title":295,"slug":296,"order_index":278,"cornerstone":25,"reading_time_minutes":39},74,"HTML Semantic Elements (article, section, aside, nav)","html-semantic-elements-article-section-aside-nav",{"id":298,"title":299,"slug":300,"order_index":282,"cornerstone":25,"reading_time_minutes":34},75,"HTML Style Guide & Coding Conventions","html-style-guide-coding-conventions",{"id":302,"title":303,"slug":304,"order_index":286,"cornerstone":25,"reading_time_minutes":34},76,"HTML Entities & Special Characters","html-entities-special-characters",{"id":306,"title":307,"slug":308,"order_index":290,"cornerstone":25,"reading_time_minutes":114},77,"HTML Symbols","html-symbols",{"id":310,"title":311,"slug":312,"order_index":310,"cornerstone":25,"reading_time_minutes":114},33,"HTML Emojis 😀: How to Use Them in Web Pages","html-emojis-trending-guide",{"id":314,"title":315,"slug":316,"order_index":314,"cornerstone":25,"reading_time_minutes":34},34,"HTML Character Sets: UTF-8 & Encoding Explained","html-character-sets-utf-8-encoding",{"id":318,"title":319,"slug":320,"order_index":318,"cornerstone":25,"reading_time_minutes":114},35,"HTML URL Encoding Explained","html-url-encoding-explained",{"id":322,"title":323,"slug":324,"order_index":322,"cornerstone":25,"reading_time_minutes":114},36,"HTML vs XHTML: Key Differences","html-vs-xhtml-key-differences",{"id":194,"name":326,"slug":327,"order_index":183,"topics":328},"Forms & User Input","forms-user-input",[329,334,339,344,349,354],{"id":330,"title":331,"slug":332,"order_index":333,"cornerstone":25,"reading_time_minutes":34},49,"HTML Forms Introduction","html-forms-introduction",37,{"id":335,"title":336,"slug":337,"order_index":338,"cornerstone":25,"reading_time_minutes":114},50,"HTML Form Attributes (action, method, etc.)","html-form-attributes-action-method",38,{"id":340,"title":341,"slug":342,"order_index":343,"cornerstone":25,"reading_time_minutes":114},51,"HTML Form Elements (input, select, textarea, button)","html-form-elements-input-select-textarea-button",39,{"id":345,"title":346,"slug":347,"order_index":348,"cornerstone":25,"reading_time_minutes":34},52,"HTML Input Types (Modern Types: email, date, color, range)","html-input-types-modern-email-date-color-range",40,{"id":350,"title":351,"slug":352,"order_index":353,"cornerstone":25,"reading_time_minutes":34},53,"HTML Input Attributes (required, placeholder, pattern)","html-input-attributes-required-placeholder-pattern",41,{"id":355,"title":356,"slug":357,"order_index":358,"cornerstone":25,"reading_time_minutes":34},54,"HTML Form Validation (Client-Side)","html-form-validation-client-side",42,{"id":198,"name":360,"slug":361,"order_index":24,"topics":362},"Graphics & Visuals","graphics-visuals",[363,368],{"id":364,"title":365,"slug":366,"order_index":367,"cornerstone":25,"reading_time_minutes":39},55,"HTML Canvas (2D Drawing API) 🔥","html-canvas-2d-drawing-api",43,{"id":369,"title":370,"slug":371,"order_index":372,"cornerstone":25,"reading_time_minutes":39},56,"HTML SVG (Scalable Vector Graphics)","html-svg-scalable-vector-graphics",44,{"id":202,"name":374,"slug":375,"order_index":194,"topics":376},"Multimedia","multimedia",[377,382,387,392,397],{"id":378,"title":379,"slug":380,"order_index":381,"cornerstone":25,"reading_time_minutes":34},57,"HTML Media Overview","html-media-overview",45,{"id":383,"title":384,"slug":385,"order_index":386,"cornerstone":25,"reading_time_minutes":34},58,"HTML Video Embedding (Native Player)","html-video-embedding-native-player",46,{"id":388,"title":389,"slug":390,"order_index":391,"cornerstone":25,"reading_time_minutes":34},59,"HTML Audio Embedding","html-audio-embedding",47,{"id":393,"title":394,"slug":395,"order_index":396,"cornerstone":25,"reading_time_minutes":34},60,"HTML Plug-ins (Object & Embed Tags)","html-plugins-object-embed-tags",48,{"id":398,"title":399,"slug":400,"order_index":330,"cornerstone":25,"reading_time_minutes":34},61,"Embedding YouTube Videos in HTML","embedding-youtube-videos-in-html",{"id":206,"name":402,"slug":403,"order_index":198,"topics":404},"HTML5 Web APIs (Advanced\u002FTrending)","html5-web-apis-advancedtrending",[405,409,413,417,421],{"id":406,"title":407,"slug":408,"order_index":335,"cornerstone":25,"reading_time_minutes":34},62,"HTML Geolocation API","html-geolocation-api",{"id":410,"title":411,"slug":412,"order_index":340,"cornerstone":25,"reading_time_minutes":34},63,"HTML Drag & Drop API","html-drag-and-drop-api",{"id":414,"title":415,"slug":416,"order_index":345,"cornerstone":25,"reading_time_minutes":34},64,"HTML Web Storage (localStorage & sessionStorage)","html-web-storage-localstorage-sessionstorage",{"id":418,"title":419,"slug":420,"order_index":350,"cornerstone":25,"reading_time_minutes":34},65,"HTML Web Workers (Background Processing)","html-web-workers-background-processing",{"id":422,"title":423,"slug":424,"order_index":355,"cornerstone":25,"reading_time_minutes":34},66,"HTML Server-Sent Events (SSE)","html-server-sent-events-sse",{"id":210,"name":426,"slug":427,"order_index":202,"topics":428},"Accessibility & Best Practices (High-Demand  Skill) �","accessibility-best-practices-high-demand-skill",[429,433,437],{"id":430,"title":431,"slug":432,"order_index":364,"cornerstone":25,"reading_time_minutes":34},67,"HTML Accessibility (ARIA, Screen Readers)","html-accessibility-aria-screen-readers",{"id":434,"title":435,"slug":436,"order_index":369,"cornerstone":25,"reading_time_minutes":34},68,"Writing Semantic & SEO-Friendly HTML","writing-semantic-and-seo-friendly-html",{"id":438,"title":439,"slug":440,"order_index":378,"cornerstone":25,"reading_time_minutes":34},69,"HTML Performance Optimization Basics","html-performance-optimization-basics",{"id":214,"name":442,"slug":443,"order_index":206,"topics":444},"Reference & Practice","reference-practice",[445,449,453,457,461,465,469,473],{"id":446,"title":447,"slug":448,"order_index":114,"cornerstone":25,"reading_time_minutes":34},70,"HTML Tag List (Full Reference)","html-tag-list-full-reference",{"id":450,"title":451,"slug":452,"order_index":34,"cornerstone":25,"reading_time_minutes":34},71,"HTML Global Attributes Reference","html-global-attributes-reference",{"id":454,"title":455,"slug":456,"order_index":39,"cornerstone":25,"reading_time_minutes":34},72,"HTML Events Reference","html-events-reference",{"id":458,"title":459,"slug":460,"order_index":179,"cornerstone":25,"reading_time_minutes":34},73,"HTML Browser Support & Compatibility","html-browser-support-compatibility",{"id":462,"title":463,"slug":464,"order_index":183,"cornerstone":25,"reading_time_minutes":34},78,"HTML Doctypes Reference","html-doctypes-reference",{"id":466,"title":467,"slug":468,"order_index":24,"cornerstone":25,"reading_time_minutes":34},79,"HTTP Methods & Messages (Basics for Forms\u002FAPIs)","http-methods-messages-basics",{"id":470,"title":471,"slug":472,"order_index":194,"cornerstone":25,"reading_time_minutes":39},80,"HTML Interview Preparation (Top Q&A)","html-interview-preparation-top-qa",{"id":474,"title":475,"slug":476,"order_index":198,"cornerstone":25,"reading_time_minutes":114},81,"HTML Quiz & Practice Exercises","html-quiz-practice-exercises",{"id":34,"name":13,"slug":14,"icon":5,"icon_url":5,"short_description":478,"meta_title":479,"meta_description":480,"og_image":5,"locale":163,"subcategories":481},"Master CSS from basics to advanced. Learn styling, layouts, Flexbox, Grid, and responsive design with practical examples.","CSS Course - Learn CSS from Scratch to Advanced","Learn CSS (Cascading Style Sheets) step by step. Master selectors, layouts, Flexbox, Grid, animations, and responsive web design with hands-on examples.",[482,501,529,555,570,606,638,670,702,734,762,790,822,850],{"id":218,"name":483,"slug":484,"order_index":485,"topics":486},"CSS Fundamentals & Setup","css-fundamentals-setup",0,[487,491,492,493,497],{"id":488,"title":489,"slug":490,"order_index":114,"cornerstone":25,"reading_time_minutes":179},82,"CSS Introduction & History: What Is CSS and Why It Matters","css-introduction-and-history",{"id":124,"title":126,"slug":125,"order_index":34,"cornerstone":25,"reading_time_minutes":179},{"id":128,"title":130,"slug":129,"order_index":39,"cornerstone":25,"reading_time_minutes":39},{"id":494,"title":495,"slug":496,"order_index":179,"cornerstone":25,"reading_time_minutes":39},85,"CSS Comments & Code Formatting Best Practices","css-comments-and-code-formatting",{"id":498,"title":499,"slug":500,"order_index":183,"cornerstone":25,"reading_time_minutes":183},86,"Browser DevTools for CSS: Inspect, Debug & Edit Styles Live","browser-devtools-for-css",{"id":269,"name":502,"slug":503,"order_index":485,"topics":504},"Item Properties","item-properties",[505,509,513,517,521,525],{"id":506,"title":507,"slug":508,"order_index":183,"cornerstone":25,"reading_time_minutes":179},176,"CSS flex-direction: Row, Column, Reverse Explained with Examples","css-flex-direction-qYSHRj",{"id":510,"title":511,"slug":512,"order_index":24,"cornerstone":25,"reading_time_minutes":179},177,"CSS flex-wrap and flex-flow: Complete Guide with Examples","css-flex-wrap-and-flex-flow-iZaSUa",{"id":514,"title":515,"slug":516,"order_index":194,"cornerstone":25,"reading_time_minutes":179},178,"CSS justify-content: Align Flex Items on the Main Axis","css-justify-content-VlB71x",{"id":518,"title":519,"slug":520,"order_index":198,"cornerstone":25,"reading_time_minutes":179},179,"CSS align-items: Align Flex Items on the Cross Axis","css-align-items-H3MFZg",{"id":522,"title":523,"slug":524,"order_index":202,"cornerstone":25,"reading_time_minutes":39},180,"CSS align-content: Align Multiple Flex Lines Explained","css-align-content-6815Ey",{"id":526,"title":527,"slug":528,"order_index":206,"cornerstone":25,"reading_time_minutes":39},181,"CSS gap, row-gap and column-gap in Flexbox and Grid","css-gap",{"id":264,"name":530,"slug":531,"order_index":485,"topics":532},"Container Properties","container-properties",[533,537,541,544,547,551],{"id":534,"title":535,"slug":536,"order_index":183,"cornerstone":25,"reading_time_minutes":179},170,"CSS flex-direction: row, row-reverse, column & column-reverse Explained","css-flex-direction",{"id":538,"title":539,"slug":540,"order_index":24,"cornerstone":25,"reading_time_minutes":179},171,"CSS flex-wrap & flex-flow: Wrap Flex Items the Right Way","css-flex-wrap-and-flex-flow",{"id":542,"title":515,"slug":543,"order_index":194,"cornerstone":25,"reading_time_minutes":179},172,"css-justify-content",{"id":545,"title":519,"slug":546,"order_index":198,"cornerstone":25,"reading_time_minutes":39},173,"css-align-items",{"id":548,"title":549,"slug":550,"order_index":202,"cornerstone":25,"reading_time_minutes":39},174,"CSS align-content: Space and Align Multiple Flex Lines","css-align-content",{"id":552,"title":553,"slug":554,"order_index":206,"cornerstone":25,"reading_time_minutes":179},175,"CSS gap, row-gap & column-gap in Flexbox: Modern Spacing","css-flexbox-gap",{"id":259,"name":16,"slug":17,"order_index":485,"topics":556},[557,561,565,566],{"id":558,"title":559,"slug":560,"order_index":114,"cornerstone":25,"reading_time_minutes":198},166,"Why Layout Evolved: Tables, Floats, Flexbox and Grid","why-layout-evolved-tables-floats-flexbox-grid",{"id":562,"title":563,"slug":564,"order_index":34,"cornerstone":25,"reading_time_minutes":24},167,"Flexbox Introduction and Mental Model","flexbox-introduction-and-mental-model",{"id":8,"title":9,"slug":10,"order_index":39,"cornerstone":25,"reading_time_minutes":24},{"id":567,"title":568,"slug":569,"order_index":179,"cornerstone":25,"reading_time_minutes":194},169,"Main Axis vs Cross Axis and the DevTools Flex Inspector","main-axis-vs-cross-axis-devtools-flex-inspector",{"id":222,"name":571,"slug":572,"order_index":114,"topics":573},"Selectors & the Cascade","selectors-the-cascade",[574,578,582,586,590,594,598,602],{"id":575,"title":576,"slug":577,"order_index":24,"cornerstone":25,"reading_time_minutes":179},87,"CSS Basic Selectors: Type, Class, ID, Universal & Grouping","css-basic-selectors",{"id":579,"title":580,"slug":581,"order_index":194,"cornerstone":25,"reading_time_minutes":179},88,"CSS Combinators: Descendant, Child, Adjacent & General Sibling","css-combinators",{"id":583,"title":584,"slug":585,"order_index":198,"cornerstone":25,"reading_time_minutes":179},89,"CSS Attribute Selectors: [attr], ^=, $=, *= and More","css-attribute-selectors",{"id":587,"title":588,"slug":589,"order_index":202,"cornerstone":25,"reading_time_minutes":24},90,"CSS Pseudo-classes: :hover, :focus, :nth-child & Modern Selectors","css-pseudo-classes",{"id":591,"title":592,"slug":593,"order_index":206,"cornerstone":25,"reading_time_minutes":183},91,"CSS Pseudo-elements (::before, ::after)","css-pseudo-elements-before-after",{"id":595,"title":596,"slug":597,"order_index":210,"cornerstone":25,"reading_time_minutes":183},92,"Modern CSS Selectors: :is(), :where(), :has()","modern-css-selectors-is-where-has",{"id":599,"title":600,"slug":601,"order_index":214,"cornerstone":25,"reading_time_minutes":179},93,"CSS Specificity Explained","css-specificity-explained",{"id":603,"title":604,"slug":605,"order_index":218,"cornerstone":25,"reading_time_minutes":183},94,"Cascade, Inheritance & !important","css-cascade-inheritance-important",{"id":230,"name":607,"slug":608,"order_index":34,"topics":609},"Colors, Backgrounds & Effects","colors-backgrounds-effects",[610,614,618,622,626,630,634],{"id":611,"title":612,"slug":613,"order_index":222,"cornerstone":25,"reading_time_minutes":183},95,"CSS Colors (HEX, RGB, HSL, OKLCH)","css-colors-hex-rgb-hsl-oklch",{"id":615,"title":616,"slug":617,"order_index":230,"cornerstone":25,"reading_time_minutes":179},96,"CSS Backgrounds","css-backgrounds",{"id":619,"title":620,"slug":621,"order_index":234,"cornerstone":25,"reading_time_minutes":183},97,"CSS Gradients (Linear, Radial, Conic)","css-gradients-linear-radial-conic",{"id":623,"title":624,"slug":625,"order_index":238,"cornerstone":25,"reading_time_minutes":183},98,"CSS Borders, Outlines & Rounded Corners","css-borders-outlines-rounded-corners",{"id":627,"title":628,"slug":629,"order_index":242,"cornerstone":25,"reading_time_minutes":24},99,"CSS Box Shadow & Text Shadow","css-box-shadow-text-shadow",{"id":631,"title":632,"slug":633,"order_index":246,"cornerstone":25,"reading_time_minutes":183},100,"CSS Opacity & Blend Modes","css-opacity-blend-modes",{"id":635,"title":636,"slug":637,"order_index":257,"cornerstone":25,"reading_time_minutes":24},101,"CSS Filters & backdrop-filter (Glassmorphism)","css-filters-backdrop-filter-glassmorphism",{"id":234,"name":639,"slug":640,"order_index":39,"topics":641},"Box Model & Spacing","box-model-spacing",[642,646,650,654,658,662,666],{"id":643,"title":644,"slug":645,"order_index":262,"cornerstone":25,"reading_time_minutes":194},102,"The CSS Box Model: Content, Padding, Border and Margin","css-box-model",{"id":647,"title":648,"slug":649,"order_index":267,"cornerstone":25,"reading_time_minutes":194},103,"CSS Margin and Margin Collapse","css-margin-and-margin-collapse",{"id":651,"title":652,"slug":653,"order_index":272,"cornerstone":25,"reading_time_minutes":24},104,"CSS Padding: Shorthand, Percentages and Best Practices","css-padding",{"id":655,"title":656,"slug":657,"order_index":254,"cornerstone":25,"reading_time_minutes":202},105,"CSS Width, Height, Min-Width, Max-Width, Min-Height & Max-Height","css-width-height-min-max",{"id":659,"title":660,"slug":661,"order_index":259,"cornerstone":25,"reading_time_minutes":183},106,"CSS box-sizing: content-box vs border-box","css-box-sizing",{"id":663,"title":664,"slug":665,"order_index":264,"cornerstone":25,"reading_time_minutes":194},107,"CSS Overflow: hidden, scroll, auto, clip and Text Truncation","css-overflow",{"id":667,"title":668,"slug":669,"order_index":269,"cornerstone":25,"reading_time_minutes":194},108,"CSS Units: px, rem, em, %, vw, vh and dvh","css-units",{"id":238,"name":671,"slug":672,"order_index":179,"topics":673},"Typography & Text","typography-text",[674,678,682,686,690,694,698],{"id":675,"title":676,"slug":677,"order_index":274,"cornerstone":25,"reading_time_minutes":194},109,"CSS Text Properties: Alignment, Spacing, Decoration and Wrapping","css-text-properties",{"id":679,"title":680,"slug":681,"order_index":278,"cornerstone":25,"reading_time_minutes":194},110,"CSS Fonts and font-family: Font Stacks, Weights and System Fonts","css-fonts-font-family",{"id":683,"title":684,"slug":685,"order_index":282,"cornerstone":25,"reading_time_minutes":194},111,"Web Fonts: Google Fonts, @font-face and Variable Fonts","web-fonts",{"id":687,"title":688,"slug":689,"order_index":286,"cornerstone":25,"reading_time_minutes":194},112,"CSS Text Effects: text-wrap balance, line-clamp, Ellipsis and More","css-text-effects",{"id":691,"title":692,"slug":693,"order_index":290,"cornerstone":25,"reading_time_minutes":198},113,"Styling Links","styling-links-css",{"id":695,"title":696,"slug":697,"order_index":310,"cornerstone":25,"reading_time_minutes":194},114,"Styling Lists & Tables","styling-lists-and-tables-css",{"id":699,"title":700,"slug":701,"order_index":314,"cornerstone":25,"reading_time_minutes":206},115,"Icons (SVG & Icon Fonts)","icons-svg-and-icon-fonts",{"id":242,"name":703,"slug":704,"order_index":183,"topics":705},"Display, Position & Layout Basics","display-position-layout-basics",[706,710,714,718,722,726,730],{"id":707,"title":708,"slug":709,"order_index":318,"cornerstone":25,"reading_time_minutes":194},116,"Display & Inline-block","display-and-inline-block",{"id":711,"title":712,"slug":713,"order_index":322,"cornerstone":25,"reading_time_minutes":24},117,"Position (relative, absolute, fixed, sticky)","position-relative-absolute-fixed-sticky",{"id":715,"title":716,"slug":717,"order_index":333,"cornerstone":25,"reading_time_minutes":24},118,"Z-index & Stacking Contexts","z-index-and-stacking-contexts",{"id":719,"title":720,"slug":721,"order_index":338,"cornerstone":25,"reading_time_minutes":183},119,"Float & Clear (Legacy, and Why to Avoid It)","float-and-clear",{"id":723,"title":724,"slug":725,"order_index":343,"cornerstone":25,"reading_time_minutes":24},120,"Centering Techniques","centering-techniques",{"id":727,"title":728,"slug":729,"order_index":348,"cornerstone":25,"reading_time_minutes":194},121,"aspect-ratio & object-fit","aspect-ratio-and-object-fit",{"id":731,"title":732,"slug":733,"order_index":353,"cornerstone":25,"reading_time_minutes":198},122,"Website Layout Basics","website-layout-basics",{"id":257,"name":735,"slug":736,"order_index":24,"topics":737},"The Modern CSS Toolkit","the-modern-css-toolkit",[738,742,746,750,754,758],{"id":739,"title":740,"slug":741,"order_index":358,"cornerstone":25,"reading_time_minutes":198},129,"CSS Variables (Custom Properties)","css-variables-custom-properties",{"id":743,"title":744,"slug":745,"order_index":367,"cornerstone":25,"reading_time_minutes":198},130,"Math Functions (calc, min, max, clamp)","math-functions-calc-min-max-clamp",{"id":747,"title":748,"slug":749,"order_index":372,"cornerstone":25,"reading_time_minutes":194},131,"Native CSS Nesting","native-css-nesting",{"id":751,"title":752,"slug":753,"order_index":381,"cornerstone":25,"reading_time_minutes":194},132,"Cascade Layers (@layer)","cascade-layers-at-layer",{"id":755,"title":756,"slug":757,"order_index":386,"cornerstone":25,"reading_time_minutes":202},133,"Dark Mode (prefers-color-scheme, light-dark())","dark-mode-prefers-color-scheme-light-dark",{"id":759,"title":760,"slug":761,"order_index":391,"cornerstone":25,"reading_time_minutes":198},134,"CSS Reset & Normalize","css-reset-and-normalize",{"id":262,"name":763,"slug":764,"order_index":194,"topics":765},"Responsive Design","responsive-design",[766,770,774,778,782,786],{"id":767,"title":768,"slug":769,"order_index":396,"cornerstone":25,"reading_time_minutes":202},135,"Mobile-First & the Viewport","mobile-first-and-the-viewport",{"id":771,"title":772,"slug":773,"order_index":330,"cornerstone":25,"reading_time_minutes":198},136,"Media Queries","media-queries",{"id":775,"title":776,"slug":777,"order_index":335,"cornerstone":25,"reading_time_minutes":198},137,"Responsive Images & Video","responsive-images-and-video",{"id":779,"title":780,"slug":781,"order_index":340,"cornerstone":25,"reading_time_minutes":202},138,"Fluid Typography with clamp()","fluid-typography-with-clamp",{"id":783,"title":784,"slug":785,"order_index":345,"cornerstone":25,"reading_time_minutes":202},139,"Container Queries","container-queries",{"id":787,"title":788,"slug":789,"order_index":350,"cornerstone":25,"reading_time_minutes":214},140,"Responsive Navigation Pattern","responsive-navigation-pattern",{"id":267,"name":791,"slug":792,"order_index":198,"topics":793},"Transitions & Animation","transitions-animation",[794,798,802,806,810,814,818],{"id":795,"title":796,"slug":797,"order_index":355,"cornerstone":25,"reading_time_minutes":183},141,"CSS Transitions: Smooth State Changes with transition, @starting-style and allow-discrete","css-transitions",{"id":799,"title":800,"slug":801,"order_index":364,"cornerstone":25,"reading_time_minutes":179},142,"CSS 2D Transforms: translate, rotate, scale, skew and transform-origin","css-2d-transforms",{"id":803,"title":804,"slug":805,"order_index":369,"cornerstone":25,"reading_time_minutes":183},143,"CSS 3D Transforms: perspective, preserve-3d, rotateX\u002FY and backface-visibility","css-3d-transforms",{"id":807,"title":808,"slug":809,"order_index":378,"cornerstone":25,"reading_time_minutes":183},144,"CSS Keyframe Animations: @keyframes, animation shorthand, fill-mode and @property","css-keyframe-animations",{"id":811,"title":812,"slug":813,"order_index":383,"cornerstone":25,"reading_time_minutes":183},145,"CSS Scroll-Driven Animations: animation-timeline, scroll() and view()","css-scroll-driven-animations",{"id":815,"title":816,"slug":817,"order_index":388,"cornerstone":25,"reading_time_minutes":183},146,"CSS View Transitions API: Progressive Enhancement for Page and State Animations","css-view-transitions",{"id":819,"title":820,"slug":821,"order_index":393,"cornerstone":25,"reading_time_minutes":24},147,"Motion Accessibility and Performance: prefers-reduced-motion, will-change and Smooth 60fps Animations","motion-accessibility-prefers-reduced-motion-performance",{"id":272,"name":823,"slug":824,"order_index":202,"topics":825},"UI Components","ui-components",[826,830,834,838,842,846],{"id":827,"title":828,"slug":829,"order_index":398,"cornerstone":25,"reading_time_minutes":24},148,"CSS Buttons: Variants, States, Sizes and Accessible Button Design","css-buttons",{"id":831,"title":832,"slug":833,"order_index":406,"cornerstone":25,"reading_time_minutes":24},149,"CSS Card Component: Layouts with Flexbox, Grid, Container Queries and Subgrid","css-cards",{"id":835,"title":836,"slug":837,"order_index":410,"cornerstone":25,"reading_time_minutes":194},150,"CSS Navbar and Dropdown Menus: Responsive, Sticky and Accessible Navigation","css-navbar-dropdowns",{"id":839,"title":840,"slug":841,"order_index":414,"cornerstone":25,"reading_time_minutes":24},151,"HTML and CSS Forms and Inputs: Styled, Accessible and Validated Form Controls","css-forms-inputs",{"id":843,"title":844,"slug":845,"order_index":418,"cornerstone":25,"reading_time_minutes":24},152,"CSS Tooltips and Popovers: Popover API, Anchor Positioning and Accessible Overlays","css-tooltips-popovers",{"id":847,"title":848,"slug":849,"order_index":422,"cornerstone":25,"reading_time_minutes":24},153,"Pagination and Breadcrumbs: Accessible Navigation Patterns with HTML, CSS and Schema","pagination-breadcrumbs",{"id":254,"name":851,"slug":852,"order_index":206,"topics":853},"Pro Practices & Wrap-up","pro-practices-wrap-up",[854,858,862,866,870,874],{"id":855,"title":856,"slug":857,"order_index":430,"cornerstone":25,"reading_time_minutes":34},160,"CSS Architecture & BEM","css-architecture-bem-ZRlwjD",{"id":859,"title":860,"slug":861,"order_index":434,"cornerstone":25,"reading_time_minutes":34},161,"CSS Performance","css-performance-TAnsqs",{"id":863,"title":864,"slug":865,"order_index":438,"cornerstone":25,"reading_time_minutes":34},162,"CSS Accessibility (focus, contrast)","css-accessibility-focus-contrast-pgFUSF",{"id":867,"title":868,"slug":869,"order_index":446,"cornerstone":25,"reading_time_minutes":34},163,"Debugging Common CSS Bugs","debugging-common-css-bugs-iHzOV3",{"id":871,"title":872,"slug":873,"order_index":450,"cornerstone":25,"reading_time_minutes":34},164,"Sass vs Native CSS","sass-vs-native-css-lV2nqW",{"id":875,"title":876,"slug":877,"order_index":454,"cornerstone":25,"reading_time_minutes":34},165,"CSS Interview Q&A & Cheat Sheet","css-interview-qa-cheat-sheet-JslzGp"]