Bootstrap布局(一)

Bootstrap Web前端框架技术

1、视口

      视口(Viewport)最早是由苹果公司在推出iPhone手机时发明的,其目的是为了让iPhone的小屏幕尽可能完整显示整个网页,它是浏览器显示页面内容的屏幕区域。       

      视口主要包括布局视口(layout viewport)、视觉视口(visual viewport)和理想视口(ideal viewport)。         

      视口能将大分辨率尺寸网页缩小显示在手机浏览器上,这样保证网页在手机上看起来更像在桌面浏览器中的样子。

①布局视口:

       布局视口是指网页的宽度,一般移动端浏览器都默认设置了布局视口的宽度。

       布局视口的默认宽度一般是768px、980px或1024px等(取决于不同移动端设备的设置),这个宽度并不适合在手机屏幕中展示。         

       当移动端浏览器展示PC端网页内容时,由于移动端设备屏幕比较小,布局视口不能像PC端浏览器那样完美地展示网页,网页在手机的浏览器中会出现左右滚动条,用户需要左右滑动才能查看完整的一行内容。

②视觉视口:

        视觉视口是指用户正在看到的网站的区域,这个区域的宽度等同于移动设备的浏览器窗口的宽度。

③理想视口:

        理想视口是指对设备来讲最理想的视口尺寸。

        采用理想视口的方式,可以使网页在移动端浏览器上获得最理想的浏览和阅读的宽度。                  在理想视口情况下,布局视口的大小和屏幕宽度是一致的,这样就不需要左右滚动页面了。            在开发中,为了实现理想视口,需要给移动端页面添加<meta>标签配置视口,通知浏览器来进行处理。

2、利用浏览器模拟手机屏幕

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>利用浏览器模拟手机屏幕</title>
		<style type="text/css">
			.title{
				font-size: 20px;
				color: red;
			}
		</style>
	</head>
	<body>
		<div class="title">
			小猪佩奇
		</div>
		<img src="img/pic1.jpg"/>
	</body>
</html>

结果图:

3、利用<meta>标签设置视口

       在传统的PC端网页开发中,并没有使用过meta标签来设置视口,此时浏览器会按照默认的布局视口宽度来显示网页。如果希望网页在浏览器中以理想视口的形式呈现,就需要利用<meta>标签设置视口。         

       在<meta>标签中,将name属性设为viewport,即可设置视口。

       在<meta>标签的基本语法中,将<meta>标签的content属性的值设置为“width=device-width”表示通知浏览器,布局视口的宽度应该与设备的宽度一致,示例代码如下:

<meta name="viewport" content="width=device-width">

将这串代码加入上面小猪佩奇的代码中:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>利用浏览器模拟手机屏幕</title>
​        <meta name="viewport" content="width=device-width">
		<style type="text/css">
			.title{
				font-size: 20px;
				color: red;
			}
		</style>
	</head>
	<body>
		<div class="title">
			小猪佩奇
		</div>
		<img src="img/pic1.jpg"/>
	</body>
</html>

 

 4、媒体查询

       CSS的Media Query媒体查询(也称为媒介查询)用来根据窗口宽度、屏幕比例和设备方向等差异来改变页面的显示方式。使用媒体查询能够在不改变页面内容的情况下,为特定的输出设备制定显示效果。媒体查询由媒体类型和条件表达式组成。常用的媒体查询属性如下。

设备宽高: device-width、device-height。

渲染窗口的宽和高:width、height。

设备的手持方向:orientation。

设备的分辨率:resolution。

       媒体查询的使用方法有两种,即内联式和外联式。下面利用媒体查询实现当文档宽度大于640px 时,对CSS样式进行修改。

内联式:内联式是直接在CSS中使用。

<style>
  @media screen and (min-width:640px){
    css属性: css属性
  }</style>

外联式:外联式是作为单独的CSS文件从外部引入的

<link href="style.css" media="screen and (min-width:640px)" ref="stylesheet">

例1:如果屏幕宽度小于 640 像素则修改背景颜色为浅蓝色

<style>
  @media screen and (max-width:640px){
     body {
        background-color:lightblue;
    }
  }</style>

例2:当设备小于575px时颜色为黄绿色,在575px到768px之间时是灰色,大于768px时为浅黄色,在992px到1200px之间时是绿色

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<style type="text/css">
			@media screen and (max-width:575px ) {
				.container{
					width: 100%;
					background: greenyellow;
				}
			}
			@media screen and (min-width:575px ) {
				.container{
					width: 100%;
					background: gray;
				}
			}
			@media screen and (min-width: 768px) {
				.container{
					width: 100%;
					background: lightgoldenrodyellow;
				}
			}
			@media screen and (min-width:992px ) {
				.container{
					width: 960px;
				}
			}
			@media screen and (min-width: 1200px) {
				.container{
					width: 1140px;
					background: green;
				}
			}
			.container{
				height: 50px;
				/*background: #ddd;*/
				margin: 0 auto;
			}
		</style>
	</head>
	<body>
		<div class="container">
			布局容器
		</div>
	</body>
</html>

5、响应式栅格系统

案例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<style type="text/css">
			.row{
				width: 100%;
			}
			.row:after{
				clear: left;
				content: '';
				display: table;
			}
			[class^='col']{
				float: left;
				background-color: #e0e0e0;
			}
			.col1{
				width: 25%;
			}
			.col2{
				width: 50%;
			}
			@media screen and (max-width:768px ) {
				.row{
					width: 100%;
				}
				[class^='col']{
					float: none;
					width: 100%;
				}
			}
		</style>
	</head>
	<body>
		<div class="row">
			<header>页头</header>
		</div><br />
		<div class="row">
			<nav class="col1">导航</nav>
			<nav class="col2">主要内容</nav>
			<nav class="col1">侧边栏</nav>
		</div>
		<div class="row">
			<footer>页尾</footer>
		</div><br />
	</body>
</html>

结果图:

浏览器窗口大于768px时,导航、主要内容和侧边栏3个模块呈横向排列。

 浏览器窗口小于或等于768px时,导航、主要内容和侧边栏3个模块呈纵向排列。

6、Bootstrap布局容器概念

类名超小设备<576px平板≥576px桌面显示器≥768px大桌面显示器≥992px超大桌面显示器≥1200px
.container100%540px720px960px1140px
.container-sm100%540px720px960px1140px
.container-md100%100%720px960px1140px
.container-lg 100%100%100%960px1140px
.container-xl 100%100%100%100%1140px
.container-fluid100%100%100%100%100%

 container类:

       Bootstrap 4中的.container类用于固定宽度并支持响应式布局的容器。

       根据屏幕宽度的不同,利用媒体查询设定固定的宽度,当浏览器改变大小时,页面会呈现阶段性的变化。

        .container类的最大宽度根据移动端设备屏幕自动设置成100%、540px、720px、960px和1140px。

container-fluid类:

       Bootstrap 4中的.container-fluid类是一种占据全部视口的容器。 不管屏幕宽度是多少,始终保持100%的宽度。 当一个元素需要始终横跨整个视口时,可以使用.container-fluid类

container-sm, container-md, container-lg, container-xl类:

      是Bootstrap 4.4中新增的功能,可以允许指定一个100%宽度的类,直到达到指定的端点为止。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>容器比较</title>
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
		<script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div class="container border py-2 bg-light">
			container容器
		</div>
		<div class="container-fluid border py-2 bg-light">
			container-fluid容器
		</div>
		<div class="container-sm border py-2 bg-light">
			container-sm容器
		</div>
		<div class="container-md border py-2 bg-light">
			container-md容器
		</div>
		<div class="container-lg border py-2 bg-light">
			container-lg容器
		</div>
		<div class="container-xl border py-2 bg-light">
			container-xl容器
		</div>
	</body>
</html>

结果图:

1. CSS 相邻兄弟选择器 + 相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另元素后的元素,且二者有相同父元素。 相邻兄弟选择器使用了加号(+),即相邻兄弟结合符(Adjacent sibling combinator)。 2. 手机字体图标:`content: '\e958';` 电话字体图标:`content: '\e942';` 3. bootstrap最外层伸缩容器:`class="container"` 4. bootstrap伸缩布局并居中:`d-flex justify-content-center align-items-center` 5. `jQuery.data(element,[key],[value])`:在元素上存放数据,返回jQuery对象。 例如:在index界面中 ```javascript <div class="carousel-item active" data-sm-img="images/slide_01_900x410.jpg" data-lg-img="images/slide_01_2000x410.jpg"></div> <div class="carousel-item" data-sm-img="images/slide_02_900x410.jpg" data-lg-img="images/slide_02_2000x410.jpg"></div> <div class="carousel-item" data-sm-img="images/slide_03_900x410.jpg" data-lg-img="images/slide_03_2000x410.jpg"></div> ``` 在 js中,可以通过 ```javascript $('.carousel-item').data('lg-img') ``` 获取路径值。 6. bootstrap中圆角`rounded-circle` 7. 可以使用`order-*`调整显示顺序 8. 伸缩布局两步走`container+row` ```javascript <div class="container"> <div class="row"> *** </div> </div> ``` 9. 可以利用`offset`设置偏移量调整位置 10. 将jQuery对象转换为js对象可以直接通过下标取 11. 轮播图可以通过`.carousel('prev')`和`.carousel('next')`触发前后滑动事件 12. jQuery中缩小元素查找范围 ```javascript let $ul = $("#lk_product .nav"); let $allLis = $(".nav-item", $ul); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值