css结束2 js基础
css2
一 解决浮动带来的影响
当浮动框高度超出包含框的时候,也就会出现包含框不会自动伸高来闭合浮动元素(“高度塌陷”现象)。
解决方法:
1.自己加一个div设置高度
2.利用clear属性
#d4 {
clear: left; /*该标签的左边(地面和空中)不能有浮动的元素*/
}
3.通用的解决浮动带来的影响方法,在写html页面之前 先提前写好处理浮动带来的影响的 css代码
.clearfix:after {
content: '';
display: block;
clear:both;
}
之后只要标签出现了塌陷的问题就给该塌陷的标签加一个clearfix属性即可
上述的解决方式是通用的 到哪都一样 并且名字就叫clearfix
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #l3{ border:5px solid black; } #l1{ height: 200px; width: 200px; background-color: red; float: left; } #l2{ height:200px; width: 200px; background-color: green; float: left; } .clearfix:after{ content: ''; display: block; clear: both; } /*#l4{clear: left!*z左边不能有浮动的*!}*/ </style> </head> <body> <div id="l3"> <div id="l1"></div> <div id="l2"></div> <div id="l4" class="clearfix"></div> </div> </body> </html>
二 溢出属性
visible默认值。内容不会被修剪,会呈现在元素框之外。
hidden内容会被修剪,并且其余内容是不可见的。
scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit规定应该从父元素继承 overflow 属性的值。
p {
height: 100px;
width: 50px;
border: 3px solid red;
/*overflow: visible; !*默认就是可见 溢出还是展示*!*/
/*overflow: hidden; !*溢出部分直接隐藏*!*/
/*overflow: scroll; !*设置成滚动条的形式*!*/
/*overflow: auto;如果内容溢出在设置成滚动条*/
}
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> 调整全样式 *{margin: 0; padding:0; background-color: red; } .img_radius{ height: 150px; width: 150px; border: 3px solid white; 边框里的园 border-radius: 50%; 溢出隐藏 overflow: hidden; } 组合选择器 的而子选择 .img_radius>img{ 加这个可以修改图片 也可以利用浏览器的上下来调整图片大小 width: 200px; height: 200px; } </style> </head> <body> <div class="img_radius"><img src="2.jpg" alt=""></div> </body> </html>
三 定位
-
静态
所有的标签默认都是静态的static,无法改变位置
-
相对定位(了解)
相对于标签原来的位置做移动relative
-
绝对定位(常用)
相对于已经定位过的父标签做移动(如果没有父标签那么就以body为参照)
eg:小米网站购物车
当你不知道页面其他标签的位置和参数,只给了你一个父标签的参数,让你基于该标签左定位
-
固定定位(常用)
相对于浏览器窗口固定在某个位置
eg:右侧小广告
-
定位的案例<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> body { margin: 0; } #d1 { height: 100px; width: 100px; background-color: red; left: 50px; /*从左往右 如果是负数 方向则相反*/ top: 50px; /*从上往下 如果是负数 方向则相反*/ /*position: static; !*默认是static无法修改位置*!*/ position: relative; /*相对定位 标签由static变为relative它的性质就从原来没有定位的标签变成了已经定位过的标签 虽然你哪怕没有动 但是你的性质也已经改变了 */ } #d2 { height: 100px; width: 200px; background-color: red; position: relative; /*已经定位过了*/ } #d3 { height: 200px; width: 400px; background-color: yellowgreen; position: absolute; left: 200px; top: 100px; } #d4 { position: fixed; /*写了fixed之后 定位就是依据浏览器窗口*/ bottom: 10px; right: 20px; height: 50px; width: 100px; background-color: white; border: 3px solid black; } </style> </head> <body> <!-- <div id="d1"></div>--> <!--<div id="d2">--> <!-- <div id="d3"></div>--> <!--</div>--> <div style="height: 500px;background-color: red"></div> <div style="height: 500px;background-color: greenyellow"></div> <div style="height: 500px;background-color: blue"></div> <div id="d4">回到顶部</div> </body> </html> 定位的案例
四 验证浮动和定位是否脱离文档流(原来的位置是否还保留)
<!--<div style="height: 100px;width: 200px;position: relative;left: 500px"></div>--> <!--<div style="height: 100px;width: 200px;</div>--> <!--<div style="height: 100px;width: 200px;"></div>--> <!--<div style="height: 100px;width: 200px;position: absolute;left: 500px"></div>--> <!--当没有父标签做到位 就参照与body--> <!--<div style="height: 100px;width: 200px;"></div>--> <div style="height: 100px;width: 200px;"></div> <div style="height: 100px;width: 200px;position: fixed;bottom: 10px;right: 20px"></div> <div style="height: 100px;width: 200px;"></div>
文档流中:
内联元素默认从左到右流,遇到阻碍或者宽度不够自动换行,继续按照从左到右的方式布局。块级元素单独占据一行,并按照从上到下的方式布局。
换句话说就是一个块标签在消失了以后,其他标签会不会顶替原来的位置
1.不脱离文档流
相对定位:
2.脱离文档流
1.浮动:浮动有父标签塌陷的副作用,说明浮动会脱离文档流
2.绝对定位
3.固定定位
五 z-index模态框
设置对象的层叠顺序。
- z-index 值表示谁压着谁,数值大的压盖住数值小的,
- 只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
- z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
- 从父现象:父亲怂了,儿子再牛逼也没用
以百度登陆页面为例 其实是三层结构
1.最底部是正常内容(z=0) 最远的
2.黑色的透明区(z=99) 中间层
3.白色的注册区域(z=100) 离用户最近
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> body { margin: 0; } .cover { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background-color: rgba(0,0,0,0.5); z-index: 99; } .modal { background-color: white; height: 200px; width: 400px; position: fixed; left: 50%; top: 50%; z-index: 100; margin-left: -200px; margin-top: -100px; } </style> </head> <body> <div>这是最底层的页面内容</div> <div class="cover"></div> <div class="modal"> <h1>登陆页面</h1> <p>username:<input type="text"></p> <p>password:<input type="text"></p> <button>点我点我~</button> </div> </body> </html> 案例
六 透明度opacity
它不单单可以修改颜色的透明度还同时修改字体的透明度
rgba只能影响颜色
而opacity可以修改颜色和字体
opacity:0.5
七 JS
1.js也是一门编程语言 它也是可以写后端代码的,用js一统天下 前后端都可以写,nodejs 支持js代码跑在后端服务器上
2.js跟java一毛钱关系都没有,纯粹是为了蹭当时java的热度
JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
JavaScript 很容易学习
7.1 注释
// 单行注释 /* 多行注释1 多行注释2 多行注释3 */
7.2两种引入方式
1.script标签内部直接书写js代码
2.script标签src属性引入外部js代码
7.3 语法结构
js是以分号作为语句的结束
但是如果你不写分号,问题也不大 也能够正常执行 但是它就相当于没有结束符
7.4变量
在js中在首次定义一个变量名的时候需要用到关键字声明
1.var
var name='jason'
2.let:e6s推出的新语法
let name='jason' 如果你的编辑器支持的版本是5.1那么无法使用let 如果是6.0则向下兼容 var let
var和let的区别
var在for循环里定义也会影响到全局
let在局部定义只会在局部生效
7.5常量
python中没有真正意义上的常量 默认全大写就是表示常量
js中是有真正意义上的常量的
const pi = 3.14

浙公网安备 33010602011771号