Python--day53(定位、JavaScript)

1. 定位

1.1 隐藏

       在一些网站中,某些内容在鼠标点击上去时候才会显示出来,在鼠标一走以后就会消失。

这些内容就隐藏起来了。此时我们可以通过display或者opacity来对内容就行隐藏。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            width: 100px;
            height: 100px;
            /*background-color: orange;*/
            border-radius: 50%;

            border: 1px solid black;
            /* normal正常字体,Arial代表备用字体,
            30px字体大小,100px行高*/
            font: normal 30px/100px 'Arial';
            color: green;
            text-align: center;
        }
        .d1:hover~.d2 {
            display: block;
        }
        .d2 {
            /*不以任何方式显示,在页面中不占位,但重新显示,仍然占位*/
            display: none;
        }
        .d3 {
            /*修改盒子的透明度,值为0,完全透明,但在页面中占位*/
            opacity: 0;
        }
        
    </style>

</head>
<body>
    <div class="d1">1</div>
    <div class="d2">2</div>
    <div class="d3">3</div>
    <div class="d4">4</div>
    <div class="d5">5</div>
</body>
</html
隐藏

 

1.2 阴影

在网站中存在一种图片状态,当鼠标点上去的时候,图片会浮动起来,给人一种立体的感觉,这个时候就用到了阴影。本质上就是图片

向上浮动的一点距离,然后下放用阴影覆盖,这样就能给人一种浮动起来的立体的假象了。

阴影采用的是box-shadow,有五个参数,分别代表着:x轴 y轴 虚化程度 阴影宽度 颜色。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .dd {
            width: 100px;
            height: 100px;
            background-color: red;
            border: 1px solid black;
            margin: 100px auto;
            /* 参数介绍: x轴 y轴 虚化程度 阴影宽度 颜色*/
            box-shadow: 200px 0 10px 10px blue, 0 200px 10px 0 green;
        }
    </style>
</head>
<body>
    <div class="dd"></div>
</body>
</html>
阴影

1.3 固定定位

1.3.1 display和opacity存在的问题:

display:不以任何方式显示,在页面中不占位,但重新显示,仍然占位

opacity:通过opacity可以修改样式的透明度,但是即使透明度为0的时候,依然占据着位置,即不管怎样,opacity都是占着一个位置的。

1.3.2 目标:显示和隐藏都不占位,用来做一些标签的显示影藏切换

1.3.3 固定定位

定位:就是把子级内容给抠出来。

我们通过浮动布局,将子级在父级中飘起来,就不会再撑开腹肌高度,但浮动受父级宽度影响,即父级的宽度决定了一行能拍多少个,

然后我们可以通过清浮动让父级能够获得一个刚好的宽度。通过定位把子级内容抠出来以后,父级就无法获得子级的高度,这个时候

父级子级都需要自己定义自己的宽高。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /* vw:当前视图的宽度, wh:当前视图的高度*/
        .box {
            height: 500vw;
            background-color: red;
        }
        .tag {
            width: 180px;
            height: 300px;
            background-color: orange;
            /*一旦打开定位属性,left、right、top、bottom四个方位词均能参与布局*/
            /*固定定位参考浏览器窗口*/
            /*布局依据:固定定位的盒子四边距浏览器窗口四边的距离:eg:left - 左距左,right - 右距右*/
            /*左右取左,上下去上*/
            position: fixed;
            left: 0;
            top: calc(50% - 150px);
            right: 50vw;
            bottom: 20vw;
            z-index: 2;
        }
        /*z-index值就是大于等于1的正整数,多个重叠图层通过z-index值决定上下图层显示先后*/
        .flag {
            width: 220px;
            height: 330px;
            background-color: purple;
            position: fixed;
            left: 0;
            top: calc(50% - 165px);
            z-index: 1;
        }


    </style>
</head>
<body>
    <div class="box"></div>
    <div class="tag"></div>
    <div class="flag"></div>
</body>
</html>
固定定位

1.3.4 绝对定位

在没有定位之前,如果父级没有高度,子级没有长度,那么父级高找由子级撑开,子级宽继承父级

绝对定位:子标签获取不到父级标签的宽,也撑不开父级的高,子标签西部子级设置宽高,父级也必须自己设置宽高

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box {
            width: 300px;
            height: 300px;
            background-color: red;
            margin: 100px auto 0;
        }
        .s {
            width: 100px;
            height: 100px;
            font: normal 20px/100px 'Arial';
            text-align: center;
        }
        .s1 {
            background-color: blue;
        }
        .s2 {
            background-color: green;
        }
        .s3 {
            background-color: yellow;
        }
        /* 在没有定位之前,如果父级没有高度,子级没有长度,那么父级高找由子级撑开,子级宽继承父级*/
        .s {
            /*绝对定位:子标签获取不到父级标签的宽,也撑不开父级的高*/
            /*子标签必须自己设置宽高,父级也必须自己设置宽高*/
            position: absolute;
            /*绝对定位的标签都是相对于一个参考系进行定位,之间不会相互影响*/
            /*参考系:最近的定位父级*/
            /*打开了四个定位方位*/
            /*上距上...下距下*/
            /*上下去上、左右取左*/
        }
        .box {
            /*子级采用绝对定位,一般都是想参考父级进行定位,父级必须采用定位处理才能作为子级的参考系*/
            /*父级可以选取 fixed、 absolute,但这两种定位都会影响盒模型,relative定位不会影响盒模型*/
            /*父相子绝*/
            position: relative;
        }
        .s1 {
            right: 0;
            left: 0;
            bottom: 0;
            z-index: 1;
        }
        .s2 {
            bottom: 50px;
            left: 0;
            z-index: 10;
        }

    </style>
</head>
<body>
    <div class="box">
        <div class="s s1"></div>
        <div class="s s2"></div>
        <div class="s s3"></div>
    </div>
</body>
</html>
绝对定位

1、一个标签要随着父级移动而移动(子级布局完毕后相对于父级位置是静止的),且兄弟标签之间布局不影响(兄弟动,自身相对父级还是保持静止)
2、z-index 值能改变重叠的兄弟图层上下关系
3、子级相对的父级一定要 定位处理 (三种定位均可以)
父级要先于子级布局,所以子级在采用绝对定位时,父级一般已经完成了布局,如果父级采用了 定位 来完成的布局,子级自然就相当于父级完成 绝对定位
如果父级没有采用 定位 来完成的布局,我们要后期为父级增加 定位 处理,来辅助子级 绝对定位,父级的 定位 是后期增加的,我们要保证增加后不影响父级之前的布局,相对定位可以完成

1.3.5 相对定位

父级可以选取 fixed、 absolute,但这两种定位都会影响盒模型,relative定位不会影响盒模型

相对定位的参考系是图层的原有位置

相对定位与margin的区别:

margin下方若有内容时,则上下移动的时候会对下方的内容产生影响,下方的内容也会跟着改变位置

相对定位,相对于图层原有的位置进行移动,即使下方存在内容,也不会让下方内容也随之改变。

父相子绝

2. JavaScript

2.1 JavaScript介绍

js:前台脚本语言 - 编程语言 - 弱语言类型 - 完成页面业务逻辑及页面交互

1、可以自己生成页面数据
2、可以请求后台数据
3、可以接受用户数据 - 可以渲染给页面的其他位置;提交给后台
4、修改页面标签的 内容、样式、属性、事件(页面通过js可以完成与电脑的输入输出设备的交互)
JavaScript介绍

2.2  三种输出方式

// 一、三种输出信息的方式
// 控制台输出语句
console.log('你丫真帅')

// 弹出框提示信息
alert('你丫确实帅')

// 将内容书写到页面
document.write('<h2 style="color: red">你丫帅掉渣</h2>')
三种输出方式

2.3 变量与常量

// 二、变量与常量
let num = 123;
num++;
console.log(num);

const str = '123';
// str = '456';  // 常量声明时必须赋初值,且一旦赋值,不可改变
console.log(str);
变量与常量

2.4 数据类型

// 三、数据类型
// 值类型
// 1) 数字类型
let a = 123;
console.log(a, typeof(a));
a = 3.14;
console.log(a, typeof(a));

// 2) 布尔类型
let b = false;
console.log(typeof(b), b);

// 3) 字符串类型:''  ""  ``
let c = `123
456
789`;
console.log(c, typeof(c));

// 4) 未定义类型:未初始化的变量
let d;
console.log(d, typeof(d));

// 引用类型
// 5) 数组(相当于list):
let arr = [1, 2, 3];
console.log(arr, typeof(arr));

// 6) 对象(相当于dict):所有的key必须是字符串
let sex = '男';
let dic = {
    name: 'Owen',
    age: 17.5,
    sex,  // value如果是变量,变量名与key同名,可以简写
};
console.log(dic, typeof(dic));

// 7) 函数类型
function fn() { }
console.log(fn, typeof(fn));

// 8) null类型
let x = null;
console.log(x, typeof(x));
数据类型

2.5 弱语言类型

// 四、弱语言类型
let aaa = 123;
let bbb = '123';

console.log(aaa == bbb);  // == 只做数据比较
console.log(aaa === bbb);  // === 做数据与类型比较

// 弱语言类型:会自己根据环境决定如何选择类型存储数据
console.log(1 + 2);  // 3
console.log('1' + '2');  // 12
console.log(1 + '2');  // 12
console.log(1 - '2');  // -1
弱语言类型

猜你喜欢

转载自www.cnblogs.com/wangyong123/p/11127848.html
今日推荐