近期学习总结

web三剑客

HTML

对于html5的整体认识,用h5写网页的基础内容;
用html5举例——
每个代码的架构都是,先进行文本类型声明,然后是一个html标签包含着所有内容,其中有head(头部)和body(身体,即写内容的区域),其中head又包含了title(网页标签)和代码格式(charset)等等内容;

在body里运用基础标签实现,这些是网页最常用的标签:

标签名作用
h1-h6标题,有加粗效果
div盒子,将每一块内容封装起来
a超链接,点击跳转
p段落,会自动换行
span内联,正文内容,不换行
ul-li无序列表,将同一层级内容放在一起
img图片标签
table-tr-td表格,行和列
br换行
form表单,用来与后台做数据交互

当然除了这些基础标签外还有很多其他各种功能的标签,这里只是列举最常见的部分;

除了写基础标签外,还有一部分属性是写在标签里面的,如
img标签里的src属性写图片存放的路径,
a标签里地href属性写要跳转的路由等等;

CSS

css的作用是装饰网页,是网页呈现得更美观;

三种引入方式:
1.头部加style标签,用于较小地项目;
2.外部引入,头部加link标签,用于大型项目或者各文件之间需要使用同一套模板;
3.标签内部加style属性,很少使用;

使用css主要是两个步骤:
第一,选中要操作的元素;
第二,给元素添加样式;

针对第一个,就是要掌握css选择器:
简单选择器——

选择器名称用法
id选择器# id名
class选择器. class名
标签选择器标签名

后面加大括号,然后写要添加的样式;
复杂选择器(为了让选择的元素更精确)——

选择器名称用法
后代选择器标识符为空格
子代选择器标识符为 >
伪类选择器标识符为:,后面加功能名

以上是比较常用的选择器;

样式——
常用样式包括字体样式,文本样式,背景样式,边框等等;

作用分别是,改变字体显示效果,使文本能够以各种布局出现,让背景色彩更加丰富,让每块区域分开得更明显等等;

其中css内容还包括盒子模型,定位,弹性布局等方面的内容;
能够让整个网页的布局更多元化,以及让各元素在网页的分布更合理;

盒子模型内容包括——
每个元素所占的空间大小,以及它的构成有内容部分,边框部分,内边距,外边距等;
浮动:让div脱离文档流;
清除浮动影响:保证父级盒子高度不会坍塌;

定位包括:
固定定位:搜索栏那种;
相对定位:相对于某一参照物的位置变化;
绝对定位:会让div脱离文档流,要给父级设置相对定位;

javascript

JavaScript作用为实现简单功能;

两种使用方式:
将功能写在script标签里面;
写在外部.js文件然后通过script标签引入;

使用也主要是分两步:
1.获取标签;
2.实现功能;

js获取标签方法:
获取独有标签:

方法作用
doucument.title获取标题
doucument.head获取头部信息
doucument.body获取body标签所有内容

一般得到的内容会是多个,所以会以列表形式存在;

可以通过console.log 在控制台打印输出查看;

js获取其他标签

代码功能
document.getElementById通过id获取元素
document.getElementsByClassName通过class获取元素
document.getElementsByTagName通过标签名获取元素
document.getElementsByName通过表单中的name获取元素
document.querySelector通过CSS选择器获取一个元素
document.querySeletorAll通过CSS选择器获取所有

(参数要以字符串的形式传递)
(除了id和选择器选择一个的方法外,其他的方法返回值都是一个数组,通过下标获取单个元素)

jq(jquery)获取元素:
通过 $() 方法;若获取到的是多个元素,则通过eq()来获取单个;
参数为CSS选择器、Element、Document或者Window对象、HTML文本字符串、函数、字符串等对象,就可以实现获取元素或者先其他功能都可以;

但要注意:JQ的API只对自己开放,JQ不能用js的API,js也不能用JQ的API;

js常用的简单事件:点击事件(onclick,要注意是左键点击)
配合着function(){}来实现功能;

jq实现为:click

对比:

修改样式:
js操作——
获取元素后,通过 .style.功能名 的方式,或者 style[] 的方式来修改选中元素样式;
或者通过这些方法修改样式:
获取: .getAttribute()
设置: .setAttribute()
移除: .removeAttribute()

jq操作:
获取元素,然后通过 . 的方式来实现;

其中方法有:
attr——设置属性;
removeAttr——删除属性;
html——修改文本内容,会渲染标签;
text——修改文本内容,不渲染标签;
val——获取值
等方法;

ajax

对于ajax有一个很重要的数据格式,就是json

json:是一种轻量级的数据交换格式,基于ECMScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

json对象转js对象:
JSON.parse()

js对象转json对象:
JSON.stringify()

python中json格式转换:
利用json模块(自带的)
字典转json:
json.dumps()

json转字典:
json.loads()

AJAX :是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术印AJAX = 异步 JavaScript 和 XML。(asynchronous JavaScript and XML)

作用:通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页 (不使用 AJAX) 如果需要更新内容,必需重载整个网页面。

jq使用ajax:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="father">
    <div class="son">
        <textarea name="text" id="text" cols="30" rows="10"></textarea>
        <br>
        <input type="text">
        <button id="btn">提交</button>
    </div>
    <div id="res"></div>
</div>

<script src="../../jQuery_3_6.js"></script>
<script>
    var btn = $("#btn")
    btn.click(function () {
        $.ajax({
            "method":"post",
            "url":"/ajax",
            "data":{
                name:"Ray",
                age:"19"
            },
            "success":function (data) {
                console.log("jquery ajax success");
                console.log(data);
                $("#res").html("success")
            },
            "error":function (error) {
                $("#res").html("error")
            }
        })
    })
</script>
</body>
</html>

一般ajax通过按钮触发,这里是通过jq来实现,只是前端部分的代码,可以通过python中的tornado模块同时模拟后端来完成一次简陋的数据交互。

下面是结合html,css,js做了一个轮播图:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MC Jin</title>
    <style>

        * {
            padding: 0;
            margin: 0;
            list-style: none;
            text-decoration: none;
        }

        div {
            caret-color: transparent;
        }


        #imgbox {
            width: 600px;
            height: 400px;
            border: 2px solid gray;
            overflow: hidden;
            position: relative;
            margin: 0 auto;
        }

        #imglists {
            width: 3000px;
            height: 400px;
        }

        #imglists li img {
            height: 400px;
        }

        #imglists li {
            float: left;
        }

        .last {
            background: gray;
            width: 30px;
            height: 40px;
            text-align: center;
            line-height: 40px;
            color: white;
            position: absolute;
            left: 5px;
            top: 45%;
            cursor: pointer;
        }

        .next {
            background: gray;
            width: 30px;
            height: 40px;
            text-align: center;
            line-height: 40px;
            color: white;
            position: absolute;
            right: 5px;
            top: 45%;
            cursor: pointer;
        }

        #circle {
            position: absolute;
            right: 10px;
            bottom: 10px;
        }

        #circle li {

            width: 10px;
            height: 10px;
            border-radius: 50%;
            background: #888888;
            text-align: center;
            line-height: 20px;
            float: left;
            margin: 5px;
            cursor: pointer;
        }
    </style>
</head>
<body>
<div id="imgbox">
    <ul id="imglists">
        <li><img src="jin1.jpg" alt=""></li>
        <li><img src="jin2.jpg" alt=""></li>
        <li><img src="jin3.jpg" alt=""></li>
        <li><img src="jin4.jpg" alt=""></li>
        <li><img src="jin1.jpg" alt=""></li>
    </ul>
    <ul id="circle">
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
    <div class="last">&lt;</div>
    <div class="next">&gt;</div>
</div>
<script>
    var last = document.querySelector(".last")
    var next = document.querySelector(".next")
    var left = 0;
    var circles = document.getElementById('circle').getElementsByTagName('li')
    var timer;
    var circlelist=document.querySelector('#circle')
    run();

    function run() {
        if (left <= -2400) {
            left = 0;
        }
        var m = Math.floor(-left / 600);
        var n = (left % 600 == 0) ? n = 1200 : n = 1;
        imglists.style.marginLeft = left + 'px';
        left -= 10;
        timer = setTimeout(run, n);
        circlechange(m);
    }

    function imgchange(n) {
        let lt = -(n * 600);
        imglists.style.marginLeft = lt + 'px';
        left = lt;
    }

    last.onclick = function () {
        let lastone = Math.floor(-left / 600) - 1;
        if (lastone == -1) {
            lastone = 3;
        }
        imgchange(lastone);
        circlechange(lastone);
    }
    next.onclick = function () {
        let nextone = Math.floor(-left / 600) + 1;
        if (nextone == 4) {
            nextone = 0;
        }
        imgchange(nextone);
        circlechange(nextone);
    }

    function circlechange(m) {
        for (let index = 0; index < circles.length; index++) {
            circles[index].style.backgroundColor = '';
        }
        if (m < circles.length) {
            circles[m].style.backgroundColor = 'white';
        }
    }
    circlelist.onclick=function(){
        var tg= window.event.target;
        let cir = tg.innerHTML - 1;
        imgchange(cir);
        circlechange(cir);
    }
</script>
</body>active

</html>

大家可以换成自己的图片路径运行一下;

初学django

为了防止因python版本隔离对项目造成影响,我把django装在了window的虚拟环境里面;

创建好文件夹,用cmd进入;
然后cd venv进入虚拟环境文件夹,找到Scripts下面的activate.bat运行它则进入虚拟环境;

之后用命令创建项目:django-admin startproject 项目名
创建app: python manage.py app名
运行项目:python manage.py runserver

在pycharm配置好环境就可以直接在pycharm里面写代码了;

这次先到这了,后面的内容有机会再分享,毕竟这主要是前端的总结~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值