Bootstrap学习笔记之css样式设计(2)


Posted in Javascript onJune 07, 2016

首先,很感谢各位朋友对我的支持,关于bootstrap的学习总结,我会持续更新,如果有写的不对的地方,麻烦各位给我指正出来哈。关于上篇文章,固定布局和流式布局很关键,如果还不太清楚的可以再看看我写的:Bootstrap学习笔记之css样式设计(1)

这次我们来看看bootstrap中关于样式的一些具体关键的类以及如何使用这些类,类与类之间的区别,另外涉及到的一些相关类,举列子的时候解释。

一、表单

1.form-control类:含有此类的<input><select><textarea>标签宽度都将变为width:100%,且在表单中通常是将控件配合label标签一起包含在form-group中使用。 

<form role="form">
 <!-- 所有设置了form-control类的input,textarea,select,元素都将被默认为width:100% -->
 <div class="form-group"> --form-group:一般讲标签和空间包裹在form-group中使用
 <label for="exampleInputEmail">Email address</label>
 <input type="email" class="form-control" id="exampleInputEmail" placeholder="input">
 </div>


 <div class="form-group">
 <label for="exampleInputEmail">Email name</label>
 <textarea class="form-control">11111</textarea>
 </div>


 <div class="form-group">
 <label for="select">select form</label>
 <select class="form-control">
 <option>111</option>
 <option>222</option>
 </select>
 </div>
</form>

 根据上面代码引申出不同的类,我们一行行的来看。给form添加form-inline类(将控件放在一行) |  form-horizontal类(标签在左,控件在右),后者借助标签。

<!-- form-inline类使表单水平呈现-->
<form class="form-inline"> --其次还有check-inline,radio-inline等
 <div class="form-group">
 <label class="src-only" for="exampleInputAmount">Amount</label>
 <div class="input-group"> --input-group:输入组
 <div class="input-group-addon">@</div> --addon:指添加的文本或按钮
 <input type="text" class="form-control " id="exampleInputAmount" placeholder="Amount">
 <div class="input-group-addon">@</div>
 </div>
 </div>
 <button type="submit" class="btn btn-primary">search</button>

</form>

效果如下:

Bootstrap学习笔记之css样式设计(2)

如果不加的话,button将被挤到下一行。这里不再贴图,可自行贴码测试。

<!--水平排列的表单 control-label:表示文本采用右对齐 -->
<form class="form-horizontal" >
 <div class="form-group">
 <label for="inputEmail" class="col-sm-2 control-label">Email:</label>
 <div class="col-sm-10">
 <input type="email" class="form-control" id="inputEmail" placeholder="email">
 </div>
 </div>
 <div class="form-group">
 <label for="inputPassword" class="col-sm-2 control-label">Password:</label>
 <div class="col-sm-10">
 <input type="password" class="form-control" id="inputPassword" placeholder="password">
 </div>
 </div>
</form>

效果如下:

Bootstrap学习笔记之css样式设计(2)

(注意:这里的input文本框应该是占5/6的,我把它的宽度自定义了下为20%)

这里关于form-horizontal,要配合bootstrap的栅格系统进行。

在<form>元素上使用类名“form-horizontal”主要有以下几个作用:

1:设置表单控件padding和margin值。上面的代码可在调试控制台里面看到,为padding-left:50px。

2:改变“form-group”的表现形式,类似于网格系统的“row”。

2.label的作用

<label for="hello1">hello</label><input type="text" id="hello"><br> 

 ---产生蓝色光晕
<label for="1111">hello</label><input type="text" id="jiang"><br> 

---id不对应,没反应,只有当鼠标放在控件上时,才有蓝色光晕

结合上面的代码看:label中的for属性,应该对应的是控件中的id。作用:保证当鼠标置于label上,相应的控件会产生蓝色光晕。

3.role的作用

   有没有觉得很奇怪,为什么在写表单或者一些控件的时候,要加上role?

   作用:保证读屏软件可以识别。读屏软件即一款帮助智障人士上网的软件,将图片,文字等以语音的形式传达给智障人士,因此为确保读屏软件可以识别,通常没有语义化的标签,或者功能特殊的标签都要写上它。比如:

<a class="btn btn-default" href="#" role="button">link</a>
<!-- 如果链接a作为按钮使用,并用于当前页面触发某些功能,

而不是连接到其它其它页面或当前页面的其余部分,务必设置role="button" -->
原本a标签是表示链接,但这里却当做按钮来使用,读屏软件无法识别,

因此需要加上role="button",让读屏软件知道这是个button按钮。

 4.label,aria-label,aria-labelled的区别?

<div class="form-group">
 
 <input type="text" id="idCard" aria-label="身份证">
 <p class="help-block">Example block-level </p> --help-block:用来提示解释说明的文本
 </div>
 <div class="form-group">
 <label for="idCard">身份证</label>
 <input type="text" id="idCard" >
 <p class="help-block">Example block-level </p>
 </div>

效果如下:

Bootstrap学习笔记之css样式设计(2)

前者没有出现可视化的“身份证”字样,两者均是为了便于读屏软件识别出来。只是aria-label被隐藏起来了。

再来看下aria-labelled怎么用,通常是当标签文本已经存在于某一个元素时,使用aria-labelled,它的值为所有读取元素的id,来看下列子:

<div class="dropdown"> 
 <button type="button" class="btn dropdown-toggle" id="dropdownMenu1" data-toggle="dropdown"> 

 选择下列选项 
 <span class="caret"></span> 
 </button> 
 <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1"> 
 <li role="presentation"> 
 <a role="menuitem" tabindex="-1" href="#">1111</a> 
 </li> 
 <li role="presentation"> 
 <a role="menuitem" tabindex="-1" href="#">22222</a> 
 </li> 
 <li role="presentation"> 
 <a role="menuitem" tabindex="-1" href="#">33333</a> 
 </li> 
 </ul> 
</div>

 此时ul中包含的有li,且是在button中控制的,所以此时用aria-labelledby比较合适。简单来说,三者之间,只是使用的范围不一样,基本功能是相同的,都是为了便于读屏软件的识别。说到隐藏的类,就要提到sr-only类了。我们来看下。

  <label  for="inputEmail"   class="col-sm-2  control-label  sr-only">Email:</label>
  <label  for="inputEmail"   class="col-sm-2  control-label ">Email:</label>
此时效果是:上面的文字被隐藏起来,仅仅这种区别,其它基本功能不变。

5.disabled类

在表单中,这个类要注意,这里我们对比来看。

<!-- 引入fieldset的表单,作用:将表单包含在一个块里面 -->
<form role="form">
 <fieldset disabled>
 <div class="form-group">
 <label for="disabledTextInput">禁用的输入框</label>
 <input type="text" id="disabledTextInput" class="form-control" placeholder="禁止输入">
 </div>
 <div class="form-group">
 <label for="disabledSelect">禁用的下拉框</label>
 <select id="disabledSelect" class="form-control">
 <option>禁用不可选择</option>
 </select>
 </div>
 <div class="checkbox">
 <label>
 <input type="checkbox"> 禁用无法选择
 </label>
 </div>
 <button type="submit" class="btn btn-primary">提交</button>
 </fieldset>
</form>

如果给fileset增加disabled类的话,禁用的表单,只对button   select   input等禁用,而对于其它的项legend属性并不起作用。对比来看,添加legend属性

<!-- 加了lenged属性 -->
<form role="form">
 <fieldset disabled>
 <legend><input type="text" class="form-control" placeholder="颜色变灰,但没被禁用" ></legend>--这里鼠标可以放入输入框中
 <div class="form-group">
  <label for="disabledTextInput">禁用的输入框</label>
  <input type="text" id="disabledTextInput" class="form-control" placeholder="禁止输入">
 </div>
 <div class="form-group">
  <label for="disabledSelect">禁用的下拉框</label>
  <select id="disabledSelect" class="form-control">
  <option>不可选择</option>
  </select>
 </div>
 <div class="checkbox">
  <label>
  <input type="checkbox"> 无法选择
  </label>
 </div>
 <button type="submit" class="btn btn-primary">提交</button>
 </fieldset>
</form> 
<!-- 禁用的表单,只对button select input等禁用,而对于其它的项legend并不起作用-->

 6.data-toggle data-target  data-spy属性

  html5允许开发者自由为其标签添加属性,这种自定义属性一般用“data-”开头。

  data-toggle:表示数据交互 ,上面列子中点击button,即可切换到下拉菜单。

  data-spy表示:监控

  data-traget:目标。

 这里涉及到js中的事件,不再详解,等到进入bootstrap中的js学习中再来看一下这些问题。表单涉及到的东西还是很多的,总结的差不多这么多,还有补充的,麻烦大家在下面给我留言。

二、按钮类

  这个没啥难点,记住属性类就行了,很好理解。

<a class="btn btn-default" href="#" role="button">link</a>
<button class="btn btn-default btn-lg" type="submit" disabled="disabled">default</button>
<button class="btn btn-primary" type="submit">primary</button>
<button class="btn btn-success" type="submit">success</button>
<button class="btn btn-info btn-block" type="submit">info</button> --btn-block:将其拉伸到父元素的100%
<button class="btn btn-warning" type="submit">warning</button>
<input class="btn btn-danger active" type="button" value="Input">
<input class="btn btn-link" type="button" value="submit">

 效果如下:

Bootstrap学习笔记之css样式设计(2)

三、图片类

 <!--  使图片居中center-block:使内容居中显示 img-rounded :带有圆角   img-circle:环形    img-thumbnail:给图片加了个外边框-->
<img  src="111.png"  class="img-responsive  center-block  img-rounded"  alt="responsive  image">
<img  src="111.png"  class="img-responsive  center-block  img-circle"  alt="responsive  image">
<img  src="111.png"  class="img-responsive  center-block  img-thumbnail"  alt="responsive  image">
效果如下:

Bootstrap学习笔记之css样式设计(2)

总结一句,个人感觉,表单的作用还是很重要的,其它的一些基本类,这里不再讲解,都比较容易。下一篇将转入css组件的学习:Bootstrap学习笔记之css组件(3)

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 汉字字节判断
Aug 01 Javascript
js实现表格字段排序
Feb 19 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 Javascript
微信中一些常用的js方法汇总
Mar 12 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
7个jQuery最佳实践
Jan 12 Javascript
实现高性能JavaScript之执行与加载
Jan 30 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
May 18 Javascript
JS回调函数基本定义与用法实例分析
May 24 Javascript
利用node.js爬取指定排名网站的JS引用库详解
Jul 25 Javascript
vue利用axios来完成数据的交互
Mar 23 Javascript
js实现文章目录索引导航(table of content)
May 10 Javascript
AngularJS 如何在控制台进行错误调试
Jun 07 #Javascript
JQuery异步加载PartialView的方法
Jun 07 #Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 #Javascript
Bootstrap学习笔记之css样式设计(1)
Jun 07 #Javascript
jQuery hover事件简单实现同时绑定2个方法
Jun 07 #Javascript
PassWord输入框代码分享
Jun 07 #Javascript
Bootstrap学习笔记之css组件(3)
Jun 07 #Javascript
You might like
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
php中define用法实例
2015/07/30 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
javascript 短路法代码精简
2009/08/20 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
python 显示数组全部元素的方法
2018/04/19 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
Python 创建守护进程的示例
2020/09/29 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
JAVA中的关键字有什么特点
2014/03/07 面试题
售后服务经理岗位职责
2014/02/25 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
好媳妇事迹材料
2014/12/24 职场文书
医生个人年终总结
2015/02/28 职场文书
2016年国培研修日志
2015/11/13 职场文书
改进工作作风心得体会
2016/01/23 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
车辆挂靠协议书
2016/03/23 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js