使用bootstrap3.0搭建一个具有自定义风格的侧边导航栏
由于工作变动,新的项目组,可能会涉及到更多的类似于后台管理系统这一类的项目,而且开发可能更加偏向于传统型的开发,希望今后能够在新的项目中能够用得上vuejs吧!
接手项目的时候,就是一个后台管理系统,而且采用了Bootstrap进行搭建,页面大致模型也基本搭建成功了。然后看到页面上有一个侧边栏,之前是他们从别的地方找出来的一个侧边栏,给人的感觉总是差那么点意思。所以重构了一下。具体的效果,请移步bootstrap-sidebar 。
其实主要就解决了两个问题:
1、与内容等高,最小高度为一屏的高度。
之前是设置了一个最小高度,min-height: 1200px; 问题在于当页面内容很少的时候,不足一屏,此时也会出现滚动条。
html {
min-height: 100%;
position: relative;
}
关键点在于给html标签设置一个position:relative; 然后左侧导航栏进行相对定位的时候,才能相对到html标签,而不能让其默认相对body标签,经过验证,即使给body标签设置同样的样式的时候,在不满一屏和超过一屏当中切换的时候,无法达到我们预想的效果,而设置html标签的属性,则能完美达成。
2、自定义部分导航样式
这块其实就是写css咯,每一个前端应该都是从这里入门的吧!
我使用了scss预编译,本身Bootstrap官方也提供了sass版本的。所以继续写就好了。也没什么好说的!
@import "./bootstrap/variables";
$brand-muted: $gray-light !default;
$scences: ( "primary": $brand-primary, "success": $brand-success, "info": $brand-info, "danger": $brand-danger, "muted": $brand-muted, "warning": $brand-warning);
// 导航栏的辅助色调是否以自己设置的色值来显示,还是使用primary、 success等色值
// 自定制的话$isCustomNavBgColor为true,$navBgColor传入自定制的色值
$isCustomNavBgColor: false;
$navBgColor: orange;
html {
min-height: 100%;
position: relative;
} .wrap {
padding-left: 20%;
} @media screen and (min-width: 1500px) {
.wrap {
padding-left: 300px;
}
} @media screen and (max-width: 1200px) {
.wrap {
padding-left: 240px;
}
} /**
* 背景色的设置
* params: $color 初始化默认颜色 $lignten 提升亮度百分比
*/ @mixin changeBgColor($color: rgb(34, 40, 55), $lignten: 0) {
@if $lignten && $lignten !=0 {
background-color: lighten($color, $lignten);
}
@else {
background-color: $color;
}
} @each $scence,
$theme in $scences {
$color: map-get($scences, $scence);
@if $isCustomNavBgColor==true {
$color: $navBgColor;
}
.nav-#{$scence} {
li {
a {
color: lighten($color, 45%);
padding: $panel-body-padding;
&:hover {
color: lighten($color, 45%);
background-color: darken($color, 15%);
}
&:focus {
@include changeBgColor($lignten: 10%);
}
}
&.active {
a {
color: $color;
&:hover {
color: lighten($color, 45%);
}
}
}
&.active:after {
background-color: $color;
}
}
}
} .nav-aside {
@include changeBgColor();
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 20%;
min-width: 240px;
max-width: 300px;
li {
position: relative;
a {
@include changeBgColor($lignten: 10%);
}
&.active:after {
content: "";
position: absolute;
right: 0;
top: 0;
bottom: 0;
width: 4px;
}
}
} .nav {
#{&} {
margin-top: 2px;
li a {
text-indent: 1em;
}
}
}
使用bootstrap3.0搭建一个具有自定义风格的侧边导航栏的更多相关文章
- [置顶]
bootstrap自定义样式-bootstrap侧边导航栏的实现
前言 bootstrap自带的响应式导航栏是向下滑动的,有时满足不了个性化的需求,需要做一个类似于android drawerLayout 侧滑的菜单,这就是我要实现的bootstrap自定义侧滑菜单 ...
- 自定义bootstrap样式-9行样式自定义漂亮大气bootstrap导航栏
有人说前端发展太快,框架太多,各有所需,各有所长.看看这幅图,估计都知道这些框架,但是大部分公司中实际要用到的也就那么几个. 发展再快,框架再多.还是得回到原点,不就是Html+Css+JavaScr ...
- Android自定义View——实现字母导航栏
1.自定义View实现字母导航栏 2.ListView实现联系人列表 3.字母导航栏滑动事件处理 4.字母导航栏与中间字母的联动 5.字母导航栏与ListView的联动 1.先看主布局,方便后面代码的 ...
- 从0搭建一个基于 ELK 的日志、指标收集与监控系统
为了使得私有化部署的系统能更健壮,同时不增加额外的部署运维工作量,本文提出了一种基于 ELK 的开箱即用的日志和指标收集方案. 在当前的项目中,我们已经使用了 Elasticsearch 作为业务的数 ...
- react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)
react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redu ...
- ios 实现自定义状态栏StatusBar 和 导航栏navigationBar 的状态和颜色
很多app中可以看到不同与导航栏的状态栏的颜色,他妈的真绕嘴. 一.更改状态栏颜色 (StatusBar) 就是比如导航栏是红色的状态栏是绿色的. 要实现这样的效果其实很简单,就是添加一个背景view ...
- 【VIP视频网站项目一】搭建视频网站的前台页面(导航栏+轮播图+电影列表+底部友情链接)
首先来直接看一下最终的效果吧: 项目地址:https://github.com/xiugangzhang/vip.github.io 在线预览地址:https://xiugangzhang.githu ...
- 一个可以拓展的垂直多级导航栏 Demo
大四党忙忙碌碌找工作,博客荒废久矣,可谓:终日昏昏醉梦间,忽闻春尽强登山.因过竹院逢僧话,偷得浮生半日闲. 这是个垂直的导航栏,可以有无限多层的子级菜单,看代码注释就够了: <!DOCTYPE ...
- MFC office2007风格设置左侧导航栏 [转]
当基础的框架搭好以后,我想为其添加一个左侧导航栏,过程如下:在框架类的头文件添加一个导航栏参数: CMFCOutlookBar m_navigation; 为了完善功能,在导航栏里面我添加了一个CTr ...
随机推荐
- Android 单元测试覆盖率计算
在工程下面的build.gradle 增加配置 1.增加Plugin apply plugin: 'jacoco' 2. 增加jacoco版本 jacoco{ version "0.7.4. ...
- 关于Firedac的一点看法
Firedac集成在Delphi中已经有几个版本了,偶尔也拖到Form上试着用用,虽然知道Firedac有可能是最终的(或很很长时间内)数据访问技术,可一直不能接受它,其中最大的原因就是过于“复杂” ...
- RedHat7.3安装MySQL5.7
1.下载Mysql安装包 https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar 附百度 ...
- nginx只允许移动端访问( 判断拦截pc浏览器访问)
set $mobile_request '0'; if ($http_user_agent ~* (Android|webOS|iPhone|iPod|BlackBerry)) { set $mobi ...
- 瑞萨S5D9实现UART环形缓冲
队列的常见两种形式,普通队列和环形队列: 普通队列: 环形队列: 当有大量数据的时候,我们不能存储所有的数据,那么计算机处理数据的时候,只能先处理先来的,那么处理完后呢,就会把数据释放掉,再处理下一个 ...
- Azure PowerShell (15) 批量导出Azure ASM/ARM VM信息
<Windows Azure Platform 系列文章目录> 客户又提出新的需求,需要知道所有订阅下的虚拟机数量.运行情况等信息. 我花了点时间,写了一个PowerShell脚本,发布到 ...
- 【sql】之case when then else end
select a.`name`, sum(( END)) '语文', sum(( END)) '数学', sum(( END))'英语' from t_score a GROUP BY a.`name ...
- 【linux】centos6.9设置etc0网卡开机自动获取ip
在vm新安装的centos系统中,一般选择NAT来设置和主机共享局域网,通过ifconfig etc0 192.168.xx.xx 这种作法机器重启之后就会失效,所以可以使用更改文件的方式完成设置ce ...
- html框内文字垂直居中的方法
由于无法知道框内文字的高度,很难确定垂直空间的位置.vertical-align:middle仅对td元素有效,无论单行和多行均可实现垂直居中.
- Ubuntu 14.10 下ZooKeeper+Hadoop2.6.0+HBase1.0.0 的HA机群高可用配置
1 硬件环境 Ubuntu 14.10 64位 2 软件环境 openjdk-7-jdk hadoop 2.6.0 zookeeper-3.4.6 hbase-1.0.0 3 机群规划 3.1 zoo ...