/* ===== 定义元素显示的方式 ===== */
.responsive-visibility() {
  display: block !important;
  table&  { display: table !important; }
  tr&     { display: table-row !important; }
  th&,
  td&     { display: table-cell !important; }
}

/* ===== 定义元素隐藏的方式 ===== */
.responsive-invisibility() {
  display: none !important;
}

/* ===== 默认影藏 ===== */
.visible-xs,
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block,
.visible-xl,
.visible-xl-block,
.visible-xl-inline,
.visible-xl-inline-block {
  display: none !important;
}

.visible-xs {
  @media (min-width: @breakpoints-xs) and (max-width: @breakpoints-sm) {
    .responsive-visibility();
  }
}
.visible-xs-block {
  @media (min-width: @breakpoints-xs) and (max-width: @breakpoints-sm) {
    display: block !important;
  }
}
.visible-xs-inline {
  @media (min-width: @breakpoints-xs) and (max-width: @breakpoints-sm) {
    display: inline !important;
  }
}
.visible-xs-inline-block {
  @media (min-width: @breakpoints-xs) and (max-width: @breakpoints-sm) {
    display: inline-block !important;
  }
}

.visible-sm {
  @media (min-width: @breakpoints-sm) and (max-width: @breakpoints-md) {
    .responsive-visibility();
  }
}

.visible-sm-block {
  @media (min-width: @breakpoints-sm) and (max-width: @breakpoints-md) {
    display: block !important;
  }
}

.visible-sm-inline {
  @media (min-width: @breakpoints-sm) and (max-width: @breakpoints-md) {
    display: inline !important;
  }
}

.visible-sm-inline-block {
  @media (min-width: @breakpoints-sm) and (max-width: @breakpoints-md) {
    display: inline-block !important;
  }
}

.visible-md {
  @media (min-width: @breakpoints-md) and (max-width: @breakpoints-lg) {
    .responsive-visibility();
  }
}

.visible-md-block {
  @media (min-width: @breakpoints-md) and (max-width: @breakpoints-lg) {
    display: block !important;
  }
}

.visible-md-inline {
  @media (min-width: @breakpoints-md) and (max-width: @breakpoints-lg) {
    display: inline !important;
  }
}
.visible-md-inline-block {
  @media (min-width: @breakpoints-md) and (max-width: @breakpoints-lg) {
    display: inline-block !important;
  }
}

.visible-lg {
  @media (min-width: @breakpoints-lg) and (max-width: @breakpoints-xl) {
    .responsive-visibility();
  }
}
.visible-lg-block {
  @media (min-width: @breakpoints-lg) and (max-width: @breakpoints-xl) {
    display: block !important;
  }
}
.visible-lg-inline {
  @media (min-width: @breakpoints-lg) and (max-width: @breakpoints-xl) {
    display: inline !important;
  }
}
.visible-lg-inline-block {
  @media (min-width: @breakpoints-lg) and (max-width: @breakpoints-xl) {
    display: inline-block !important;
  }
}

.visible-xl {
  @media (min-width: @breakpoints-xl) {
    .responsive-visibility();
  }
}
.visible-xl-block {
  @media (min-width: @breakpoints-xl) {
    display: block !important;
  }
}
.visible-xl-inline {
  @media (min-width: @breakpoints-xl) {
    display: inline !important;
  }
}
.visible-xl-inline-block {
  @media (min-width: @breakpoints-xl) {
    display: inline-block !important;
  }
}


.hidden-xs {
  @media (min-width: @breakpoints-xs) and (max-width: @breakpoints-sm) {
    .responsive-invisibility();
  }
}
.hidden-sm {
  @media (min-width: @breakpoints-sm) and (max-width: @breakpoints-md) {
    .responsive-invisibility();
  }
}
.hidden-md {
  @media (min-width: @breakpoints-md) and (max-width: @breakpoints-lg) {
    .responsive-invisibility();
  }
}
.hidden-lg {
  @media (min-width: @breakpoints-lg) and (max-width: @breakpoints-xl) {
    .responsive-invisibility();
  }
}
.hidden-xl {
  @media (min-width: @breakpoints-xl) {
    .responsive-invisibility();
  }
}
