{"id":10723,"date":"2011-11-14T21:01:17","date_gmt":"2011-11-14T13:01:17","guid":{"rendered":"https:\/\/www.hongkiat.com\/blog\/?p=10723"},"modified":"2025-04-04T00:43:53","modified_gmt":"2025-04-03T16:43:53","slug":"breadcrumb-menu-css3","status":"publish","type":"post","link":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/","title":{"rendered":"Coding a Graceful Breadcrumb Navigation Menu in CSS3"},"content":{"rendered":"<p>Navigation menus and links are possibly the most important interface elements in a web layout. These are the only outlets for users to <strong>travel between pages<\/strong> and interact with all the content you\u2019ve created. <a href=\"https:\/\/www.hongkiat.com\/blog\/breadcrumb-navigation-examined-best-practices-examples\/\">Breadcrumb<\/a> offers similar functionality with the added benefit of <strong>tracking your current position<\/strong>. You\u2019ll be able to <strong>display all the previous link paths<\/strong> as the user traverses your site hierarchy.<\/p>\n<p>In this tutorial, we\u2019ll be creating a brilliant breadcrumb navigation menu with some CSS3 effects. This has been tested to work in all major CSS3-compliant browsers; even older browsers that don\u2019t support CSS3 will still render it properly in most cases.<\/p>\n<p>Before we dive into code, we\u2019ll talk a bit about the functionality of our breadcrumb. Full tutorial at a jump!<\/p>\n<h2>Offering the Trail<\/h2>\n<p>A breadcrumb trail is no more complex than any other menu. Our styles will utilize many more complex CSS properties than most examples, yet our bare-bones template is still in place to guide users from one page to another.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/css3-breadcrumb\/gmail-help.jpg\" alt=\"gmail help\" width=\"500\" height=\"218\"><\/figure>\n<p>In this example, we will be recreating a similar style as the Google support menu. You can <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/gmail.com\/support\/bin\/answer.py?hl=en&ctx=mail&answer=1355569\">view their menu<\/a> on the Gmail support page to get an idea of where we\u2019re heading. Ultimately, we want to <strong>provide our best user experience for all users<\/strong>, regardless of their Operating System or browser software; thus, I\u2019ve built <strong>2 different code examples to support graceful degradation among older browsers<\/strong>.<\/p>\n<p>The first is built using <strong>custom background images<\/strong> and <strong>proper CSS alignments<\/strong>. All of the hover events and active events are pre-built with just a few CSS styles, but users who have images turned off will not be able to experience these effects! This is why I\u2019ve also constructed a similar-looking menu with CSS gradients, rounded corners, and box shadows.<\/p>\n<p>If you\u2019re nervous about supporting both styles, you can choose between them for your own site. Most visitors will be using images by default, but dig through your <a href=\"https:\/\/www.hongkiat.com\/blog\/real-time-web-analytics-services-best-of\/\">website analytics tool<\/a> if you want more precise visitor data.<\/p>\n<p>Enough words, <strong>let\u2019s jump into the project<\/strong>! We\u2019ll start by constructing the basic HTML framework and move into different styling effects. First of all, <strong>you need to download the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/assets.hongkiat.com\/uploads\/css3-breadcrumb\/bg-crumbs.png\">image<\/a><\/strong> required for the project.<\/p>\n<h2>Bare-Bones HTML<\/h2>\n<p>I\u2019m starting my document with the <strong>standard <a href=\"https:\/\/www.hongkiat.com\/blog\/html5-template-generators-frameworks-tools\/\">HTML5 page template<\/a><\/strong>. This includes the default doctype, linked CSS, and all the basic elements. I\u2019ve added the code below if you want to start your own document this way. Note that it shouldn\u2019t affect how your breadcrumb is displayed, so feel free to use your own page template if you wish.<\/p>\n<pre>\r\n&lt;!DOCTYPE html&gt;\r\n&lt;html lang=\"en\"&gt;\r\n&lt;head&gt;\r\n    &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=utf-8\" \/&gt;\r\n    &lt;title&gt;Default Page&lt;\/title&gt;\r\n    &lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"css\/style.css\" \/&gt;\r\n&lt;\/head&gt;\r\n\r\n&lt;body&gt;\r\n    \r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n\r\n&lt;p&gt;I'll split the code into two different blocks. The First block with images is built with a slightly different manner, followed by our menu without images. Each set is given its own &lt;strong&gt;ID&lt;\/strong&gt; so we can identify the content much easier. If you're also a fan of jQuery you can use the &lt;strong&gt;#ID selector&lt;\/strong&gt; to manipulate all the internal DOM elements.&lt;\/p&gt;\r\n\r\n&lt;!-- with images --&gt;\r\n&lt;div id=\"breadcrumb\"&gt;\r\n    &lt;ul class=\"crumbs\"&gt;\r\n        &lt;li class=\"first\"&gt;&lt;a href=\"#\" style=\"z-index:9;\"&gt;&lt;span&gt;&lt;\/span&gt;Blog Home&lt;\/a&gt;&lt;\/li&gt;\r\n        &lt;li&gt;&lt;a href=\"#\" style=\"z-index:8;\"&gt;Archives&lt;\/a&gt;&lt;\/li&gt;\r\n        &lt;li&gt;&lt;a href=\"#\" style=\"z-index:7;\"&gt;2011 Writing&lt;\/a&gt;&lt;\/li&gt;\r\n        &lt;li&gt;&lt;a href=\"#\" style=\"z-index:6;\"&gt;Tips for jQuery Development in HTML5&lt;\/a&gt;&lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n&lt;\/div&gt;\r\n\r\n <\/pre>\n<p>First, we have a <strong>containing div<\/strong> with the id \u201c<strong><em>breadcrumb<\/em><\/strong>\u201c. In the demo file, I\u2019ve used this to separate our code and move it across the page with some added margins. You could remove this outer div, but you\u2019ll have to re-style everything to fit the new template. It really doesn\u2019t hurt to leave a container since you\u2019ll be able to control the positioning much easier.<\/p>\n<p>Internally, I\u2019ve built the breadcrumbs using an unordered list. There are so many unique ways to customize styled HTML lists, and breadcrumbs are just one of them. You may notice I\u2019ve given the initial list item a <strong>class<\/strong> of \u201c<strong><em>first<\/em><\/strong>\u201c. This is needed for some extra padding to keep the menu items in line. Additionally, a small <strong>span block<\/strong> is added so we have a proper left border that doesn\u2019t overlap the background image.<\/p>\n<p>Additionally, each anchor link is planted with a decreasing number for the <strong>z-index<\/strong> property. Using images, we\u2019ll need to <strong>have each of our links overlap<\/strong> to display the breadcrumb arrow properly. The easiest way to accomplish this is <strong>adjusting z-index<\/strong> so each link overlays the next. I started with <strong><em>9<\/em><\/strong> and worked down from there, but if you have more links in your menu, just begin with a higher integer.<\/p>\n<h2>Menu Without Images<\/h2>\n<p>To <strong>gracefully degrade our breadcrumb<\/strong>, we need a secondary set of HTML list items. If you\u2019re trying to fall back on a single navigation, you could use jQuery to detect the browser agent and apply an ID accordingly. Unfortunately, this isn\u2019t always reliable (for certain mobile users, for example). Another solution is to <strong>include an IE-specific stylesheet<\/strong> and <strong>hide or show whichever menu works best<\/strong> \u2013 but of course, this option is for Internet Explorer only.<\/p>\n<pre>\r\n&lt;!-- graceful degrade --&gt;\r\n&lt;div id=\"breadcrumb2\"&gt;\r\n    &lt;ul class=\"crumbs2\"&gt;\r\n        &lt;li class=\"first\"&gt;&lt;a href=\"#\"&gt;Blog Home&lt;\/a&gt;&lt;\/li&gt;\r\n        &lt;li&gt;&lt;a href=\"#\"&gt;Archives&lt;\/a&gt;&lt;\/li&gt;\r\n        &lt;li&gt;&lt;a href=\"#\"&gt;2011 Writing&lt;\/a&gt;&lt;\/li&gt;\r\n        &lt;li class=\"last\"&gt;&lt;a href=\"#\"&gt;Tips for jQuery Development in HTML5&lt;\/a&gt;&lt;\/li&gt; \r\n    &lt;\/ul&gt;\r\n&lt;\/div&gt;\r\n\r\n <\/pre>\n<p><code>breadcrumb2<\/code> is our new ID used to target the menu without images. Keeping with this pattern, I\u2019ve used <code>crumbs2<\/code> as the class for the unordered list. Note that the reason we\u2019re using <strong>classes<\/strong> is for its <strong>simplicity to duplicate these menus<\/strong>, so when you want a few different breadcrumbs on your page, with these classes this won\u2019t ever become a problem.<\/p>\n<p>We have kept the <code>.first<\/code> class but additionally appended <code>.last<\/code> class onto the final list item. Without images, we cannot duplicate the arrows for each item of the navigation menu, thus I\u2019ve used some <strong>rounded corners<\/strong> to spice up the secondary menu. <code>.first<\/code> class and <code>.last<\/code> manipulate the border radius at the very edges of our menu to create a really cool web 2.0-looking style.<\/p>\n<h2>CSS Sliding Background Images<\/h2>\n<p>For some of the simpler effects, I\u2019ve coupled both breadcrumbs together when building properties. This is useful as it not only saves some space, but when going back to edit styles it\u2019s <strong>easier to customize<\/strong> your own look.<\/p>\n<p>For both <code>#breadcrumb<\/code> and <code>#breadcrumb2<\/code>, I\u2019ve set <code>list-style: none;<\/code> so all internal items will not have markers. You could leave these if you like the effect, but I found HTML becomes tiresome to work around and it\u2019s a lot easier to create new icons. So let\u2019s start with our <code>.crumbs<\/code> class.<\/p>\n<pre>\r\n.crumbs {\r\n    display: block;\r\n}\r\n\r\n.crumbs li {\r\n    display: inline;\r\n}\r\n\r\n.crumbs li.first {\r\n    padding-left: 8px;\r\n}\r\n\r\n.crumbs li a,\r\n.crumbs li a:link,\r\n.crumbs li a:visited {\r\n    color: #666;\r\n    display: block;\r\n    float: left;\r\n    font-size: 12px;\r\n    margin-left: -13px;\r\n    padding: 7px 17px 11px 25px;\r\n    position: relative;\r\n    text-decoration: none;\r\n}\r\n\r\n.crumbs li a {\r\n    background-image: url('..\/img\/bg-crumbs.png');\r\n    background-repeat: no-repeat;\r\n    background-position: 100% 0;\r\n    position: relative;\r\n}\r\n\r\n.crumbs li a:hover {\r\n    color: #333;\r\n    background-position: 100% -48px;\r\n    cursor: pointer;\r\n}\r\n\r\n.crumbs li a:active {\r\n    color: #333;\r\n    background-position: 100% -96px;\r\n}\r\n\r\n.crumbs li.first a span {\r\n    height: 29px;\r\n    width: 3px;\r\n    border-left: 1px solid #d9d9d9;\r\n    position: absolute;\r\n    top: 0px;\r\n    left: 0px;\r\n}\r\n\r\n <\/pre>\n<p>We <strong>set our unordered list to <em>block<\/em><\/strong> so nothing else creeps up around the area. Notice the list items are <strong>displayed inline<\/strong> while each anchor link is given much more room to spread out. We want all of the space in our menu to be clickable so this requires <strong>building our anchors as block elements<\/strong>.<\/p>\n<p>I\u2019ve used an image called <strong><em>bg-crumbs.png<\/em><\/strong> for the background. This is known as a simple sprite sheet in CSS, or alternatively a <strong>sliding doors<\/strong> technique. This means when the user hovers or clicks on a link we shift the background position to display the updated style. This single image contains all 3 of the designs we need to create the breadcrumb backgrounds at different positions, so we can use the <code>background-position<\/code> property to relocate based on user interaction.<\/p>\n<h2>Custom Effects with CSS3<\/h2>\n<p>The original breadcrumb design is much simpler to create. This is noticeable since a lot of the CSS properties are more basic than you would imagine, but now we begin to focus on duplicating these effects with only CSS3!<\/p>\n<p>The individual styles take up a lot of space so I\u2019ll break them down into 2 code blocks.<\/p>\n<pre>\r\n.crumbs2 {\r\n    display: block;\r\n    margin-left: 27px;\r\n    padding: 0;\r\n    padding-top: 10px;\r\n}\r\n\r\n.crumbs2 li {\r\n    display: inline;\r\n}\r\n\r\n.crumbs2 li a,\r\n.crumbs2 li a:link,\r\n.crumbs2 li a:visited {\r\n    color: #666;\r\n    display: block;\r\n    float: left;\r\n    font-size: 12px;\r\n    padding: 7px 16px 7px 19px;\r\n    position: relative;\r\n    text-decoration: none;\r\n    border: 1px solid #d9d9d9;\r\n    border-right-width: 0px;\r\n}\r\n\r\n.crumbs2 li a {\r\n    background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.45, rgb(241, 241, 241)), color-stop(0.73, rgb(245, 245, 245)));\r\n    background-image: -moz-linear-gradient(center bottom, rgb(241, 241, 241) 45%, rgb(245, 245, 245) 73%);\r\n    \r\n    \/* For Internet Explorer 5.5 - 7 *\/\r\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#f1f1f1, endColorstr=#f5f5f5);\r\n    \r\n    \/* For Internet Explorer 8 *\/\r\n    -ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#f1f1f1, endColorstr=#f5f5f5)\";\r\n}\r\n\r\n.crumbs2 li.first a {\r\n    border-top-left-radius: 5px;\r\n    -moz-border-radius-topleft: 5px;\r\n    -webkit-border-top-left-radius: 5px;\r\n}\r\n\r\n.crumbs2 li.last a {\r\n    border-right-width: 1px;\r\n    border-bottom-right-radius: 5px;\r\n    -moz-border-radius-bottomright: 5px;\r\n    -webkit-border-bottom-right-radius: 5px;\r\n}\r\n\r\n <\/pre>\n<p>The <code>.crumbs2<\/code> menu is using <strong>CSS gradients<\/strong> to duplicate the background effects. If you are unfamiliar with these, I highly recommend CSS Tricks\u2019 guide on <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/css-tricks.com\/css3-gradients\/\">CSS3 Gradients<\/a>, which should get you up to using CSS3 gradients efficiently. They have included a few more properties for Microsoft and Opera browsers, but these are not fully supported in all cases. I haven\u2019t included them in the demo code here \u2013 but it\u2019s good to understand all of the options.<\/p>\n<p><code>-webkit-gradient<\/code> and <code>-moz-linear-gradient<\/code> are the core solutions which do most of the work. I\u2019ve included legacy code for older versions of Internet Explorer, but <strong>it\u2019s not guaranteed<\/strong> to display properly all the time (we are using powerful image rendering techniques, after all). Notice that I\u2019ve set both RGB and hex color codes between the background properties. You could stick to one method or the other if you\u2019re more comfortable.<\/p>\n<p>The <strong>border radius<\/strong> code is only applied to our secondary breadcrumb navigation. This gives a neat effect on the top left and bottom right of our entire breadcrumb menu. The bar appears to almost pop off the page \u2013 truly a fantastic effect on browsers which support the styles, but these only cover default states for our links. Now, let\u2019s build hover effects similar to the images we\u2019ve used above.<\/p>\n<h2>CSS3 Borders and Shadows<\/h2>\n<p>Whenever a user hovers over a link, we want to update a few things. First, we need to <strong>darken the border colors on top and bottom of our active element<\/strong>. This can be seen in the images as well for both hover and active states.<\/p>\n<pre>\r\n.crumbs2 li a:hover {\r\n    border-top-color: #c4c4c4;\r\n    border-bottom-color: #c4c4c4;\r\n    \r\n    background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.45, rgb(241, 241, 241)), color-stop(0.73, rgb(248, 248, 248)));\r\n    background-image: -moz-linear-gradient(center bottom, rgb(241, 241, 241) 45%, rgb(248, 248, 248) 73%);\r\n    \r\n    \/* For Internet Explorer 5.5 - 7 *\/\r\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#f8f8f8, endColorstr=#f1f1f1);\r\n    \r\n    \/* For Internet Explorer 8 *\/\r\n    -ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#f8f8f8, endColorstr=#f1f1f1)\";\r\n    \r\n    color: #333;\r\n    \r\n    -moz-box-shadow: 0px 2px 2px #e8e8e8;\r\n    -webkit-box-shadow: 0px 2px 2px #e8e8e8;\r\n    box-shadow: 0px 2px 2px #e8e8e8;\r\n}\r\n\r\n.crumbs2 li a:active {\r\n    border-top-color: #c4c4c4;\r\n    border-bottom-color: #c4c4c4;\r\n    \r\n    background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.45, rgb(224, 224, 224)), color-stop(0.73, rgb(235, 235, 235)));\r\n    background-image: -moz-linear-gradient(center bottom, rgb(224, 224, 224) 45%, rgb(235, 235, 235) 73%);\r\n    \r\n    \/* For Internet Explorer 5.5 - 7 *\/\r\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ebebeb, endColorstr=#e0e0e0);\r\n    \r\n    \/* For Internet Explorer 8 *\/\r\n    -ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr=#ebebeb, endColorstr=#e0e0e0)\";\r\n    \r\n    box-shadow: -1px 1px 1px 0px #dadada inset;\r\n    -webkit-box-shadow: -1px 1px 1px 0px #dadada inset;\r\n    -moz-box-shadow: -1px 1px 1px 0px #dadada inset;\r\n    \r\n    color: #333;\r\n}\r\n\r\n <\/pre>\n<p>I\u2019m using the exact same gradient code as we\u2019ve used above, but this time the colors are much different if you noticed our RGB values. Each of the states will darken text color to <code>#333<\/code>, yet other descriptors have been changed slightly to correspond with user commands.<\/p>\n<p>On hover, you\u2019ll see a <strong>shiny embossed effect<\/strong> which, coupled with <strong>darkened borders<\/strong>, gives the page popup styles. If you click and hold, you\u2019ll get into the active state which features a <strong>darkened background gradient<\/strong>. This effect causes the buttons to look like they are actually \u201cpressed\u201d into the page.<\/p>\n<p>We\u2019re also applying <strong>box-shadow<\/strong> properties from the new CSS3 specs. <code>-webkit<\/code>, <code>-moz<\/code>, and default styles are used with the same settings. Hovering displays a <strong>light shadow<\/strong> coming out from the bottom of the selected link. When active, the shadow will be formed on the top, right, and bottom borders. This effect is created with the <strong><em>inset<\/em><\/strong> keyword added to the end of each box-shadow property line. Again, CSS Tricks is your best friend here with an awesome article on <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/css-tricks.com\/snippets\/css\/css-box-shadow\/\">box-shadow<\/a>, as it talks about the syntax and its proper usage in CSS3.<\/p>\n<h2>Bonus: More Styles<\/h2>\n<p>In addition to the tutorial code, I\u2019ve included extra background images with adapted color schemes. I\u2019ve sampled from the original backgrounds and used Adobe Photoshop to create a few variations which you may apply to your own website.<\/p>\n<p>These <strong>bonus files are included in the source file<\/strong>, which you can download in .zip archive format in the section below.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/css3-breadcrumb\/css3-breadcrumb_different-colors.jpg\" alt=\"css3 breadcrumb: different colors\" width=\"500\" height=\"234\"><\/figure>\n<p>You can check out the image above to get an idea of what I\u2019m talking about. If you need a specific color scheme, pop open <strong>Photoshop &gt; Image &gt; Adjustments &gt; Hue\/Saturation<\/strong> to modify the color scheme to match your own template. Remember to <strong>check the Colorize option<\/strong> in the Hue\/Saturation pane if the color didn\u2019t change at all.<\/p>\n<h2>Conclusion<\/h2>\n<p>This tutorial should have gotten you familiar with some of the newer CSS3 techniques. We\u2019ve created two fantastic breadcrumb menus styled in a similar manner and built it in a way that it can degrade gracefully in older browsers. Additionally, I\u2019ve offered my demo code and some bonus images for you to play around with.<\/p>\n<p>Do you particularly like the styles we\u2019ve constructed here? Or maybe you have questions or ideas on how to improve the tutorial code? Please share your thoughts with us in the discussion area below, and don\u2019t forget to download the source files so you can play with the demo!<\/p>\n<h2>More CSS3 Tutorials<\/h2>\n<p>Craving for more CSS3? Below are our articles for you to understand CSS3 theoretically and practically!<\/p>\n<ul>\n<li><a href=\"https:\/\/www.hongkiat.com\/blog\/rss-feed-logo-with-css3\/\">CSS3: Create A RSS Feed Logo<\/a><\/li>\n<li><a href=\"https:\/\/www.hongkiat.com\/blog\/css3-search-field\/\">CSS3: Create A Search Field<\/a><\/li>\n<li><a href=\"https:\/\/www.hongkiat.com\/blog\/ajax-html5-css3-contact-form-tutorial\/\">CSS3: Create An AJAX Contact Form<\/a><\/li>\n<li><a href=\"https:\/\/www.hongkiat.com\/blog\/building-html5-css-webpages\/\">CSS3: Building HTML5\/CSS3 Webpages<\/a><\/li>\n<\/ul>\n<p><strong>Note:<\/strong> This post was first published on the Nov 14, 2011.<\/p>","protected":false},"excerpt":{"rendered":"<p>Navigation menus and links are possibly the most important interface elements in a web layout. These are the only outlets for users to travel between pages and interact with all the content you\u2019ve created. Breadcrumb offers similar functionality with the added benefit of tracking your current position. You\u2019ll be able to display all the previous&hellip;<\/p>\n","protected":false},"author":18,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3392],"tags":[507,506,2016,286],"topic":[4520],"class_list":["entry-content","is-maxi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Coding a Graceful Breadcrumb Navigation Menu in CSS3 - Hongkiat<\/title>\n<meta name=\"description\" content=\"Navigation menus and links are possibly the most important interface elements in a web layout. These are the only outlets for users to travel between\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Coding a Graceful Breadcrumb Navigation Menu in CSS3\" \/>\n<meta property=\"og:description\" content=\"Navigation menus and links are possibly the most important interface elements in a web layout. These are the only outlets for users to travel between\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/\" \/>\n<meta property=\"og:site_name\" content=\"Hongkiat\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hongkiatcom\" \/>\n<meta property=\"article:published_time\" content=\"2011-11-14T13:01:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-03T16:43:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/assets.hongkiat.com\/uploads\/css3-breadcrumb\/gmail-help.jpg\" \/>\n<meta name=\"author\" content=\"Jake Rocheleau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hongkiat\" \/>\n<meta name=\"twitter:site\" content=\"@hongkiat\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jake Rocheleau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/\"},\"author\":{\"name\":\"Jake Rocheleau\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/966b2daea15283b4145e71aa98a82c2a\"},\"headline\":\"Coding a Graceful Breadcrumb Navigation Menu in CSS3\",\"datePublished\":\"2011-11-14T13:01:17+00:00\",\"dateModified\":\"2025-04-03T16:43:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/\"},\"wordCount\":1905,\"commentCount\":43,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/css3-breadcrumb\\\/gmail-help.jpg\",\"keywords\":[\"CSS\",\"HTML\",\"HTML5 \\\/ CSS3 Tutorials\",\"tutorials\"],\"articleSection\":[\"Coding\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/\",\"name\":\"Coding a Graceful Breadcrumb Navigation Menu in CSS3 - Hongkiat\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/css3-breadcrumb\\\/gmail-help.jpg\",\"datePublished\":\"2011-11-14T13:01:17+00:00\",\"dateModified\":\"2025-04-03T16:43:53+00:00\",\"description\":\"Navigation menus and links are possibly the most important interface elements in a web layout. These are the only outlets for users to travel between\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/css3-breadcrumb\\\/gmail-help.jpg\",\"contentUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/css3-breadcrumb\\\/gmail-help.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/breadcrumb-menu-css3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Coding a Graceful Breadcrumb Navigation Menu in CSS3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"name\":\"Hongkiat\",\"description\":\"Tech and Design Tips\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\",\"name\":\"Hongkiat.com\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"contentUrl\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"width\":1200,\"height\":799,\"caption\":\"Hongkiat.com\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hongkiatcom\",\"https:\\\/\\\/x.com\\\/hongkiat\",\"https:\\\/\\\/www.pinterest.com\\\/hongkiat\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/966b2daea15283b4145e71aa98a82c2a\",\"name\":\"Jake Rocheleau\",\"description\":\"Jake is a writer and designer with over 10 years experience working on the web. He writes about user experience design and cool resources for designers\",\"sameAs\":[\"https:\\\/\\\/www.hongkiat.com\"],\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/author\\\/jake\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Coding a Graceful Breadcrumb Navigation Menu in CSS3 - Hongkiat","description":"Navigation menus and links are possibly the most important interface elements in a web layout. These are the only outlets for users to travel between","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/","og_locale":"en_US","og_type":"article","og_title":"Coding a Graceful Breadcrumb Navigation Menu in CSS3","og_description":"Navigation menus and links are possibly the most important interface elements in a web layout. These are the only outlets for users to travel between","og_url":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/","og_site_name":"Hongkiat","article_publisher":"https:\/\/www.facebook.com\/hongkiatcom","article_published_time":"2011-11-14T13:01:17+00:00","article_modified_time":"2025-04-03T16:43:53+00:00","og_image":[{"url":"https:\/\/assets.hongkiat.com\/uploads\/css3-breadcrumb\/gmail-help.jpg","type":"","width":"","height":""}],"author":"Jake Rocheleau","twitter_card":"summary_large_image","twitter_creator":"@hongkiat","twitter_site":"@hongkiat","twitter_misc":{"Written by":"Jake Rocheleau","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/#article","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/"},"author":{"name":"Jake Rocheleau","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/966b2daea15283b4145e71aa98a82c2a"},"headline":"Coding a Graceful Breadcrumb Navigation Menu in CSS3","datePublished":"2011-11-14T13:01:17+00:00","dateModified":"2025-04-03T16:43:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/"},"wordCount":1905,"commentCount":43,"publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/css3-breadcrumb\/gmail-help.jpg","keywords":["CSS","HTML","HTML5 \/ CSS3 Tutorials","tutorials"],"articleSection":["Coding"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/","url":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/","name":"Coding a Graceful Breadcrumb Navigation Menu in CSS3 - Hongkiat","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/#primaryimage"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/css3-breadcrumb\/gmail-help.jpg","datePublished":"2011-11-14T13:01:17+00:00","dateModified":"2025-04-03T16:43:53+00:00","description":"Navigation menus and links are possibly the most important interface elements in a web layout. These are the only outlets for users to travel between","breadcrumb":{"@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/#primaryimage","url":"https:\/\/assets.hongkiat.com\/uploads\/css3-breadcrumb\/gmail-help.jpg","contentUrl":"https:\/\/assets.hongkiat.com\/uploads\/css3-breadcrumb\/gmail-help.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hongkiat.com\/blog\/breadcrumb-menu-css3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hongkiat.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Coding a Graceful Breadcrumb Navigation Menu in CSS3"}]},{"@type":"WebSite","@id":"https:\/\/www.hongkiat.com\/blog\/#website","url":"https:\/\/www.hongkiat.com\/blog\/","name":"Hongkiat","description":"Tech and Design Tips","publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hongkiat.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hongkiat.com\/blog\/#organization","name":"Hongkiat.com","url":"https:\/\/www.hongkiat.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","contentUrl":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","width":1200,"height":799,"caption":"Hongkiat.com"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hongkiatcom","https:\/\/x.com\/hongkiat","https:\/\/www.pinterest.com\/hongkiat\/"]},{"@type":"Person","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/966b2daea15283b4145e71aa98a82c2a","name":"Jake Rocheleau","description":"Jake is a writer and designer with over 10 years experience working on the web. He writes about user experience design and cool resources for designers","sameAs":["https:\/\/www.hongkiat.com"],"url":"https:\/\/www.hongkiat.com\/blog\/author\/jake\/"}]}},"jetpack_featured_media_url":"https:\/\/","jetpack_shortlink":"https:\/\/wp.me\/p4uxU-2MX","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/10723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/comments?post=10723"}],"version-history":[{"count":3,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/10723\/revisions"}],"predecessor-version":[{"id":73508,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/10723\/revisions\/73508"}],"wp:attachment":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/media?parent=10723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/categories?post=10723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/tags?post=10723"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/topic?post=10723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}