>  기사  >  웹 프론트엔드  >  bootstrap源码分析之foRm、navbar

bootstrap源码分析之foRm、navbar

WBOY
WBOY원래의
2016-05-30 16:59:461074검색

一、表单(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。

<span style="color: #800000;">.input-group </span>{<span style="color: #ff0000;">
     display</span>:<span style="color: #0000ff;"> inline-table</span>;<span style="color: #ff0000;">
      vertical-align</span>:<span style="color: #0000ff;"> middle</span>;<span style="color: #ff0000;">
      .input-group-addon,
      .input-group-btn,
      .form-control {
        width</span>:<span style="color: #0000ff;"> auto</span>;
      }<span style="color: #800000;">
}</span>

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


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

<span style="color: #800000;">.glyphicon </span>{<span style="color: #ff0000;">
  position</span>:<span style="color: #0000ff;"> relative</span>;<span style="color: #ff0000;">
  top</span>:<span style="color: #0000ff;"> 1px</span>;<span style="color: #ff0000;">
  display</span>:<span style="color: #0000ff;"> inline-block</span>;<span style="color: #ff0000;">
  font-family</span>:<span style="color: #0000ff;"> 'Glyphicons Halflings'</span>;<span style="color: #ff0000;">
  font-style</span>:<span style="color: #0000ff;"> normal</span>;<span style="color: #ff0000;">
  font-weight</span>:<span style="color: #0000ff;"> normal</span>;<span style="color: #ff0000;">
  line-height</span>:<span style="color: #0000ff;"> 1</span>;<span style="color: #ff0000;">
  -webkit-font-smoothing</span>:<span style="color: #0000ff;"> antialiased</span>;<span style="color: #ff0000;">
  -moz-osx-font-smoothing</span>:<span style="color: #0000ff;"> grayscale</span>;
}

二、导航条(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显示是右浮动,且作为相对定位元素):
<span style="color: #800000;">.navbar-toggle </span>{<span style="color: #ff0000;">
  position</span>:<span style="color: #0000ff;"> relative</span>;<span style="color: #ff0000;">
  float</span>:<span style="color: #0000ff;"> right</span>;<span style="color: #ff0000;">
  margin-right</span>:<span style="color: #0000ff;"> $navbar-padding-horizontal</span>;<span style="color: #ff0000;">
  padding</span>:<span style="color: #0000ff;"> 9px 10px</span>;<span style="color: #ff0000;">
  @include navbar-vertical-align(34px);
  background-color</span>:<span style="color: #0000ff;"> transparent</span>;<span style="color: #ff0000;">
  background-image</span>:<span style="color: #0000ff;"> none</span>;<span style="color: #ff0000;"> // Reset unusual Firefox-on-Android default style; see https</span>:<span style="color: #0000ff;">//github.com/necolas/normalize.css/issues/214
  border: 1px solid transparent</span>;<span style="color: #ff0000;">
  border-radius</span>:<span style="color: #0000ff;"> $border-radius-base</span>;<span style="color: #ff0000;">

  // We remove the `outline` here, but later compensate by attaching `</span>:<span style="color: #0000ff;">hover`
  // styles to `:focus`.
  &:focus {
    outline: 0</span>;
  }<span style="color: #800000;">

  // Bars
  .icon-bar </span>{<span style="color: #ff0000;">
    display</span>:<span style="color: #0000ff;"> block</span>;<span style="color: #ff0000;">
    width</span>:<span style="color: #0000ff;"> 22px</span>;<span style="color: #ff0000;">
    height</span>:<span style="color: #0000ff;"> 2px</span>;<span style="color: #ff0000;">
    border-radius</span>:<span style="color: #0000ff;"> 1px</span>;
  }<span style="color: #800000;">
  .icon-bar + .icon-bar </span>{<span style="color: #ff0000;">
    margin-top</span>:<span style="color: #0000ff;"> 4px</span>;
  }<span style="color: #800000;">

  @media (min-width: $grid-float-breakpoint) </span>{<span style="color: #ff0000;">
    display</span>:<span style="color: #0000ff;"> none</span>;
  }<span style="color: #800000;">
}</span>
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四个部件的组合。
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:初识sass다음 기사:html框架