Web知识的学习(二)

简介: Web知识的学习

元素溢出 overflow


overflow的设置项:


1、visible 默认值。内容不会被修剪,会呈现在元素框之外。

2、hidden 内容会被修剪,并且其余内容是不可见的,此属性还有清除浮动、清除margin-top塌陷的功能。

3、scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。

4、auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。

5、inherit 规定应该从父元素继承 overflow 属性的值。


CSS内边距

padding: 检索或设置对象四边的内部边距,如padding:10px; padding:5px 10px;
padding-top: 检索或设置对象顶边的内部边距
padding-right: 检索或设置对象右边的内部边距
padding-bottom:检索或设置对象下边的内部边距
padding-left: 检索或设置对象左边的内部边距

CSS外边距

margin: 检索或设置对象四边的外延边距,如 margin:10px; margin:5px auto;
margin-top: 检索或设置对象顶边的外延边距
margin-right: 检索或设置对象右边的外延边距
margin-bottom: 检索或设置对象下边的外延边距
margin-left: 检索或设置对象左边的外延边距
设置元素水平居中: margin:x auto
注意,margin 外边距 在垂直方向会合并,水平方向不会合并

盒子

设置边距

border-top-color:red;    /* 设置顶部边框颜色为红色 */  
border-top-width:10px;   /* 设置顶部边框粗细为10px */   
border-top-style:solid;  /* 设置顶部边框的线性为实线,常用的有:solid(实线)  
dashed(虚线)  dotted(点线); */
上面三句可以简写成一句:
border-top:10px solid red;

设置内间距padding

padding-top:20px;     /* 设置顶部内间距20px */ 
padding-left:30px;     /* 设置左边内间距30px */ 
padding-right:40px;    /* 设置右边内间距40px */ 
padding-bottom:50px;   /* 设置底部内间距50px */
上面的设置可以简写如下:
padding:20px 40px 50px 30px; /* 四个值按照顺时针方向,分别设置的是 上 右 下 左  四个方向的内边距值。 */
padding:20px 40px 50px; /* 设置顶部内边距为20px,左右内边距为40px,底部内边距为50px */ 
padding:20px 40px; /* 设置上下内边距为20px,左右内边距为40px*/ 
padding:20px; /* 设置四边内边距为20px */

★margin-top 塌陷

在两个盒子嵌套时候,内部的盒子设置的margin-top会加到外边的盒子上,导致内部的盒子margin-top设置失败,解决方法如下:
1、外部盒子设置一个边框
2、外部盒子设置 overflow:hidden
3、使用伪元素类:
              .clearfix:before{
                  content: '';
                  display:table;
              }


块元素,内联元素,内联块元素

解决内联元素间隙的方法


1、去掉内联元素之间的换行

2、将内联元素的父级设置font-size为0,内联元素自身再设置font-size


display属性


display属性是用来设置元素的类型及隐藏的,常用的属性有:

1、none 元素隐藏且不占位置

2、block 元素以块元素显示

3、inline 元素以内联元素显示

4、inline-block 元素以内联块元素显示


浮点


float:left 左浮动

float:right 右浮动


★清除浮动

方法1:
.clearfix:after,.clearfix:before{ content: "";display: table;}
.clearfix:after{ clear:both;}
.clearfix{zoom:1;}
浮动的父级添加:
<div class="con2 clearfix">
方法2:
父级上增加属性overflow:hidden
.con2{... overflow:hidden}

★定位

relative:相对定位,不脱离文档流,相对于自己本身的位置进行定位,
absolute:绝对定位,脱离文档流,位置相对于已定位的父级,
     如果没有父级,或父级没有定位,那么相对于文档的00点 (body)
 可以通过 z-index 属性定义层叠(先后),参数值越大,越先
 在style里面定义         
 .z1{z-index:1;background:#000;}
fixed:固定定位,脱离文档流,位置相对于浏览器窗口 进行定义

javascrip

1, 在html页面中任意位置 书写 script标签,在标签内写js代码
2. 在元素 (标签) 内书写事件属性  来触发js代码的执行
3, 注意 ,在 包含src属性的script标签内不能在书写js代码
js 是运行在浏览器端的脚本语言,属于解释性语言.
锦定义变量时,用var关键字,不然严格模式会报错。
console。log(a) 在控制台打印值
alert()  弹框内容
typeof()函数   检测当前变量的数据类型
例    console.log(a,typeof(a))

使用场景

1, 注意 ,在 包含src属性的script标签内不能在书写js代码 
<script type="text/javascript" src="./1.js"></script>
2. 在元素 (标签) 内书写事件属性  来触发js代码的执行 -->
    <div onclick="alert('点我干啥?')" style="width: 200px;height: 200px;background: #369;"></div>
    <a href="javascript:alert('点你咋滴')">点一下试试</a>
    <a href="javascript:void(0)" onclick="alert('试试就试试')">再点一下试试</a>
!! void(0) 下面提示不显示值
3在html页面中任意位置 书写 script标签,在标签内写js代码 -->
    <script type="text/javascript">
        // alert('哎呦,不错哦');
    </script>
1、行间事件(主要用于事件)
<input type="button" name="" onclick="alert('ok!');">
2、页面script标签嵌入
<script type="text/javascript">
    var a = '你好!';
    alert(a);
</script>
3、外部引入
<script type="text/javascript" src="js/index.js"></script>
javascript语句与注释
1、一条javascript语句应该以“;”结尾
<script type="text/javascript">
var a = 123;
var b = 'str';
function fn(){
    alert(a);
};
fn();
</script>
2、javascript注释
<script type="text/javascript">
// 单行注释
var a = 123;
/*  
    多行注释
    1、...
    2、...
*/
var b = 'str';
</script>

常用方法

console.log(a)          在控制台进行输出
alert(a)                弹出一个窗口
document.write(a)       向文档中输出一个文档流
如果遇到有-的单词,去掉-,后面的首字母大写,比如 fontSize.
document.write(a)       在页面进行输出。
标签对象.innerHTML="内容";//在标签对象内放置指定内容
onclick                  单击事件
onsubmit                提交事件
docunment.getElementsByTagName  
    获取元素(比如 input,div)里的状态
document.getElementById
    获取id所属的状态
for (var i in window){
        document.write(i+'======'+window[i]+'<br>') };
查看js的所有属性和方法,window是浏览器最大的对象。
var res = rr.constructor;    console.log(res);
查看当前对象的构造函数(当前这个对象和函数的上一层)

数据类型转换

typeof函数获取一个变量的类型:
* boolean - 如果变量是 Boolean 类型的
* number - 如果变量是 Number 类型的 (整数、浮点数)
* string - 如果变量是 String 类型的 (采用""、 '')
* object - 如果变量是一种引用类型或 Null 类型的 
        如:new Array()/ new String()...
* function -- 函数类型
* undefined - 如果变量是 Undefined 类型的
数值类型 Number
    NaN  任何值与NaN进行比较,都是false,除了!=
    检测一个变量是否为NaN,只能使用isNaN()
字串类型 string
    var = 'a'
对象类型 object
    var a =new Object()
    数组类型  (表现类型为对象0bject)
        var a = new Array()    (数组)
        var a = [1,2,3,4]
    空(表现类型也为对象)
    var a = null
未定义 undefined
    var a  (直接定义不给值)
使用:Number()、parseInt() 和parseFloat() 做类型转换
  Number()强转一个数值(包含整数和浮点数)。
      整形和浮点型都可以,如果是纯数字,转数字,包含非数字时,转         NaN,可以转布尔
  *parseInt()强转整数,
      只能转整型 如果字符转中首字母是非数字,转为NaN
  *parseFloat()强转浮点数 (最好用)
      整形和浮点都可以,如果字符串中首字母是非数字,转为NaN
函数isNaN()检测参数是否不是一个数字。
   isNaN()  is not a number
ECMAScript 中可用的 3 种强制类型转换如下:
    Boolean(value) - 把给定的值转换成 Boolean 型;
        为假的情况:
   !!!     false,0,NaN,null,undefined,0.0,‘’。
    Number(value) - 把给定的值转换成数字(可以是整数或浮点数);
    String(value) - 把给定的值转换成字符串;

运算符


++ 自加1    --自减
+ 后面是字符串进行连接,数字则进行相加
    (必须注意优先级,如果前面为字符串连接,后面也都为连接)
算 字 赋 比 逻 位 它
算术运算符
 + - * / ++ --
字符串连接
 +
赋值运算
 =    +=   -=   %=
比较运算符
 <  >    >=    <=    ==    ===   !=   !==
 === 值和类型都要相同    == 值相同
逻辑运算符
 && (与)   ||(或)  !
位运算
 ^    &    |   <<   >>
其它运算符
 ?   :    三元运算符
delete:用于删除对象中属性的   如:delete o.name; //删除o对象中的name属性
void:   void 运算符对任何值返回 undefined。没有返回值的函数真正返回的都是 undefined。
var iNum1=1, iNum2=2, iNum3=3;// 逗号运算符 用逗号运算符可以在

流程控制

if 判断值一样就可以
### else if中间必须有空格
if(判断){
  执行
}else if{
  执行
}else{
  执行
}
switch 的判断 ===  值和类型都一样
var a = 6;
swith(a){
  case 1:
  case 2:
  case 2:
  case 4:
  case 5:
    alert{'工作日'};
    break;
  case 6:
  case 7:
    alert{'休息日'};
    break;       !!!!(如果这个祛除,default也会默认出现。)
  default:
    alert{'火星人你好'};
    break;
}

循环

for循环
  for(var i=0;i<len;i++){
      ......
  }
while循环
  var i=0;
  while(i<8){
      ......
      i++;
  }
for-in 语句
for-in 语句是严格的迭代语句,用于枚举对象的属性。
  var a = [10,20,30,40,50];
  //迭代的是数组的下标。
  for(i in a){
     document.write(a[i]);
  }
  //输出: 1020304050
  !!!简短写法
  for(car i =1;i<=10,i++){
            if(i == 7){
                continue;
            }
            if(i == 8){
                break;
            }
        }

元素获取

可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量,比如:
<script type="text/javascript">
    var oDiv = document.getElementById('div1');
</script>
....
<div id="div1">这是一个div元素</div>
上面的语句,如果把javascript写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript去页面上获取元素div1的时候,元素div1还没有加载,解决方法有两种:
第一种方法:将javascript放到页面最下边
....
<div id="div1">这是一个div元素</div>
....
<script type="text/javascript">
    var oDiv = document.getElementById('div1');
</script>
</body>
第二种方法:将javascript语句放到window.onload触发的函数里面,获取元素的语句会在页面加载完后才执行,就不会出错了。
<script type="text/javascript">
    window.onload = function(){
        var oDiv = document.getElementById('div1');
    }
</script>
....
<div id="div1">这是一个div元素</div>
样式操作
标签对象.style.css属性名="值" //改变标签对象的样式。
示例:id.style.color="red";
注意:属性名相当于变量名,所以css属性名中含有双拼词的(font-size)的减号要去掉,将后面的首字母大写。fontSize
文本操作
标签对象.innerHTML="内容";//在标签对象内放置指定内容
表单中值的操作
标签对象.value; //获取标签对象的value值
标签对象.value=”值“;//设置标签对象的value值


定时器


单次定时
setTimeout(要执行的代码,时间)  时间以毫秒算
clearTimeout 关闭只执行一次的定时器
多次计时
setInterval  反复执行的定时器
 clearInterval 关闭反复执行的定时器
 !!一般都是用单次是来结束多次计时
做一个小动画图片流畅切换
<img src="./img/p1.png" alt="" id="tp">
    <script type="text/javascript">
    var tp = document.getElementById('tp');
    var i = 1;
    setInterval(function(){
        i++;
        if(i > 5){
            i = 1;
        }
        tp.src = './img/p'+i+'.png';
    },50)
    </script>
三种写法
1   var init = setTimeout(function(){
        alert('2');
    },2000);
function love(){
    console.log('22');
    }
2  setTimeout('love()',2000);
3  setTimeout(love,2000);

函数


*第一种是使用function语句定义函数
function abc(){
    alert('abc');
}
*第二种是在表达式中定义函数
var 函数名 = function(参数1,参数2,…\){
    alert('abc');
};
!!!在使用函数时,如果没有传递参数,形参的默认值就是undefined
第三种是使用Function()构造函数来定义函数(不常用)
var 函数名 = new Function\(“参数1”,”参数2”,”参数3”……”函数体”\);
如:
var 函数名 = new Function\(”x”,”y”,”var z=x+y;return z;”\);
arguments 对象
在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。
例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 
也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,
第二个参数位于位置 1,依此类推)。
关于变量和参数问题:
函数外面定义的变量是全局变量,函数内可以直接使用。
在函数内部没有使用var定义的=变量则为全局变量,
*在函数内使用var关键字定义的变量是局部变量,即出了函数外边无法获取。
js函数定义的参数没有默认值(目前只有最新的火狐浏览器支持)

优先级

如果有变量和函数通用一个变量名,函数会在执行时,优先加载。
函数会在执行时,优先加载,如果在代码中还有变量的定义和函数名一样,那么变量会覆盖函数
    !!!注意,函数名和变量名千万不要冲突
     // var love = 222;
    function love(){
        alert('111');
    }
    love();
    // alert(love); (打印出来时一个函数)


目录
相关文章
|
5月前
|
JSON JavaScript Go
Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
掌握 Go 语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解 Go 基础知识的好起点是查阅 Go 官方文档
928 2
|
5月前
|
存储 移动开发 JSON
H5学习之路之Web存储解决方案
H5学习之路之Web存储解决方案
56 0
|
4月前
|
资源调度 JavaScript 前端开发
IM跨平台技术学习(十一):环信基于Electron打包Web IM桌面端的技术实践
这次借着论证 Web IM端 SDK 是否可以在 Electron 生成的桌面端正常稳定使用,我决定把官方新推出的 webim-vue3-demo,打包到桌面端,并记录了这次验证的过程以及所遇到的问题和解决方法。
76 2
|
3月前
|
JSON 中间件 数据处理
实践出真知:通过项目学习Python Web框架的路由与中间件设计
【7月更文挑战第19天】探索Python Web开发,掌握Flask或Django的关键在于理解路由和中间件。路由连接URL与功能,如Flask中@app.route()定义请求响应路径。中间件在请求处理前后执行,提供扩展功能,如日志、认证。通过实践项目,不仅学习理论,还能提升构建高效Web应用的能力。示例代码展示路由定义及模拟中间件行为,强调动手实践的重要性。
50 1
|
4月前
|
前端开发 JavaScript 开发工具
Web前端开发学习资料:深度探索与开发实践
Web前端开发学习资料:深度探索与开发实践
32 3
|
5月前
|
JSON Go 数据格式
golang学习7,glang的web的restful接口结构体传参
golang学习7,glang的web的restful接口结构体传参
|
5月前
|
JSON Go 数据格式
golang学习6,glang的web的restful接口传参
golang学习6,glang的web的restful接口传参
|
5月前
|
Web App开发 前端开发 JavaScript
学习Web标准
【5月更文挑战第1天】学习Web标准
41 6
|
5月前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
5月前
|
设计模式 存储 前端开发
JS的几种设计模式,Web前端基础三剑客学习知识分享,前端零基础开发
JS的几种设计模式,Web前端基础三剑客学习知识分享,前端零基础开发