发表于: 2018-06-27 12:19:47

14 643


今日的内容:

最近几天完成了任务8 任务9

通过任务练习了boostrap和响应式布局

明日计划:

完成任务8,9的验收

继续学习剩余boostrap内容

任务收获:

每天学习boostrap的组件并且做了总结

Media object

基于flexbox的重复性强的图文组合布局,图片和文字左右分开布局

1.       整体布局div.media

a)       图片内容Img.mr-n

b)       文字内容div.meida-body

                    i.            Hn.mt-n标题

                   ii.            Text

                  iii.            Media

                  iv.            Other

2.       Alignment

a)       Img.align-self-start/center/end

3.       Order

a)       文字和图片可改变顺序

4.       Media list

a)       Ul>li.media>img+media-body>other

Breadcrumb

i.            Nav

a)       ol.breadcrumb

                    i.            li.breadcrumb-item

1.       a

                   ii.            li.breadcrumb-item active (current one)

b)       4.0改变分隔符的方法

                    i.            Breadcrumb-item::before{content”change”}

c)       Aria声明标签意义

                    i.            Nav aria-label=breadcrumb

                   ii.            Last li aria-current=page

Nav

i.            Ul.nav

a)       Li.nav-item

                    i.            A.nav-link  active/disable

ii.            Nav,使用flex布局,所以不一定要使用ul>li 父级元素使用很灵活,只要父元素nav子元素nav-link就好

a)       Nav.nav

                    i.            A.nav-link

iii.            Flex

a)       Alignment

                    i.            使用flex对齐方法控制nav对齐

                   ii.            水平justify-content-

                  iii.            垂直align-items

b)       Flex-column

                    i.            垂直方向nav

iv.            不同的样式

a)       .nav后加入样式class

b)       TAB Nav-tabs

c)       Pill Nav-tabs

d)       Nav-fill占据整行,根据内容宽度排列

                    i.            ul>li的导航条,在a上必须设置nav-item才能使nav-fill生效

e)       Nav-justified 占据整行等宽

                    i.            ul>li的导航条,在a上必须设置nav-item才能使nav-fill生效

v.            Flex-size-value 设置不同屏幕的样式

a)       Flex-sm-fill/flex-md-justified

b)       Flex-column/flex-md-row

Carousel

i.            Div..carousel slide

a)       Id=carouselExampleSlideOnly

                    i.            Div.carousel-inner

1.       Div.carousel-item active>Img.d-block w-100

2.       Div.carousel-item>Img.d-block w-100

b)       Id=carouselExampleControls; data-ride=carousel

                    i.            Div.carousel-inner

1.       Div.carousel-item active>Img.d-block w-100

2.       Div.carousel-item>Img.d-block w-100

3.       A.carousel-control-prev href=#carouselExampleControls role=button data-slide=prev

a)       Span.carousel-control-prev-icon

b)       Span.sr-only 

4.       A.carousel-control-next href=#carouselExampleControls role=button data-slide=next

a)       Span.carousel-control-next-icon

b)       Span.sr-only 

c)       Id=carouselExampleIndicators data-ride=carousel

                    i.            Ol.carousel-indicators

1.       li.active data-target=#carouselExampleIndicators data-slide-to=0

2.       li. data-target=#carouselExampleIndicators data-slide-to=1

                   ii.            Div.carousel-inner

1.       Div.carousel-item active>Img.d-block w-100

2.       Div.carousel-item>Img.d-block w-100

d)       Div.carousel-itemCaption

                    i.            Div.carousel-inner

1.       Div.carousel-item active

a)       Img.d-block w-100

b)       Div.carousel-caption d-none d-md-block

                                                      i.            H5

                                                     ii.            P

ii.            Carousel细节

a)       Div.carousel 相对定位作为ol.indicatorsa.carousel-control的位置参照

b)       Ol.indicators flex,绝对定位在正中下方10px距离两边margin15%

                    i.            Listjustify-conten-center居中,有间距

                   ii.            想改变样式要改变list内容

c)       A.carousel-control 超链接绝对定位在父元素左右两边,top=bottom=0垂直居中 flex布局子元素,宽度15%opacity=0.5

                    i.            Spanflex布局,父元素设置align-item-centerjustify-content-center,背景图片为三角,宽高20px

                   ii.            想改变样式要改变span中的背景图片和大小

d)       Div.Carousel-item 宽度100% displayblock 绝对定位作为图片的参照物

                    i.            Img w-100默认,d-block默认 , flex布局align-items-center

                   ii.            可改变大小,但需用绝对定位布局,

                  iii.            相关的aol也需改变位置

e)       Indicatora是根据最外层div.carousel不定宽绝对定位的,所以他们俩相对图片默认位置不变

f)        Inner宽度100%撑起carousel宽度和高度,所以img宽度小于100%时需要改变其他元素布局

g)       Carousel-item不一定是图片还可以是card

h)       Caption可以做成悬浮在图片上的文字

Card

1.       没有default margin 容易与其他component排列

2.       Flex布局 可以很容易居中对齐

3.       不定宽,很容易控制宽度大小

4.       基本组成

a)       Div.card>img.card-img-top + div.card-body

                    i.            Div.card-body>h5.card-title + p.card-text + a.card-link

                   ii.            Card-Body的内容可以有很多类型元素 list a

5.       其他组成

a)       可以用list代替或补充card.body

                    i.            Ul.list-group list-group-flush>li.list-group-item

b)       可以加入headerfooter

                    i.            Div.card-header/div.card-footer

                   ii.            H5.card-header

c)       加入blockquote

d)       加入nav

6.       Sizing

a)       默认100%父元素width,所以需要自行设置宽度

                    i.            Col/width相对/绝对宽度/sizing-utilities

7.       Alignment text-alignment

8.       Img

a)       Img位置-top/bottom

b)       文字覆盖在图片上

                    i.            Img.card-img + div.card-img-overlay

9.       Card-group 基于flex布局多个card

a)       Card-group的各个元素会对齐

10.    Card-deck 有间隔的card-group

11.    Card-column 垂直排列cards

Button

1.       Button可用button或者a/inputsubmitbuttonreset)标签,a标签必须有role=button声明语义

2.       Button.btn声明,.btn-/btn-outline声明样式,btn-有背景色,btn-outline-hover时有背景色

3.       .btn将元素定义行内块级元素,button默认为内容宽高,但可以定义元素宽高

a)       可用数值定义

b)       可用bs4自带btn-lg/btn-small

c)       .btn-block声明button元素占满整行

4.       不同状态不同样式

a)       .active声明button被点击状态,并设置aria-pressed=true

b)       Disable属性声明button不可用状态,a标签需要声明class .disabled 设置aira-disable=true

5.       Toggle

a)       Data.toggle=buttonaria-pressed=true/falseactive classautocomplete=off/on 组成button控件操作botton

6.       Checkbox and radio

a)       Button样式的checkboxradio

b)       Div.btn/btn-group btn-group-toggle data-toggle=buttons

                    i.            Label.btn btn- (active) *n

1.       Input type=checkbox/radio name id autocomplete=off (checked)      

c)       Label标签给选项添加文字 autocomplete是自动完成表单功能

Button group

1.       Button group即多个同级别.btn标签内嵌在.btn-group role=x标签内的组合

2.       Role标签决定了button-group的语义并且声明不同aira-label

3.       Role一般有group/toolbar两种

a)       Toolbar是多个group的合集,作为多个button-group的父元素

4.       Div.btn-toolbar role=toolbar aria-label=toolbar with button

a)       Div.btn-group role=group aria-label=first group

                    i.            Button type=button btn-

                   ii.            Button type=button btn-

b)       Div.btn-group role=group aira-label=second group

                    i.            Button type=button btn-

                   ii.            Button type=button btn-

c)       Toolbarflex布局

5.       Btn-group可以用-lg/-small控制大小,也可以CSS自定以宽高

6.       Input-group可以作为button-group同级元素内嵌在toolbar

7.       Dropdown组件可以作为button group中的子元素

a)       Dropdown组件本身就是一个button-group

8.       .btn-group-vertical 垂直的button group

a)       垂直的button-groupdropdown会覆盖下面的元素

b)       所以需要用别的组件

Collapse

1.       Collapse就是一个button元素(a/button标签)加上一个隐藏的collapse元素,用button控制内容元素的显示

2.       格式

a)       A role=button hrep=#collapseExample(collapse’s ID)

b)       button type=button data-target=#collapseExample(collapse’s ID)

                    i.            Class=btn btn-/btn-outline

                   ii.            data-toggle=collapse

                  iii.            aria-expanded=false

                  iv.            aira-control=collapseExample

c)       div.collapse id=collapseExample

                    i.            div.card card-body(content)

3.       aria-expanded是控制的核心  如何不是button标签 必须role=button

4.       data-targetbutton指定控制的元素ID

5.       collapse的内容要在页面中排版,并且不会覆盖其他元素,displaynoneblock切换

6.       多个按钮和collapse内容通过ID对应

7.       Accordion

a)       整体div#accordion

b)       Buttoncard-header

                    i.            Card-header id=heading

c)       内容在card-bodycard-bodycollapse

                    i.            Div.collapse show

                   ii.            data-parent=#accordion

                  iii.            aria-labelledby=#header id

d)       多个card垂直排列

e)       像手风琴一样

f)        默认展开的collapse元素 给collapse 设置css show

Dropdown

1.       Dropdown是按钮(abutton)和内容(abuttonlist)组合,内容必须定义为positionrelative

2.       框架

a)       最外层div.dropdown 设置positionrelative

                    i.            Btn-group 同行多个dropdown

                   ii.            Drop方向: dropup dropright dropleft

b)       Button按钮

                    i.            Button.btn btn- dropdown-toggle type=button id=xxx data-toggle=dropdown aria-expanded=false aria-haspopup

                   ii.            A.btn btn-dropdown-toggle role=button id=xxx data-toggle=dropdown aria-expanded aria-haspopup

c)       Dropdown内容

                    i.            Div.dropdown-menu aria-labelledby=buttonID

                   ii.            Dropdown-menu-left/right-center

1.       a/button .dropdown-item

a)       .active

b)       .disabled

2.       h6. Dropdown-header 下拉菜单标题

3.       div. dropdown-divider 下拉菜单分割线

3.       button按钮与下拉菜单按钮分离

a)       button/a 按钮名称

b)       button/a 添加class data-toggle-split

4.       dropdown内容基本是button组成,细节设置和button设置相似

5.       dropdown的样式可以单独设置,dropdown位置是不需要担心按钮设置的变化的

Nav-bar

1.       nav-barbutton/collapse/dropdowns/forms的组合组件

a)       nav.navbar nav-expand-size

                    i.            a.navbar>img+content

                   ii.            form.form-inline>input/button/div.input-group

                  iii.            span.navbar-text

                  iv.            a/button.navbar-collapse collapse

1.       ul.navbar-nav>li.nav-item>a.nav-link

a)       li.nav-item dropdown

                                                      i.            a.nav-link dropdown-toggle

                                                     ii.            div.dropdown-menu>a.dropdown-item/form

b)       li.nav-item form

2.       div.navbar-nav>a.nav-item nav-link

2.       最外层nav标签,也可用div但要声明 role=navigation

a)       navclass=navbar nav-expand-size navbar-color bg-color

b)       navbar默认占满整行,可以通过给其外层或内容增加container调整视觉布局

c)       navflex布局,可以使用flex布局调整navbar的样式布局

d)       nav可以设置position fixed/sticky-top/bottom设置位置

e)       navbar-dark/light声明了按钮的颜色

3.       a.nav-brand navbar 可以看作navbar的标题

a)       a标签是因为很多时候标题是公司的名称或logo,可能会用于跳转

b)       Brand的内容可以是文字和图片的组合

c)       Navbar-brand可以放入collapse里作为下拉菜单的标题

d)       Navbar-brand 可以和按钮button布局或交换位置

e)       Button.navbar-toggler type=button datatoggle=collapse data-target=#collapseID aria-control=collapseID aria-expanded=false aria-label=taggle collapse

                    i.            Navbar-toggler是控制collapse的按钮,navbar的主题内容是collapse的内容

                   ii.            按钮的样式span.navbar-toggler-icon

                  iii.            最重要的data-toggle=collapse data-target=#ID

f)        Div.collapse navbar-collapse id=collapseID 是下来菜单的盒子

g)       Navbar的主题是一个nav,注意区别是class=navbar-nav 同样可以两种方法

                    i.            Ul.navbar-nav>li.nav-item (active)>a.nav-link

                   ii.            Div.navbar-nav>a.nav-item nav-link (active disabled)

h)       Dropdow可以作为nav-item

                    i.            Li.nav-item dropdown

1.       A.nav-link dropdown-toggle id=menu_drop data-toggle=dropdown aria-haspopup=true aria-expanded=false

2.       Div.dropdown-menu aria-labelledby=menu_drop(dropdownID)

a)       A.dropdown-item

i)         forms可以作为nav-item也可以作为nav-bar元素

                    i.            form.form-inline  

1.       input.form-control

2.       button

                   ii.            form.form-inline

1.       div.input-group

a)       div.input-group-prepend

                                                      i.            span.input-group-text id=xxx

b)       input.form-control aria-label= aria-describedby=xxx

j)         text也可以是navbar的元素

 任务的问题

1.开始时太依赖boostrap 导致自适应做不下去,后来多用了media解决了些问题

2.字体大小随屏幕的变

3.两端对齐

4.背景图片,雪碧图的自适应



返回列表 返回列表
评论

    分享到