css补充与javascript简介


一、盒子模型

盒子模型有四种属性:

magin(外边距): 用于控制标签与标签之间的距离                           相当于两个快递盒的距离

border(边框): 用于控制标签的边框的宽度的                                  相当于快递盒的厚度

padding(内填充): 用于控制标签中的内容和边框之间的距离          相当于快递盒内的物品到快递盒之间的距离

content(内容): 标签内部的内容               相当于快递盒内的物品大小

border和content之间我们已经知道了现在我们看一下magin和padding

1.magin外边距

        div {
            height: 200px;
            width: 100px;
            background-color: red;
            margin-top: 10px;
            margin-left: 20px;
            margin-bottom: 30px;
            margin-right: 40px;
        }    
top:就是离上面的标签有多少距离
left:就是离左边的标签有多少距离
right:就是离右边的标签有多少距离
bottom:就是离下面的标签有多少距离
也可以简写:
        div {
            height: 200px;
            width: 100px;
            background-color: red;  
            margin: 10px 20px 30px 40px;
        }
只写一个的话就是上下左右的距离都为20像素

body自带8px外边距
所以我们写标签的时候在页面展示的时候是碰不到边的


margin还可以让内部标签水平居中
        margin: 0 auto  
只能水平居中垂直方向不行

2.padding(内填充)

        div {
            height: 400px;
            width: 400px;
            border: red solid 10px;
            margin: 20px;
            padding-bottom: 10px;
            padding-left: 20px;
            padding-right: 30px;
            padding-top: 40px;
        }
        p {
            height: 100px;
            width: 100px;
            border: black solid 10px;
        }
上下左右跟margin都一样
推荐使用下列写法:
          div {
            height: 400px;
            width: 400px;
            border: red solid 10px;
            margin: 20px;
            padding: 10px 20px 30px 40px;
        }
        p {
            height: 100px;
            width: 100px;
            border: black solid 10px;
        }

margin和padding下四个参数的时候的顺序是上右下左

根据传入的参数数量不同:

只有一个参数的时候: 控制上下左右的距离

两个参数的时候: 第一个控制上下 第二个控制左右

三个参数的时候: 第一个控制上 第二个控制左右 第三个控制下

四个参数的时候:第一个控制上 第二个控制右 第三个控制下 第四个控制左

 

 

 二、浮动

在 CSS 中,任何元素都可以浮动。

浮动元素会生成一个块级框,而不论它本身是何种元素。

关于浮动的两个特点:

  • 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
  • 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样

left:向左浮动

right:向右浮动

none:默认值,不浮动

        .c1 {
            height: 200px;
            width: 200px;
            background-color: red;
            float: left;
        }
        .c2 {
           height: 200px;
            width: 200px;
            background-color: blue;
            float: right;
        }    

1.塌陷问题

就是当一个标签浮动起来的时候 父标签就会撑不起来

 2.解决办法

  • 固定高度
  • 伪元素清除法
  • overflow:hidden

伪元素清除法(使用较多)

.clearfix:after {
  content: "";
  display: block;
  clear: both;
}
然后哪个标签塌陷 就在哪个标签使用clearfix
<div class="c3 clearfix" >
        <div class="c1"></div>
        <div class="c2"></div>
</div>
浏览器针对文本是优先展示的(浮动的元素如果遮挡会想办法展示

 clear属性规定元素的哪一侧不允许其他浮动元素

 clear属性只会对自身起作用,而不会影响其他元素

三、溢出

溢出就是当一个标签内的文本的内容大于标签的大小的时候 这个文本内容就会溢出这个标签

overflow溢出属性

 圆形头像实例

    <style>
    * {
      margin: 0;
      padding: 0;
      background-color: #eeeeee;
    }
    .header-img {
      width: 150px;
      height: 150px;
      border: 3px solid white;
      border-radius: 50%;
      overflow: hidden;
    }
    .header-img>img {
      width: 100%;
    }
  </style>
</head>
<body>
<div class="header-img">
  <img src="https://img0.baidu.com/it/u=324201646,1175190975&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1661446800&t=2dba0fbbeb463080f35bbbfcb67bdc5a" alt="">
</div>

</body>

四、定位

static(静态)
    所有的标签默认都不能直接通过定位修改位置 必须要切换成下面三种之一
relative(相对定位)
    相对于标签原来的位置做定位
absolute(绝对定位)
    基于已经定位过的父标签做定位(如果没有父标签则以body为参照)
fixed(固定定位)
    相对于浏览器窗口做定位

绝对定位
    如果没有父标签或则父标签没有定位,就会以body标签为基准 就相当于编程了相对定位

语法:
#d1 {
    position: fixed;
}

五、z-index

其实浏览器是一个三维坐标系界面 就是x,y,z
x,y就是电脑的平面 而z就是指向用户

语法:
        .cover {
            z-index: 500;
        }

设置对象的层叠顺序。

  1. z-index 值表示谁压着谁,数值大的压盖住数值小的,
  2. 只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
  3. z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
  4. 从父现象:父亲怂了,儿子再牛逼也没用

六、js简介

# 1.JavaScript与Java没有任何关系
    之所以叫这个名字纯粹是为了蹭当时Java的热度
    
# 2.JavaScript简称JS 也是一门前端的编程语言
    前端由于非常受制于后端,所以有些人一项天开想要通过js来编写后端代码一统江湖 由此开发了一个叫nodejs的工具(支持js跑在后端服务器上)>>>:不好用

# 3.JS最初有一个程序员花了七天时间开发的 里面存在很多bug
    为了解决这些bug一直在编写相应的补丁 补丁本身又有bug 最后导致了js中有很多不符合逻辑的地方(成了大家墨守成规的东西)
# 4.JavaScript与ECMAScript
    其实是一个东西 是因为版权问题改过名字
# 版本问题
ECMA5
ECMA6 

七、变量和注释

"""
编写js代码的位置
1.pycharm提供的js文件
2.浏览器提供的js环境
"""

# 1.注释语法
    // 单行注释
    /*多行注释*/
    
# 2.结束符号
    以分号结束  console.log('hello world');
   有时候不写分号也没事
# 3.变量声明 在js中定义变量需要使用关键字声明 1.var var name = 'jason' 2.let let name = 'jason' '''var声明的都是全局变量 let可以声明局部变量''' # 4.常量声明 关键字: const const pi = 3.14 声明之后就不能在改了

八、数据类型之数值

'''
查看数据类型的方式 : typeof
    python中用type
'''
# 数值类型(相当于python里面的整型int和浮点型float)
    '''关键字:Number'''
    NaN:属于数值类型 意思是'不是一个数字'(not a bumber)
        parseInt:转成整形
        parseFloat:转成浮点型
        parseInt('abc')   不报错 返回一个NaN
        parseFloat('abc')  不报错 返回一个NaN

九、数据类型之字符串

# 字符类型(相当于python里面的字符串str)
    '''关键字:String'''
    默认只能是单引号和双引号 
    var name1 = 'jason'
    var name2 = "jason"
    格式化字符串小顿号  1旁边那个键  '''换行:shift按住才能按回车'''
    var name3 = `jason`
    字符的常用方法
    # 1.字符的拼接
        js中推荐使用加号
    # 2.统计长度
        js中使用length  python使用len
   #  3.移除空白(不能指定移除)
        js中使用trim()、 trimLeft()、trimRight()
        python使用strip()、lstrip()、rstrip()
   #  4.切片操作
        js使用substring(start,stop)、slice(start,stop)
            substring不支持负数索引 slice支持负数索引
        python中使用 [index:index2]
    # 5.大小写转换
        js中使用 toLowerCase()、toUpperCase()
        python使用lower()、upper()
   # 6.切割字符串
        js中python都是使用split
        var ss1 = 'jason say hello big baby'
        ss1.split(' ')
        # 输出结果:['jason', 'say', 'hello', 'big', 'baby']
        ss1.split(' ', 1)  # 第二数字是控制要几个结果
        # 输出结果:['jason']
        ss1.split(' ', 2)
        # 输出结果:['jason', 'say']    
    # 7.字符串的格式化
        js中使用格式化字符串(小顿号)
        var name = 'jason'
        var age = 18
        console.log(`
        my name is ${name} my age is ${age}
        `) 
        # 输出结果:my name is jason my age is 18
        python使用format  

 

posted @ 2022-08-24 18:34  stephen_hao  阅读(31)  评论(0编辑  收藏  举报