发表于: 2019-08-15 21:55:17

1 990


今天完成的事情:

做完了任务8,但还有很多要调整的自适应样式

主要用到的是bootstrap中的导航条、轮播图和栅格

导航条

.navbar用于设置导航条,通常是一个<nav>元素或者被指定了role=“navigation”的<div>元素

.navbar-default 和.navbar-inverse 分别是默认样式和默认样式的反色样式。

可以在导航条最前端添加logo,或者按钮表单等

bootstrap中的导航条在移动端可被隐藏,并显示一个按钮用于打开导航条组件

.navbar-toggle是导航条的按钮

.collapse 设置后默认导航组件被隐藏

.navbar-collapse 装载被折叠起来的导航条


任务8中,需要对导航条的默认样式进行修改。

.navbar-default {

  background-image:         linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);

  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);

}

bootstrap.theme.css样式表中的默认样式设置背景为白银色渐变。

将其改为绿色,如下(添加到自己的css文件中即可覆盖)

.navbar-default {

  background-image: linear-gradient(to bottom, #29b078 0%, #29b078 100%);

  border:none !important;

}

.navbar-default .navbar-nav>li>a { /*更改导航按钮颜色和背景色*/

    padding-bottom: 25px;

    color: #fff !important;

}

.navbar-default .navbar-nav > .active > a {  /*更改导航按钮被激活链接的颜色和背景色*/

  color: #fff !important;

  background-color: #29b078 !important;

}

.navbar-collapse { 

   right: 0;  

  position: absolute;

  padding: 0 50px;

  border: none !important;

  z-index: 100;

} /*调整导航组件的位置*/

小结:在bootstrap源样式表中找到对应的类进行针对性的修改就可以实现样式的更改。有时需用到!important强制更改。


栅格

bootstrap要求将网格布局放置在一个特定的容器中,这个容器通常是container或者container-fluid

container用于固定宽度并支持响应式的容器,自带一个边距

container-fluid用于占领viewport宽度的100%容器,没有边距,占满父元素宽度。

在容器内网格被分成一行12等分。

指定class=“row”来定义行,指定class=“col-xx-N”来定义单元格,其中xx可选择lg、md、sm、xs,对应不同的viewport;N在1~12之间,表示占据N等分。在一个div中添加不同viewport 对应得类就可以实现自适应。

row必须放在container或者container-fluid中,col-xx-N必须放在row中。

col-xx-N和row默认15px的左右内边距,外层容器默认-15px的左右外边距,抵消了接壤的内边距。

因此,最外层的单元格会紧贴上层容器的边框。


单元格的偏移:col-xx-offset-N 是通过设置margin-left实现单元格向又偏移。易出错。

单元格的排序,col-xx-push-N 和col-xx-pull-N push向左推,pull向右拉,可实现单元格交换位置,也可以用于偏移,是基于left和right的值实现的,相比offset更稳定。

bootstrap的网格系统也是支持嵌套的,嵌套时不需要再放在container或者container-fluid内。可再某一列中再次添加class=“row”增加行。


当单元格宽度在一行内超过了12时,会自动换行,但有时自动换行后,因为上一行单元格高度不一致,无法与上一行的第一列左对齐。

这时需要列重置,使用clearfix样式,并结合visible-xx,效果如下

小结:bootstrap的栅格布局可以解决大部分自适应的问题。


 @media媒体查询

@media 可以针对不同的屏幕尺寸设置不同的样式。

1. 最大宽度max-width

“max-width”是媒体特性中最常用的一个特性,其意思是指媒体类型小于或等于指定的宽度时,样式生效。如:

@media screen and (max-width:480px){

 .ads {

   display:none;

  }

}

上面表示的是:当屏幕小于或等于480px时,页面中的广告区块(.ads)都将被隐藏。

2.最小宽度min-width

“min-width”与“max-width”相反,指的是媒体类型大于或等于指定宽度时,样式生效。

上面表示的是:当屏幕大于或等于900px时,容器“.wrapper”的宽度为980px。

3.多个媒体特性使用

Media Queries可以使用关键词"and"将多个媒体特性结合在一起。也就是说,一个Media Query中可以包含0到多个表达式,表达式又可以包含0到多个关键字,以及一种媒体类型。

当屏幕在600px~900px之间时,body的背景色渲染为“#f5f5f5”,如下所示。

@media screen and (min-width:600px) and (max-width:900px){

  body {background-color:#f5f5f5;}

}

更多方式:https://www.runoob.com/cssref/css3-pr-mediaquery.html


明天计划的事情:

还有很多需要调整的细节,包括:

1、层次化的响应。

2、职业列表页中取消换行;

3、解决职业列表页hover效果不完全覆盖问题;

4、调整职业列表页中内部边框

5、在首页学员展示部分在xs屏中添加间距;

6、要解决首页合作企业的品牌图标使用雪碧图难以自适应,宽度缩小后不能等分的问题


遇到的问题:

1、随着页面宽度缩短,当“高效”部分文字换行时“人脉”部分会被挤到右边,需要列重置。


添加<div class="clearfix visible-sm"></div>

2、首页隐藏的导航条展开后会被轮播图覆盖

分析错误原因,是轮播图遮挡住了导航条

把float:right改成 right:0,

并添加绝对位置和z-index更换轮播图和导航条的顺序。

但还存在的问题是导航条展开后不是把轮播图推下去,而是遮盖住。明天解决这个问题。

 

收获

bootstrap栅格的使用,和媒体查询


返回列表 返回列表
评论

    分享到