Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
ranjit_rao
Participant

Hi,

After a long time, found some time to share something which I have worked on.

Recently, I had a requirement which demanded me to have navigation using a breadcrumb. Just a brief description of breadcrumb is as follows:

"A breadcrumb is a link/button(or a series of them) which displays each page viewed by a visitor of a website in the order the pages were viewed".

Something as shown in the figure:                     


In one of the recent releases SAP has releases a control called breadcrumb. But that did not go well my projects requirement mainly because of the look and feel. As this how it looked:

So, just thought of trying my hand in designing the breadcrumb look alike using sap.m.SegmentedButton wrapped in a custom css.

Segmented Button normally looks like:

Following is the code for implementing it.

View.xml

<mvc:View controllerName="BreadCrumbsDemo.controller.View1" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc"

  xmlns="sap.m">

   <App>

    <pages>

     <Page title="{i18n>title}">

        <content>

         <HBox class="breadCrumbs" width="100%" alignItems="Center">

           <SegmentedButton class="sapUiSmallMarginBottom" width="100%" height="100%">

             <items>

               <SegmentedButtonItem text="View1"/>

               <SegmentedButtonItem text="View2"/>

               <SegmentedButtonItem text="View3"/>

             </items>

          </SegmentedButton>

        </HBox>

      </content>

     </Page>

    </pages>

   </App>

</mvc:View>


style.css

.breadCrumbs> .sapMFlexItem ul li {

    width: 25.3333333333333% !important;

    display: block;

    float: left;

    height: 48px;

    background: #85c1e9;

    text-align: center;

    padding: 0px 40px 0 40px;

    position: relative;

    margin: 0 10px 0 0;

    font-size: 20px;

    text-decoration: none;

    color: #fff;

}

.breadCrumbs> .sapMFlexItem ul li:first-child {

   z-index:3;

}

.breadCrumbs> .sapMFlexItem ul li:nth-child(2) {

   z-index:2;

}

.breadCrumbs> .sapMFlexItem ul li:nth-child(3) {

   z-index:1;

}

.breadCrumbs> .sapMFlexItem ul li:last-child {

   background: #2e86c1 !important;

    color: #000;

}

.breadCrumbs> .sapMFlexItem ul li:last-child:after {

  border-left: 40px solid #2e86c1 !important;

}

.breadCrumbs> .sapMFlexItem ul li:before {

    content: "";

    border-top: 24px solid transparent;

    border-bottom: 24px solid transparent;

    border-left: 40px solid #e6e6e6;

    position: absolute;

    left: 0;

    top: 0;

    padding: 0px 40px 0 80px;

}

.breadCrumbs> .sapMFlexItem ul li:after {

    content: "";

    border-top: 40px solid red;

    border-bottom: 40px solid red;

    border-left: 40px solid blue;

    position: absolute;

    right: -40px;

    top: 0;

    border-top: 24px solid transparent;

    border-bottom: 24px solid transparent;

    border-left: 40px solid #85c1e9;

}

.breadCrumbs> .sapMFlexItem {

    width: 100%;

    background:#e6e6e6;

}

.breadCrumbs .sapMSegB .sapMSegBBtn {

    list-style: none;

    text-overflow: ellipsis;

    overflow: initial;

    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);

    text-align: center;

    cursor: pointer;

    vertical-align: text-bottom;

    box-sizing: border-box;

    display: inline-block;

    border:none;

}

.breadCrumbs .sapMSegBBtn.sapMSegBBtnFocusable.sapMSegBBtnSel + .sapMSegBBtn {

border-left: none;

}

Ultimately, this is what you have.

Could always be better used with much better css. :oops:

Labels in this area