zoukankan      html  css  js  c++  java
  • bootstrap源码分析之form、navbar

    一、表单(Form)

    源码文件:
    _form.scss
    mixins/_form.scss

    1、按层次结构分:form-group -> form-control/input-group/form-static-control -> 各类标签
    2、Form-group/form-control/input-group/form-static-control之类的容器,分为两种显示方式:block、inline-block。而实现input-group水平用的是table-cell。

    .input-group {
         display: inline-table;
          vertical-align: middle;
          .input-group-addon,
          .input-group-btn,
          .form-control {
            width: auto;
          }
    }

    3、Input-group-addon:类如果插入网页文字图标,会向上一个像素的错位


    解决方案:glyphicon不能与其他样式合并使用,而是内部嵌套使用即可,因为glyphicon对top有1个像素的设置:

    .glyphicon {
      position: relative;
      top: 1px;
      display: inline-block;
      font-family: 'Glyphicons Halflings';
      font-style: normal;
      font-weight: normal;
      line-height: 1;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    二、导航条(navbar)

    源码文件:
    _navbar.scss

    1、主要进行了内部区域的划分,如:head、其他区域;以及导航条位置的定位
    2、折叠器实现(在4.0已移除),也就是navbar-collapse类,代替的是collapse,在按钮上面弹出隐藏层
       2.1、Navbar-collapse:在大于breakpoint时,会强制显示(由于collapse默认是隐藏的)
    3、内容支持nav、brand、form、toggler
    4、Navbar-toggler(4.0移除):设定在屏幕小于breakpoint值时(768)显示,而在4.0则直接用collapse来展示此按钮,没有屏幕大小的限制,navbar-toggle的应用也要结合collapse使用
    5、Navbar-static-top:只是增加了zIndex,去掉了圆角、边框宽度等内容。
    6、Navbar-fixed-top/bottom:都是定位在上方、下方,有浮动影响
    7、Navbar-brand:品牌,可以放网页名称、公司Logo等内容
    8、Navbar-toggle:用于收缩的单击的图片,他会在小于breakpoint时显示,大于此值就隐藏(并且,toggle显示是右浮动,且作为相对定位元素):
    .navbar-toggle {
      position: relative;
      float: right;
      margin-right: $navbar-padding-horizontal;
      padding: 9px 10px;
      @include navbar-vertical-align(34px);
      background-color: transparent;
      background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
      border: 1px solid transparent;
      border-radius: $border-radius-base;
    
      // We remove the `outline` here, but later compensate by attaching `:hover`
      // styles to `:focus`.
      &:focus {
        outline: 0;
      }
    
      // Bars
      .icon-bar {
        display: block;
        width: 22px;
        height: 2px;
        border-radius: 1px;
      }
      .icon-bar + .icon-bar {
        margin-top: 4px;
      }
    
      @media (min- $grid-float-breakpoint) {
        display: none;
      }
    }
    9、Navbar-nav:原nav的基础进行了一些兼容设置,主是在breakpoint-max下的样式调整,以及在breakpointg下的样式调整,还是去掉默认的背景色,shadow等内容
    10、Navbar-form:主要调整所有form都为行内元素
    11、Navbar-text、navbar-btn:都在默认的基础上做了相就的兼容设置
    12、Navbar提供了default、inverse两种主题,各主题下对其各自的部件都做了相应的样式兼容处理
    13、导航条本身的样式不多,本身只提供了toggle、brand两个内容,主要提供了两种主题,以及将dropdown、collapse、form、nav四个部件的组合。
  • 相关阅读:
    LintCode-174.删除链表中倒数第n个节点
    LintCode-165.合并两个排序链表
    LintCode-371.用递归打印数字
    LintCode-140.快速幂
    LintCode-373.奇偶分割数组
    NOI 2015 品酒大会 (后缀数组+并查集)
    NOI 2016 优秀的拆分 (后缀数组+差分)
    POJ 2774 Long Long Message (后缀数组+二分)
    BZOJ 1717 [USACO06DEC] Milk Patterns (后缀数组+二分)
    POJ 1743 [USACO5.1] Musical Theme (后缀数组+二分)
  • 原文地址:https://www.cnblogs.com/cqhaibin/p/5540375.html
Copyright © 2011-2022 走看看