bootstrap使用手记(一)

1.bootstrap是移动端优先的响应式工具,CSS中的代码默认是应用于移动端的,因此在写样式时,应注意先写移动端,再用媒体查询@media(){}写平板或PC的样式。

2.bootstrap除了提供了一套用于响应式布局的栅格系统,还提供了一些预设的组件和js插件,非常省事儿,但是如果预设样式和实际项目中需要的效果相差较大,那仍然会带来很多调整的工作量。比如navbar预设的背景色就只有黑色与浅灰,而且还有圆角和下边距,如果实际设计与预设是冲突的,那还得写CSS去覆盖预设样式,有时候由于层叠关系,还不得不动用!important。

3.如果要为不同的适配页面分别添加相应的js,一个可用的技巧是添加设备宽度的判断。

var winWidth = $(window).width();

if(winWidth > 1200){

//这里写适用于屏幕宽度大于1200px的设备的js

}else{

//这里写适用于屏幕宽度小于1200px的设备的js

}

4.理解栅格。

bootstrap栅格系统有12格,在1200px以上的设备中,.container提供了最大宽度:1170px。这让人很疑惑,因为12除不尽1170,如果最大宽度为1200px就好了,但事实并非如此,我们来看bootstrap.css源码:

bootstrap左右两边默认设置的“间隔”是15px,这就可以理解为啥最大宽度是1170:bootstrap设计者为了在1200px宽的设备两边留出一定的空白,预设是15px,因此最大宽度只好是1170px了,受应试教育影响的我们可能感染了某种幻觉:如果计算出来的数字不够和谐,就要怀疑是不是哪儿错了。可人家老外没这种凑整的想法,你看,栅格宽度用的都是百分比:

有人可能会说,container的width是1170,左右padding是15,所以加起来宽正好1200。其实我也为此困惑了一小会儿,但翻了下源码就明白不是这样滴:

全是border-box啊。

这下就好理解为啥要给row设置-15px的margin了。因为container总宽只有1170,左右共有30的padding,于是包在container里面的row最大宽度就只有1140,这下所有col栅格的百分比乘的都是1140而不是1170,这怎么行呢。只好用负的margin来增加宽度。

那为啥用负的margin可以增加宽度呢,这涉及到盒模型的原理。《CSS权威指南》中给出了一条原则:块元素左右外边距、左右border、左右内边距和width这七个值必须等于包含块content的宽。对于row而言,包含块container的content宽为1140px,row的那七个值-15px+0+0+width+0+0+(-15px)必须等于1140,因此width只好等于1170了。

时间: 2024-10-24 10:04:37

bootstrap使用手记(一)的相关文章

[分享]源代码&开发手记:SAE应用“车百科” (Python + SAE + Bottle + Bootstrap) - Bottle - Python4cn(news, jobs)

[分享]源代码&开发手记:SAE应用"车百科" (Python + SAE + Bottle + Bootstrap) - Bottle - Python4cn(news, jobs) [分享]源代码&开发手记:SAE应用"车百科" (Python + SAE + Bottle + Bootstrap)[分享]源代码&开发手记:SAE应用"车百科" (Python + SAE + Bottle + Bootstrap) -

ABP开发手记1 - 开篇

点这里进入ABP开发手记目录 基于DDD的现代ASP.NET开发框架 - ABP ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspne

Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQL Server 时间紧,没人带,只能硬着头皮,最后如期完成,但是也遗留了几个问题. 问题: 1.页面查询条件太复杂,太多的checkbox,jQuery操作DOM虽然方便,但是组合成json提交给后端还是比较麻烦,有没有天然支持json的前端框架或者脚本语言? html控件做的任何修改,都自动保存

CSS,bootstrap表格控制当td内容过长时用省略号表示,以及在不使用bootstrap时过长也用省略号表示

首先需要在table中设置table-layout:fixed; <table style="table-layout:fixed"></table> 然后在表头th中设置每列的宽度 <table style="table-layout:fixed"> <th width="10%">Title01</th> <th width="20%">Title02

Bootstrap &amp; Font Awesome 学习笔记

学习网站:http://bootstrap.ninghao.net/index.html https://www.freecodecamp.cn http://www.runoob.com/bootstrap/bootstrap-tutorial.html Bootstrap 为快速简单的实施 Web 开发准备的前端架构. Bootstrap将会根据你的屏幕的大小来调整HTML元素的大小 -- 强调 响应式设计的概念. 通过响应式设计,你无需再为你的网站设计一个手机版的.它在任何尺寸的屏幕上看起

第二百三十八节,Bootstrap输入框和导航组件

Bootstrap输入框和导航组件 学习要点: 1.输入框组件 2.导航组件 3.导航条组件 本节课我们主要学习一下Bootstrap的两个个组件功能:输入框组件和导航导航条组件. 一.输入框组件 文本输入框就是可以在<input>元素前后加上文字或按钮,可以实现对表单控件的扩展. 在左侧添加文字 input-group-addon样式class类,写在input同级的span里,给输入框添加一个左片段(Bootstrap)input-group样式class类,写在input外层div里,将

第二百三十一节,Bootstrap 介绍

Bootstrap 介绍 学习要点: 1.Bootstrap 概述 2.Bootstrap 特点 3.Bootstrap 结构 4.创建第一个页面 5.学习的各项准备 本节课我们主要了解一下 Boostrap 历史.特点.用途,以及为什么选择 Boostrap 来开 发我们的 Web 项目. 一.Bootstrap 概述 Bootstrap 是由 Twitter 公司(全球最大的微博)的两名技术工程师研发的一个基于 HTML.CSS.JavaScript 的开源框架.该框架代码简洁.视觉优美,可

Flask---使用Bootstrap新建第一个demo

Flask---使用Bootstrap新建第一个demo 参考自http://www.jianshu.com/p/417bcbad82fb 还有<Flask web开发> 前端用到Bootstrap开源框架,Bootstrap是客户端框架,后台当然就是Flask了. 服务器需要做的只是提供引用了Bootstrap层叠样式表(CSS)和JS文件的html响应,并且在html.css和js代码中实例化需要的组件,这些操作的最理想的执行环境就是模板 关于模板的介绍及其实现原理:https://kb.

bootstrap中的对话框-dialog

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> <meta http-