我的三天前端世界

 **我的三天前端世界 **

最近爱上了二次元,感觉动漫里的小姐姐实在都太漂亮了,以前怎么就没觉得哎。于是向同学要来了日语入门学习和单词书,想来拜访一下日本文化,当然了在某次不经意间浏览了一位大佬的二次元博客,感觉十分心动(可以看一下呀<a herf=" https://zouwang.vip/ ”>)。便想复习并深入一下前端的知识,不断打造自己的博客并运用到最近的Android和小程序学习中。


DAY1——HTML

1、编译器选择

看过蛮多网上推荐的,最终还是推荐出两款

(1) VS CODE

推荐原因:插件真的很不错,不仅仅适用于前端开发,学习C、Python等皆可以,主题可以任意下载,代码支持高亮,还有很多别的功能,听说最近将会发布web端 vs code。

(2) Sublime

推荐原因:很轻便,也就几M,主题效果可以下载,我是选择最初的,不如VS CODE炫酷。

2、学习文档

距离上一次学习前端已经是N 记不清楚啥时候了。其实也没啥,还好有点英语底子,对着文档现学现用

这里我直接下载了W3c的教程文件

有不懂的就搜索就好

3、掌握要点

vs code html基本格式快速导入

创建好.html文件后输入一个 !-回车 便可以了。

我们需要编辑的只有head和body之间的内容

首先说head---其信息一般是不显示出来的,但是记录了你这个HTML文件的很多有用的信息.,比如我们要导入css文件或者书写css都在head中进行。

再说body---正文的意思,是我们要在网页中展现出来的,在此还可以加上js效果让网页动起来呢。

看一个简单效果图

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>day1-html练习</title>
</head>
    <h1>hello world</h1>
    <h2>hello world</h2>
    <h3>hello world</h3>
    <h4>hello world</h4>
    <h5>hello world</h5>
    <h6>hello world</h6>
<body>

DAY2——CSS

1、三种方式

这里推荐使用前两种

前两种中link和和style均写在.html的head中

来个演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="../css/index.css">
    <title>day2-css练习</title>
</head>
<body>
<div class="box">
<h1>hello world</h1>
<h2>hello world</h2>
<h3>hello world</h3>
<h4>hello world</h4>
<h5>hello world</h5>
<h6>hello world</h6>
    </div>
</body>
</html>

.box{
    color: red;
} 

2、选择器

先上个obvious的图

css基本格式就是如此,当然还有id和class选择器

id 选择器以 "#" 来定义,class选择器用法可见上例所示,还是用一张图表示

3、盒子模型

直接上图啦~

每个盒子有四个边界:内容边界 Content edge内边距边界 Padding Edge边框边界 Border Edge外边框边界 Margin Edge

推荐个网站讲得更详细一些:

(1)内容区域 content area ,由内容边界限制,容纳着元素的“真实”内容,例如文本、图像,或是一个视频播放器。它的尺寸为内容宽度(或称 content-box 宽度)和内容高度(或称 content-box 高度)。它通常含有一个背景颜色(默认颜色为透明)或背景图像。

如果 box-sizingcontent-box(默认),则内容区域的大小可明确地通过 widthmin-widthmax-widthheightmin-height,和 max-height 控制。

(2)内边距区域 padding area 由内边距边界限制,扩展自内容区域,负责延伸内容区域的背景,填充元素中内容与边框的间距。它的尺寸是 padding-box 宽度padding-box 高度

内边距的粗细可以由 padding-toppadding-rightpadding-bottompadding-left,和简写属性 padding 控制。

(3)边框区域 border area 由边框边界限制,扩展自内边距区域,是容纳边框的区域。其尺寸为 border-box 宽度border-box 高度

边框的粗细由 border-width 和简写的 border 属性控制。如果 box-sizing 属性被设为 border-box,那么边框区域的大小可明确地通过 widthmin-width, max-widthheightmin-height,和 max-height 属性控制。假如框盒上设有背景(background-colorbackground-image),背景将会一直延伸至边框的外沿(默认为在边框下层延伸,边框会盖在背景上)。此默认表现可通过 css属性 background-clip 来改变。

(4)外边距区域 margin area 由外边距边界限制,用空白区域扩展边框区域,以分开相邻的元素。它的尺寸为 margin-box 宽度margin-box 高度

外边距区域的大小由 margin-topmargin-rightmargin-bottommargin-left,和简写属性 margin 控制。在发生外边距合并的情况下,由于盒之间共享外边距,外边距不容易弄清楚。

当然一个页面也可以由多个盒子构造,就像是html中所涉及的table一样,看个图吧

当然这只是一个初步认识,在网上还有更多嵌套、重叠等等方法可以去学习呢

4、颜色选择

颜色一般简单设计中选取关键字或十六进制就好,在代码中会智能提示,选择自己喜欢的呀。

DAY3——JavaScript

学习js的时候最直观的感受就是我这不是在复习Java么???

其实每一门编程语言都大同小异,只是在语法上细微的区别罢了,所以复习起来也很快吧。

1、不同的认知

(1)严格相等

===严格相等

var num = 0;
var obj = new String("0");
var str = "0";
var b = false;

console.log(num === num); // true
console.log(obj === obj); // true
console.log(str === str); // true

console.log(num === obj); // false
console.log(num === str); // false
console.log(obj === str); // false
console.log(null === undefined); // false
console.log(obj === null); // false
console.log(obj === undefined); // false

(2)语法

var 变量名 = 初始化值;

(3)方法对象

1.var 方法名 = function(形式参数列表){
                    方法体
               }
               
2.function 方法名称(形式参数列表){
    方法体
}

其他在运用上js的API明显是少于Java的,所以有不懂得查查用用就会快速上手

2、BOM

Browser Object Model 浏览器对象模型

组成:

  • Window:窗口对象
  • Navigator:浏览器对象
  • Screen:显示器屏幕对象
  • History:历史记录对象
  • Location:地址栏对象
    (1)Window:窗口对象
    一些常用方法:
    1. 与弹出框有关的方法:
       alert()	显示带有一段消息和一个确认按钮的警告框。
       confirm()	显示带有一段消息以及确认按钮和取消按钮的对话框。
           * 如果用户点击确定按钮,则方法返回true
           * 如果用户点击取消按钮,则方法返回false
       prompt()	显示可提示用户输入的对话框。
           * 返回值:获取用户输入的值
    2. 与打开关闭有关的方法:
       close()	关闭浏览器窗口。
           * 谁调用我 ,我关谁
       open()	打开一个新的浏览器窗口
           * 返回新的Window对象
    3. 与定时器有关的方式
       setTimeout()	在指定的毫秒数后调用函数或计算表达式。
          * 参数:
            1. js代码或者方法对象
            2. 毫秒值
               * 返回值:唯一标识,用于取消定时器
            clearTimeout()	取消由 setTimeout() 方法设置的 timeout。
    		setInterval()	按照指定的周期(以毫秒计)来调用函数或计算表达式。
            clearInterval()	取消由 setInterval() 设置的 timeout。
    
    属性:
    1. 获取其他BOM对象:
            history
            location
            Navigator
            Screen:
    2. 获取DOM对象
            document
            
    特点:
        * Window对象不需要创建可以直接使用 window使用。 window.方法名();
        * window引用可以省略.方法名();
       
       
    (2)Location:地址栏对象
    1. 创建(获取):
       1. window.location
       2. location
    2. 方法:
       * reload()	重新加载当前文档。刷新
    3. 属性
       * href	设置或返回完整的 URL。
       
       
    (3)History:历史记录对象
    1. 创建(获取):
            1. window.history
            2. history
    
    2. 方法:
            * back()	加载 history 列表中的前一个 URL。
            * forward()	加载 history 列表中的下一个 URL。
            * go(参数)	加载 history 列表中的某个具体页面。
                * 参数:
                    * 正数:前进几个历史记录
                    * 负数:后退几个历史记录
    3. 属性:
            * length	返回当前窗口历史列表中的 URL 数量。

3、DOM

Document Object Model 文档对象模型

核心:

DOM - 针对任何结构化文档的标准模型

  • Document:文档对象

  • Element:元素对象

  • Attribute:属性对象

  • Text:文本对象

  • Comment:注释对象

  • Node:节点对象,其他5个的父对象

    核心DOM模型:
    * Document:文档对象
    1. 创建(获取):在html dom模型中可以使用window对象来获取
    		1. window.document
    		2. document
    2. 方法:
    		1. 获取Element对象:
    			1. getElementById()	: 根据id属性值获取元素对象。id属性值一般唯一
    			2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
    			3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
    			4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
    		2. 创建其他DOM对象:
    			createAttribute(name)
            	createComment()
            	createElement()
            	createTextNode()
    3. 属性
    * Element:元素对象
    	1. 获取/创建:通过document来获取和创建
    	2. 方法:
    		1. removeAttribute():删除属性
    		2. setAttribute():设置属性
    * Node:节点对象,其他5个的父对象
    	* 特点:所有dom对象都可以被认为是一个节点
    	* 方法:
    		* CRUD dom树:
    			* appendChild():向节点的子节点列表的结尾添加新的子节点。
    			* removeChild()	:删除(并返回)当前节点的指定子节点。
    			* replaceChild():用新节点替换一个子节点。
    	* 属性:
    		* parentNode 返回节点的父节点。

4、自己写个轮播图

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>轮播图</title>
    <style type="text/css">
    
    /*标题样式*/
    p {
        text-align: center;
        font-size: 50px;
        color:aqua;
        font-family: fantasy;
    }

    .imgBox{
        border-top: 2px solid aqua;
        width:  1280px;
        height: 500px;
        margin: 0 auto;
    }

    .imgBox img{
        width: 100%;
        height: 300px;
        margin: 0 auto;
        padding-top:30px;
    }

    .img1{
        display: block;
    }
    .img2{
        display: block;
    }
    .img3{
        display: block;
    }


    </style>
</head>

<body>
    <p>图片轮播</p>
    <div class="imgBox">
        <!--图片在我本地-->
        <img class="img-slide img1" src="../img/banner_1.jpg" alt="1">
        <img class="img-slide img2" src="../img/banner_2.jpg" alt="2">
        <img class="img-slide img3" src="../img/banner_3.jpg" alt="3">
    </div>
    <script type="text/javascript">
     /*
            分析:
                1.在页面上使用img标签展示图片
                2.定义一个方法,修改图片对象的src属性
                3.定义一个定时器,每隔3秒调用方法一次。

         */
         var index=0;
    //改变图片
    function ChangeImg() {
        index++;
        var a=document.getElementsByClassName("img-slide");
        if(index>=a.length) index=0;
        for(var i=0;i<a.length;i++){
            a[i].style.display='none';
        }
        a[index].style.display='block';
    }
    //设置定时器,每隔3秒切换一张图片
    setInterval(ChangeImg,3000);
    </script>
</body>
</html>

效果图显示:


写在最后,就是一些入门级别的记录,在后面也会不断学习新的技术,有好看的设计也会分享嘞。

posted @ 2019-11-09 16:46  我在吃大西瓜呢  阅读(223)  评论(0编辑  收藏  举报