CSS如何画出胶囊形状的圆头长方形

html-css015

CSS如何画出胶囊形状的圆头长方形,第1张

因为圆角弧线为保证不相交会自动缩小半径,而在使用长度值(而非百分比值)时,半径并不相对于元素大小,最终会得到对称的效果。

因此,在创建胶囊两头的半圆形时,我们可以故意指定一个比所需半径大的值,来得到半圆形:

1.框架

1.1全局样式

使用HTML5的doctype,scaffolding.less中定义全局样式,从2开始使用normalize.css,并使用reset.less进行简化

1.2默认栅格系统

940px宽12列栅格,使用row与span[NUM]的class来控制,使用offset[NUM]来控制偏移,于non-fluid可以直接嵌套,提供了四种响应式方案

1.3流动栅格系统

基于百分比,将row改为row-fluid即可使用,内嵌注意宽度是按照父列的百分比进行计算的

1.4自定义栅格

于variables.css中改变变量,默认列12,宽60px,间隔20px,要保证响应性还得修改responsive.less中内容

1.5布局

container为940px居中,container-fluid则为流体布局

1.6 响应式设计

responsive.less中提供了一组media query:

智能手机《=480px;流式列,非固定宽度

垂直平板《=767px;流式列,非固定宽度

水平平板》=768px;42px 20px

默认》=980px; ? ? ?60px ?20px

大分辨率》=1200px;70px 30px

要求添加meta标签,<meta name=”viewport” content=”width=device-width, initail-scale=1.0″>

有诸如.visible-phone等支持类

2.基础CSS

2.1 排版

整个排版单位基于variables.less中@baseFontSize与@baseLineHeight两个变量;

强调:string加粗,em倾斜,abbr缩写【title属性存放显示信息,.initialism会减小缩略词字体】,address【使用br换行】

引用:blockquote【cite属性存放来源URL,.pull-left或right决定内容居左右】,small用于引言作者【会在内容前加入破折号】

列表:ul无序号有黑点,ul.unstyled无样式,ol有数字序号,dl描述,dl.dl-horizontal水平描述

2.2代码

code行级代码,pre块级【<>需要转义,.pre-scrollable可以设置350px最大高度】,应用.prettyprint和.linenums来美化代码【使用google prettify】

2.3表格

table thead【tr】 tbody【tr】tr【td或th】th【必须在thead之内】 caption;

.table行之间有水平线分割【2.0开始为默认】 .table-borderd 【边角为圆角】.table-striped 奇偶分开【使用:nth-child ie7-8不支持】 .table-condensed 紧凑竖直方向padding减半 几个可以组合使用

2.4表单

四种表单:.form-vertical【2.0后默认,控件标签文字左对齐】.form-inline【左对齐,控件inline-block】 .form-search【文本框圆化】 .form-horizontal【左浮动,标签与控件居于同一行且文字右对齐】

支持控件:文本输入框,单选,复选,下拉,多选,上传,文本域

控件组:.control-group .control-label以及.controls【默认label应该与控件在同一行?】

设计了各种控件状态【如focus,disabled,去除webkit的outline】,包含.error .warning .success验证样式

扩张控件:.span*来指定输入框大小,使用.input-mini或small或medium或big来指定input和select控件大小,2.0开始对.checkbox或.radio应用.inline即可实现行级,用label.checkbox包含input[type=checkbox]即可罗列,前置或后置文本保证.add-on与input在同行, .help-inline与.help-block设置帮助文本

2.5 按钮

可以应用到a button及input标签上,.btn .btn-primary .btn-info等样式【ie9不兼容】,.btn-large small mini等尺寸,.disabled类或disabled属性可以禁用

2.6 图标

使用.icon-前缀设置,用<i>x显示图标,用.icon-white显示反白图标,图标定义在sprites.less中

3.组件

3.1按钮

3.1.1按钮组

建议一个组里只用一种元素<a>或<button>,使用.btn-group,组合.btn-toolbar包装.btn-group即可合成工具条组件

3.1.2按钮下拉菜单

下拉菜单也得嵌套在.btn-group中,使用dropdown-toggle与ul.dropdown-menu类,支持Bootstrap下拉插件,箭头使用.caret,.dropdown-menu最近父标签应用.dropup即可变为上弹菜单【会改变.caret箭头方向】

3.2导航

3.2.1默认项

基类.nav,对齐使用.pull-left或.pull-right【依赖float】,标签页ul.nav-tabs,胶囊链接ul.nav-pills

3.2.2叠放式导航

指竖直叠放ul.nav-stacked

3.2.3下拉项

综合使用下拉按钮【js下拉项插件】,参考3.1.2

3.2.4导航列表

<i>使用标签,.pider空表项显示为水平间隔,.active选中项,.nav-header列表头

3.2.5 标签页切换导航

用.tabbale的p嵌套.nav-tabs,存放容器为.tab-content,内容页使用.tab-pane,标签置底用.tabs-below,标签居左.tabs-left,居右.tabs-right

3.2.6 导航条

固定导航条div.navbar与.navbar-fixed-top【必须预留40px或更多padding】,导航项ul.nav,li.pider-vertical分隔条,项目名称a.brand,表单.navbar-form,对form.navbar-search中输入框使用.search-query得到搜索框,下拉菜单参考3.2.3,导航条文本使用<p>,响应式嵌套在.nav-collapse.collapse并对按钮都应有.btn-navbar【需要js切换插件】

3.2.7面包屑导航

ul.breadcrumb

3.2.8页码

div.pagination>ul,同样使用.active与.disabled,页码对齐使用.pagination-centered或.pagination-right,前后页ul.pager【居于左右端li.previous与li.next】

3.3行内标签

span.label默认样式,span.label.label-success成功等

3.4 标号

span.badge默认样式,span.badge.badge-success等

3.5 排版

主角单元div.hero-unit中嵌套,标题h1,可以嵌入small,

3.6 缩略项

ul.thumbnails>li.span*>a.thumbnail>img链接图像,div.thumbnail块状内容

3.7通知

基类div.alert【2.0开始替代.alert-message】,例子:div.alert>a.close+strong,加强.alert-block提供更大的padding而.alert-heading修饰标题,语义强化.alert-error或success或info

3.8进度条

基本div.progress>div.bar[style=”width:60%”],条纹效果div.progress.progress-striped【动画效果加上.active,使用css3渐变动画,不支持ie】,语义加强.progress-info或success等

3.9杂项

消息墙div.well,关闭图标a.close

4 jQuery插件

4.1对话框【bootstrap-modal.js】

$().modal({backdrop:true背景,keyboard:true支持ESC,show:true初始化显示}) ,

触发设置data-toggle=”modal”然后data-target=”#foo”或href=“#foo”,

对话框设置div.modal#foo即可:div.modal-header>a.close[data-dismiss=”modal”]+div.modal-body+div.modal-footer【显示动画效果bootstrap-transition.js,对.modal应用.fade即可】,方法.modal(“toggle”)或.modal(“show”)或.modal(“hide”),事件show,shown,hide,hidden

4.2 下拉项【bootstrap-dropdown.js】

样式应用导航栏与胶囊链接,方法$().dropdown(),设置data-toggle=”dropdown”【也可以使用data-target=”#foo”或href=“#foo”来关联下拉项与链接】

4.3 滚动侦测【bootstrap-scrollspy.js】

$(‘#navbar’).scrollspy()

标记添加data-spy=”scroll”【导航链接必须有href=”#id”且对应有dom#id】,选项offset【默认为10】

4.4 可切换的标签页【bootstrap-tab.js】

方法$(‘#myTab’).tab(‘show’) 标签页需要设置data-target=’#id’或href=’#id’

标记添加data-toggle=”tab”或data-toggle=”pill”,

事件show与shown 【event.target指向激活标签,event.relatedTarget指向之前激活的标签】

4.5 工具提示【bootstrap-tooltips.js】

$(‘#example’).tooltip(options) 中选项animation:true,placement:’top’,selector,title,trigger:’hover’,delay:{show:num, hide:100}

工具提示可以单独设置data-属性实现与js调用同样的功能,指定一个selector即可【设置rel=”tooltip”】

方法:.tooltip(‘show’)?.tooltip(‘hide’)?.tooltip(‘toggle’)

4.6 弹出提示【bootstrap-popover.js】

$(‘#example’).popover(options)中选项animation:true,placement:’top’,selector,trigger:’hover’,title,content,delay

同样可以单独设置data-属性,方法也相同

4.7 通知消息【bootstrap-alert.js】

$(“.alert”).alert()

用在通知,对关闭按钮设置data-dismiss=”alert”即可定时关闭

方法$(“.alert”).alert(‘close’),事件close closed

4.8 按钮【bootstrap-button.js】

应用在btn与btn-group,设置data-toggle=”button”与data-toggle=”button-checkbox”与data-toggle=”button-radio”样式

方法$().button(‘toggle’) 按下

$().button(‘loading’) 载入文本data-loading-text属性中

$().button(‘reset’)重置按钮状态

4.9 折叠手风琴【bootstrap-collapse.js】

$().collapse({toggle:false}),事件show,shown,hide,hidden

设置data-toggle=“collapse”和data-target即可变为折叠式,data-target接收一个css选择器以选取元素添加,元素上需要添加.collapse,默认打开用.in

4.10 轮播【bootstrap-carousel.js】

$().carousel({interval:5000, pause:’hover’})

标记用data-属性提供前后翻页,data-slide=”prev或next” 方法.carousel(‘cycle或pause或number或prev或next’) 事件slide,slid

4.11 输入提醒【bootstrap-typeahead.js】

$().typeahead({source:[]数据源, items:8列表显示个数, matcher:fn, sorter:fn, highlighter:fn}),

设置data-provide=”typeahead”

5. LESS

mixins.less中保存所有混合,编译安装npm intall -g less uglify-js lessc ./lib/bootstrap.less >bootstrap.css压缩使用–compress,引用less.js 也可以重新编译.less文件并进行本地存储

全局样式

1

Bootstrap 中用到一些 HTML元素和CSS属性需要将页面设置为 HTML5 文档类型,即在页面顶部添加“<!DOCTYPE html>”

2

布局容器:Bootstrap 需要为页面内容和栅格系统包裹一个 .container或container-fluid(占据全部视口viewport的容器)容器。

3

栅格系统,Bootstrap 提供了一套最多12列的流式栅格系统,通过 .row表示行 和 .col-xs-4 这种表示宽度的列快速创建栅格布局。

4

Bootstrap 排版、链接样式设置了基本的全局样式。

font-size 设置为 14px,line-height 设置为 1.428。

<p>(段落)元素还被设置了等于 1/2 行高(即 10px)的底部外边距(margin)。

基础样式

【排版】,

1. 标题,可以用来.h1 到 .h6 类给内联属性的文本赋予标题样式,标题内通过<small>标签或带.small 类的元素标记副标题。

主体文本:.lead 类让段落突出显示。

2. 内联文本,使用<mark>标签表示标注文本,<del>删除,<s>无用,<ins>插入,<u>下划线,<small>小号(父容器字体大小的 85%),<strong>着重,<em>斜体。

3. 文本对齐类,text-left,text-center,text-right,text-justify,text-nowrap

4. 文本大小写类,text-lowercase,text-uppercase,text-capitalize

5. 缩略语类,为 <abbr>元素设置 title属性并使用.initialism 类让 font-size 变得稍微小些。例:<abbr title="attribute" class="initialism">attr</abbr>

6. 地址,以日常使用的格式呈现,在行结尾加 <br>保留需要的样式即可。

7. 引用,将 HTML 元素包裹在 <blockquote>中即可表现为引用样式。对于直接引用,建议用 <p>标签。

8. 列表,list-unstyled类移除默认 list-style 样式和左侧外边距的一组元素(只针对直接子元素)。list-inline类通过设置 display: inline-block并添加少量的内补(padding),将所有元素放置于同一行。dl-horizontal类让 <dl>内的短语及其描述排在一行。

【代码】

<code>标签包裹内联样式的代码片段,

<kbd>标签标记用户通过键盘输入的内容,

<pre>展示代码块 。可用pre-scrollable 类设置最高350px带垂直滚动条。

<var>标签标记变量,

<samp>标签标记程序输出的内容。

【表格】

.table 类指定基本样式,

.table-striped 条纹样式,

.table-bordered 类为边框样式,

.table-hover 类带鼠标悬停样式,

.table-condensed 类紧凑样式。

状态类(行或单元格设置颜色):active,success,info,warning,info。

将任何 .table 元素包裹在 .table-responsive 元素内,即可创建响应式表格,其

响应式表格: 会在小屏幕设备上(小于768px)水平滚动。当屏幕大于 768px 宽度时,水平滚动条消失。

【表单】

1. 基本实例,所有设置了 .form-control 类的 <input>、<textarea>和 <select>元素都将被默认设置宽度属性为 width: 100%。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好的排列。

不要讲表单组直接和输入框组混合使用。建议将输入框组嵌套到表单组中使用。

form-group,input-group,control-group,

2. 内联表单,<form>元素添加 .form-inline 类可使其内容左对齐并且表现为 inline-block 级别的控件。只适用于视口(viewport)至少在 768px 宽度时(视口宽度再小的话就会使表单折叠)。

在内联表单中单选/多选框控件的宽度设置为 width: auto

如果你没有为每个输入控件设置 label 标签,屏幕阅读器将无法正确识别。对于这些内联表单,你可以通过为label 设置 .sr-only 类将其隐藏。

3. 水平排列的表单

通过为表单添加 .form-horizontal 类改变 .form-group 的行为,使其表现为栅格系统中的行(row)

4. 多选和单选框

.radio、.radio-inline、.checkbox、.checkbox-inline 。

5. 静态控件

水平布局的表单中,如需将一行纯文本和 label 元素放置于同一行,为 <p>元素添加 .form-control-static类即可。

6. 控件状态

.disabled类禁用控件,为<fieldset>设置disabled 时则禁用包含的所有控件。

a标签不受此类影响。

readonly 属性可以禁止用户输入

.has-warning、.has-error 或 .has-success 类到这些控件的父元素即可。任何包含在此元素之内的 .control-label、.form-control 和 .help-block 元素都将接受这些校验状态的样式。

你还可以针对校验状态为输入框添加额外的图标(注意依赖于label标签)。只需设置相应的 .has-feedback 类并添加正确的图标即可。

7. 控件尺寸

通过 .input-lg .input-sm类似的类可以为控件设置高度,通过 .col-lg-* 类似的类可以为控件设置宽度

通过添加 .form-group-lg 或 .form-group-sm 类,为 .form-horizontal 包裹的 label 元素和表单控件快速设置尺寸。

用栅格系统中的列(column)包裹输入框或其任何父元素,都可很容易的为其设置宽度。

8. 辅助文本

help-block类,针对表单控件的“块(block)”级辅助文本。

【按钮】

1. 基本样式,btn、btn-default、btn-primary、btn-success、btn-info、btn-warning、btn-danger、active

2. 展现形式,btn-link、btn-block、close

3. 尺寸样式,.btn-lg、.btn-sm 、.btn-xs 。

可通过 <a>、<button>或 <input>元素应用按钮类,但建议用 <button>元素来获得在各个浏览器上获得相匹配的绘制效果。

6

【图片】

图片形状,img-rounded,img-circle,img-thumbnail,IE8 不支持 CSS3 中的圆角属性。

7

【辅助】

text-muted、text-primary、text-success、text-info、text-warning、text-danger

bg-primary、bg-success、bg-info、bg-warning、bg-danger、

三角符号,caret

浮动

居中

组件样式

【图标】

200个来自 Glyphicon Halflings 的字体图标,

图标类只能应用在空元素上,且不可与其它组件联合使用。

<span class="glyphicon glyphicon-search"></span>

【菜单】

将下拉菜单触发器和下拉菜单都包裹在 .dropdown 里

菜单对齐:默认情况下,下拉菜单自动沿着父元素的上沿和左侧被定位为 100% 宽度。 为 .dropdown-menu 添加 .dropdown-menu-right 类可以让菜单右对齐

菜单分组:dropdown-header表描述项,.disabled 表禁用项

向上弹出: .dropup 类就能使触发的下拉菜单朝上方打开

【按钮组】

按钮组.btn-group,通过.btn-group-* 指定组中按钮尺寸。

按钮栏.btn-toolbar

钮垂直堆叠排列显示btn-group-vertical

两端对齐排列的按钮组btn-group-justified

【导航】

标签页.nav-tabs 类依赖 .nav 基类。

胶囊式标签页.nav-pills 类,添加 .nav-stacked 类改为垂直堆叠。

.nav-justified 类可以很容易的让标签页或胶囊式标签呈现出同等宽度。

navbar navbar-default

对于不包含在 <form>中的 <button>元素,加上 .navbar-btn 后,可以让它在导航条里垂直居中。

将表单放置于 .navbar-form 之内可以呈现很好的垂直对齐,

.navbar-text

.navbar-link

.navbar-left 和 .navbar-right 工具类让导航链接、表单、按钮或文本对齐。

.navbar-fixed-top 类可以让导航条固定在顶部

.navbar-fixed-bottom 类可以让导航条固定在底部

.navbar-static-top 类可让导航条随着页面向下滚动而消失。

.navbar-inverse 类可以改变导航条的外观。

breadcrumb 创建带有层次的导航结构(面包屑)。

【分页】

pagination,并根据情况对页码使用.disabled 类、 .active 类。

.pagination-lg 或 .pagination-sm 类提供了额外可供选择的尺寸。

pager上一页和下一页的简单翻页。并可通过previous,next类标示。

【标签】

label标签基类,可通过label-default, label-primary, label-success, label-info, label-warning, label-danger改变标签的外观。

badge,可以很醒目的展示新的或未读的信息条目。

7

【其它】

缩略图

提示框

进度条

媒体对象等

定制样式

1

BootStrap提供了根据自己需要的组件及jquery插件进行定制,使用者也可以直接修改Less源码。

END

总结

1

本篇经验仅从全局简单介绍Bootstrap的内容,细节部分并不具体,Bootstrap的使用非常灵活,可以对各种组件进行合并使用(如:为标签页项 添加带下拉菜单),建议使用过程中实时参考官方文档,官方文档有更详细的下载及使用说明,针对具体样式有直观样例,而且有丰富的主题案例。