古人已用三冬足,年少今开万卷余。这篇文章主要讲述09 bootstrap快速搭建前端相关的知识,希望能为你提供帮助。
"""
addClass()classList.add()
removeClass()
hasClass()
toggleClass()
"""
- css操作
.css(属性名,属性值) """ jQuery链式操作 一行代码可以搞定很多事情 jQuery对象在调用jQuery方法之后返回的还是当前对象本身 (本质:return self) """
- 位置操作
scrollTop scrollLeft # 回到顶部 $(window).scrollTop()# 获取 $(window).scrollTop(300)# 设置
- 尺寸操作
# 文本的高和宽 height() # 文本+padding innerHeight() # 文本+padding+border outterHeight()
- 【09 bootstrap快速搭建前端】文本操作
""" .text()文本innerText() .html()文本+标签innerHTML() 括号内不加参数就是获取 加了就是设置 """ """ 获取值 .val()value 获取文件数据 转成标签对象.files """
- 属性操作
""" .attr() .attr(\'class\')getAttribute .attr(\'class\',\'c1\')setAttribute .removeAttr()removeAttribute# 针对checkbox、radio、option选中的checked、selected属性不要用attr 建议你使用prop() prop(\'checked\') prop(\'checked\',true/false) """
- 文档处理
# jQuery如何创建标签 document.createElement(\'p\')===$(\'< p> \')A.append(B) B.appendTo(A)prepend() prependTo()...remove()移除标签 empty()清空标签内部所有的内容
- 事件处理
# jQuery两种绑定事件的方式 # 第一种 $(\'#d1\').click(function(){}) # 第二种 $(\'#d1\').on(\'click\',function(){})""" this 指代的就是当前被操作对象本身(有点像面向对象的self) """ # 克隆事件 clone()默认情况下只克隆标签和文本不克隆事件 clone(true) # 自定义模态框 绑定事件控制标签类属性的添加和删除 # 左侧菜单 一行代码搞定 # 返回顶部 $(window).scroll(function(){}) # 自定义登陆校验功能 .val() # hover事件 $(\'#d1\').hover(function(){})# 进出都会触发$(\'#d1\').hover( function(){}, function(){} ) # input框实时监控输入内容事件 $(\'#d1\').on(\'input\',function(){}) # 键盘按键事件 $(window).keydown(function(event){ event.keyCode }) $(window).keyup(function(){})""" web领域永远没有绝对的安全!!! """
- jQuery结束
- 前端框架Bootstrap
- 手动搭建一个图书管理系统页面
<
script>
$(\'#d2\').click(function (e) {
$(\'#d1\').text(\'宝贝 你能看到我吗?\')
// 阻止标签后续事件的执行 方式1
// return false
// 阻止标签后续事件的执行 方式2
// e.preventDefault()
})
<
/script>
阻止事件冒泡
<
script>
$(\'#d1\').click(function () {
alert(\'div\')
})
$(\'#d2\').click(function () {
alert(\'p\')
})
$(\'#d3\').click(function (e) {
alert(\'span\')
// 阻止事件冒泡的方式1
// return false
// 阻止事件冒泡的方式2
// e.stopPropagation()
})
<
/script>
事件委托
<
button>
是兄弟,就来砍我!!!<
/button>
<
script>
// 给页面上所有的button标签绑定点击事件
// $(\'button\').click(function () {// 无法影响到动态创建的标签
//alert(123)
// })// 事件委托
$(\'body\').on(\'click\',\'button\',function () {
alert(123)// 在指定的范围内 将事件委托给某个标签 无论该标签是事先写好的还是后面动态创建的
})
<
/script>
页面加载
# 等待页面加载完毕再执行代码
window.onload = function(){
// js代码
}"""jQuery中等待页面加载完毕"""
# 第一种
$(document).ready(function(){
// js代码
})
# 第二种
$(function(){
// js代码
})
# 第三种
"""直接写在body内部最下方"""
动画效果
$(\'#d1\').hide(5000)
w.fn.init [div#d1]
$(\'#d1\').show(5000)
w.fn.init [div#d1]
$(\'#d1\').slideUp(5000)
w.fn.init [div#d1]
$(\'#d1\').slideDown(5000)
w.fn.init [div#d1]
$(\'#d1\').fadeOut(5000)
w.fn.init [div#d1]
$(\'#d1\').fadeIn(5000)
w.fn.init [div#d1]
$(\'#d1\').fadeTo(5000,0.4)
w.fn.init [div#d1]
补充
# each()
# 第一种方式
$(\'div\')
w.fn.init(10) [div, div, div, div, div, div, div, div, div, div, prevObject: w.fn.init(1)]
$(\'div\').each(function(index){console.log(index)})
VM181:1 0
VM181:1 1
VM181:1 2
VM181:1 3
VM181:1 4
VM181:1 5
VM181:1 6
VM181:1 7
VM181:1 8
VM181:1 9$(\'div\').each(function(index,obj){console.log(index,obj)})
VM243:1 0 <
div>
?1?<
/div>
?
VM243:1 1 <
div>
?2?<
/div>
?
VM243:1 2 <
div>
?3?<
/div>
?
VM243:1 3 <
div>
?4?<
/div>
?
VM243:1 4 <
div>
?5?<
/div>
?
VM243:1 5 <
div>
?6?<
/div>
?
VM243:1 6 <
div>
?7?<
/div>
?
VM243:1 7 <
div>
?8?<
/div>
?
VM243:1 8 <
div>
?9?<
/div>
?
VM243:1 9 <
div>
?10?<
/div>
?# 第二种方式
$.each([111,222,333],function(index,obj){console.log(index,obj)})
VM484:1 0 111
VM484:1 1 222
VM484:1 2 333
(3) [111, 222, 333]
"""
有了each之后 就无需自己写for循环了 用它更加的方便
"""
# data()
"""
能够让标签帮我们存储数据 并且用户肉眼看不见
"""
$(\'div\').data(\'info\',\'回来吧,我原谅你了!\')
w.fn.init(10) [div#d1, div, div, div, div, div, div, div, div, div, prevObject: w.fn.init(1)]$(\'div\').first().data(\'info\')
"回来吧,我原谅你了!"
$(\'div\').last().data(\'info\')
"回来吧,我原谅你了!"$(\'div\').first().data(\'xxx\')
undefined
$(\'div\').first().removeData(\'info\')
w.fn.init [div#d1, prevObject: w.fn.init(10)]$(\'div\').first().data(\'info\')
undefined
$(\'div\').last().data(\'info\')
"回来吧,我原谅你了!"
前端框架Bootstrap该框架已经帮你写好了很多页面样式,你如果需要使用,只需要下载它对应文件,之后直接cv拷贝即可
在使用Bootstrap的时候所有的页面样式都只需要你通过class来调节即可
版本选择建议使用v3版本:< https://v3.bootcss.com/>
注意
bootstrap的js代码是依赖于jQuery的,也就意味着你在使用Bootstrap动态效果的时候,一定要导入jQuery
布局容器
<
div class="container">
左右两侧有留白
<
/div>
<
div class="container-fluid">
左右两侧没有留白
<
/div>
# 后续在使用bootstrap做页面的时候 上来先写一个div class=container,之后在div内部书写页面
栅格系统
<
div class="row">
<
/div>
写一个row就是将所在的区域划分成12份<
div class="col-md-6 ">
获取你所要的份数
# 在使用bootstrap的时候 脑子里面一定要做12的加减法
栅格参数
.col-xs-.col-sm-.col-md-.col-lg-
# 针对不同的显示器 bootstrap会自动选择对应的参数
# 如果你想要兼容所有的显示器 你就全部加上即可# 在一行如何移动位置
<
div class="col-md-8 c1 col-md-offset-2">
<
/div>
排版
bootstrap将所有原生的HTML标签的文本字体统一设置成了肉眼可以接受的样式
效果一样,但是标签表达的意思不一样(语义)
表格
<
table class="table table-hover table-striped table-bordered">
<
tr class="success">
<
td>
1<
/td>
<
td>
jason<
/td>
<
td>
123<
/td>
<
td>
study<
/td>
<
/tr>
<
tr class="active">
...<
/tr>
<
tr class="success">
...<
/tr>
<
tr class="warning">
...<
/tr>
<
tr class="danger">
...<
/tr>
<
tr class="info">
...<
/tr>
表单
<
div class="container">
<
div class="col-md-8 col-md-offset-2">
<
h2 class="text-center">
登陆页面<
/h2>
<
form action="">
<
p>
username:<
input type="text" class="form-control">
<
/p>
<
p>
password:<
input type="text" class="form-control">
<
/p>
<
p>
<
select name="" id="" class="form-control">
<
option value="">
111<
/option>
<
option value="">
222<
/option>
<
option value="">
333<
/option>
<
/select>
<
/p>
<
textarea name="" id="" cols="30" rows="10" class="form-control">
<
/textarea>
<
input type="submit">
<
/form>
<
/div>
<
/div>
# 针对表单标签 加样式就用form-control
class="form-control"
"""
<
input type="checkbox">
222
<
input type="radio">
333
checkbox和radio我们一般不会给它加form-control,直接使用原生的即可
"""# 针对报错信息 可以加has-error(input的父标签加)
<
p class="has-error">
username:
<
input type="text" class="form-control">
<
/p>
按钮
<
a rel="nofollow" href="https://www.mzitu.com/" class="btn btn-primary">
点我<
/a>
<
button class="btn btn-danger">
按我<
/button>
<
button class="btn btn-default">
按我<
/button>
<
button class="btn btn-success">
按我<
/button>
<
button class="btn btn-info">
按我<
/button>
<
button class="btn btn-warning">
按我<
/button>
<
button class="btn btn-warning btn-lg">
按我<
/button>
<
button class="btn btn-warning btn-sm">
按我<
/button>
<
button class="btn btn-warning btn-xs">
按我<
/button>
<
input type="submit" class="btn btn-primary btn-block">
通过给按钮添加 .btn-block 类可以将其拉伸至父元素100%的宽度,而且按钮也变为了块级(block)元素。
图表
<
h2 class="text-center">
登陆页面 <
span class="glyphicon glyphicon-user">
<
/span>
<
/h2>
<
style>
span {
color: greenyellow;
}
<
/style>
# 扩展
导航条
<
nav class="navbar navbar-inverse">
<
nav class="navbar navbar-default">
分页器
<
nav aria-label="Page navigation">
<
ul class="pagination">
<
li>
<
a rel="nofollow" href="https://www.songbingjia.com/android/#" aria-label="Previous">
<
span aria-hidden="true">
&
laquo;
<
/span>
<
/a>
<
/li>
<
li class="active">
<
a rel="nofollow" href="https://www.songbingjia.com/android/#">
1<
/a>
<
/li>
<
li>
<
a rel="nofollow" href="https://www.songbingjia.com/android/#">
2<
/a>
<
/li>
<
li>
<
a rel="nofollow" href="https://www.songbingjia.com/android/#">
3<
/a>
<
/li>
<
li>
<
a rel="nofollow" href="https://www.songbingjia.com/android/#">
4<
/a>
<
/li>
<
li>
<
a rel="nofollow" href="https://www.songbingjia.com/android/#">
5<
/a>
<
/li>
<
li>
<
a rel="nofollow" href="https://www.songbingjia.com/android/#" aria-label="Next">
<
span aria-hidden="true">
&
raquo;
<
/span>
<
/a>
<
/li>
<
/ul>
<
/nav>
弹框
https://lipis.github.io/bootstrap-sweetalert/swal(\'你还好吗?\')
undefined
swal(\'你还好吗?\')
undefined
swal(\'你还好吗?\',\'我不好,想你了!\')
undefined
swal(\'你还好吗?\',\'我不好,想你了!\',\'success\')
undefined
swal(\'你还好吗?\',\'我不好,想你了!\',\'warning\')
undefined
swal(\'你还好吗?\',\'我不好,想你了!\',\'error\')
undefined
swal(\'你还好吗?\',\'我不好,想你了!\',\'info\')
undefined
# 我们在后面的课程中 还会涉及到该部分内容
作业
"""
今日作业
必做题
1.前端框架Bootstrap整体文档看一遍
2.自定义点赞功能,点击按钮旁边的数字动态加一
3.自己尝试着搭建图书管理系统页面
4.自己尝试着搭建jQuery练习题页面
"""
推荐阅读
- Redis核心原理与实践--列表实现原理之ziplist
- 使用golang解析yamljsonxml文件
- 04 django 框架路由分发,反向解析,上传文件,
- canal1.1.5 配置kafka
- 01 django框架基础
- 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
- 在WordPress中使用add_shortcode()在主页中创建内容section
- 在timber/twig主题中使用WordPress自定义标题图像
- 将WP更新到Salient主题中的5.0.2之后,使用Classic Visual Composer代码